/* Generated by Cython 0.29.22 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "depends": [],
        "extra_compile_args": [
            "-Wextra",
            "-Waggregate-return",
            "-Wfloat-equal",
            "-Wformat",
            "-Wformat=2",
            "-Winit-self",
            "-Wmissing-format-attribute",
            "-Wmissing-include-dirs",
            "-Wnested-externs",
            "-Wold-style-definition",
            "-Wpointer-arith",
            "-Wstrict-prototypes",
            "-Wunknown-pragmas",
            "-Wwrite-strings",
            "-fno-exceptions"
        ],
        "libraries": [
            "selinux",
            "sepol"
        ],
        "library_dirs": [
            ".",
            "/usr/lib64",
            "/usr/lib",
            "/usr/local/lib"
        ],
        "name": "setools.policyrep",
        "sources": [
            "setools/policyrep.pyx"
        ]
    },
    "module_name": "setools.policyrep"
}
END: Cython Metadata */

#define PY_SSIZE_T_CLEAN
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.6+ or Python 3.3+.
#else
#define CYTHON_ABI "0_29_22"
#define CYTHON_HEX_VERSION 0x001D16F0
#define CYTHON_FUTURE_DIVISION 1
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #if PY_VERSION_HEX >= 0x02070000
    #define HAVE_LONG_LONG
  #endif
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#ifdef PYPY_VERSION
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#elif defined(PYSTON_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 0
  #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
  #endif
  #ifndef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
           typedef unsigned char     uint8_t;
           typedef unsigned int      uint32_t;
        #else
           typedef unsigned __int8   uint8_t;
           typedef unsigned __int32  uint32_t;
        #endif
    #endif
#else
   #include <stdint.h>
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus) && __cplusplus >= 201103L
    #if __has_cpp_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH [[fallthrough]]
    #elif __has_cpp_attribute(clang::fallthrough)
      #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
    #elif __has_cpp_attribute(gnu::fallthrough)
      #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__ ) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif

#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #elif defined(__GNUC__)
    #define CYTHON_INLINE __inline__
  #elif defined(_MSC_VER)
    #define CYTHON_INLINE __inline
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_INLINE inline
  #else
    #define CYTHON_INLINE
  #endif
#endif

#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define Py_OptimizeFlag 0
#endif
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyClass_Type
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
  #define __Pyx_DefaultClassType PyType_Type
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #define __Pyx_PyCFunctionFast _PyCFunctionFast
  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
#endif
#if CYTHON_FAST_PYCCALL
#define __Pyx_PyFastCFunction_Check(func)\
    ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
#else
#define __Pyx_PyFastCFunction_Check(func) 0
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
  #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
  #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
  #define PyMem_RawFree(p)             PyMem_Free(p)
#endif
#if CYTHON_COMPILING_IN_PYSTON
  #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x03060000
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#elif PY_VERSION_HEX >= 0x03000000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif
#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
#include "pythread.h"
#define Py_tss_NEEDS_INIT 0
typedef int Py_tss_t;
static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
  *key = PyThread_create_key();
  return 0;
}
static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
  *key = Py_tss_NEEDS_INIT;
  return key;
}
static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
  PyObject_Free(key);
}
static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
  return *key != Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
  PyThread_delete_key(*key);
  *key = Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
  return PyThread_set_key_value(*key, value);
}
static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
  return PyThread_get_key_value(*key);
}
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
#else
#define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
  #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
  #else
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #endif
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
  #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
  #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
  #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#ifndef PyObject_Unicode
  #define PyObject_Unicode             PyObject_Str
#endif
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
#else
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsHash_t
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsSsize_t
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
#else
  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
  #define _USE_MATH_DEFINES
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#define __PYX_MARK_ERR_POS(f_index, lineno) \
    { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__setools__policyrep
#define __PYX_HAVE_API__setools__policyrep
/* Early includes */
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <stdint.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sepol/handle.h>
#include <sepol/debug.h>
#include <sepol/policydb/services.h>
#include <sepol/policydb/flask_types.h>
#include <sepol/policydb/ebitmap.h>
#include <sepol/policydb/hashtab.h>
#include <sepol/policydb/symtab.h>
#include <sepol/policydb/avtab.h>
#include <sepol/policydb/mls_types.h>
#include <sepol/policydb/context.h>
#include <sepol/policydb/sidtab.h>
#include <sepol/policydb/conditional.h>
#include <sepol/policydb/constraint.h>
#include <sepol/policydb/polcaps.h>
#include <sepol/policydb/policydb.h>
#include <sepol/policydb.h>
#include <selinux/selinux.h>
#include <stdarg.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 1
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING "ascii"
#define __Pyx_PyObject_FromString __Pyx_PyStr_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyStr_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }

static PyObject *__pyx_m = NULL;
static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_cython_runtime = NULL;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static PyObject *__pyx_empty_unicode;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;


static const char *__pyx_f[] = {
  "setools/policyrep/util.pxi",
  "setools/policyrep/boolcond.pxi",
  "setools/policyrep/constraint.pxi",
  "setools/policyrep/mls.pxi",
  "setools/policyrep/object.pxi",
  "setools/policyrep/selinuxpolicy.pxi",
  "stringsource",
  "setools/policyrep/bounds.pxi",
  "setools/policyrep/context.pxi",
  "setools/policyrep/default.pxi",
  "setools/policyrep/fscontext.pxi",
  "setools/policyrep/initsid.pxi",
  "setools/policyrep/mlsrule.pxi",
  "setools/policyrep/netcontext.pxi",
  "setools/policyrep/objclass.pxi",
  "setools/policyrep/polcap.pxi",
  "setools/policyrep/rbacrule.pxi",
  "setools/policyrep/role.pxi",
  "setools/policyrep/rule.pxi",
  "setools/policyrep/terule.pxi",
  "setools/policyrep/typeattr.pxi",
  "setools/policyrep/user.pxi",
  "setools/policyrep/xencontext.pxi",
  "setools/policyrep.pyx",
  "type.pxd",
};

/*--- Type declarations ---*/
struct __pyx_obj_7setools_9policyrep_GenfsFiletype;
struct __pyx_obj_7setools_9policyrep_GenfsconIterator;
struct __pyx_obj_7setools_9policyrep_PolicyObject;
struct __pyx_obj_7setools_9policyrep_Conditional;
struct __pyx_obj_7setools_9policyrep_ConditionalOperator;
struct __pyx_obj_7setools_9policyrep_Bounds;
struct __pyx_obj_7setools_9policyrep_BaseConstraint;
struct __pyx_obj_7setools_9policyrep_Constraint;
struct __pyx_obj_7setools_9policyrep_Validatetrans;
struct __pyx_obj_7setools_9policyrep_ConstraintExpression;
struct __pyx_obj_7setools_9policyrep_ConstraintExprNode;
struct __pyx_obj_7setools_9policyrep_Context;
struct __pyx_obj_7setools_9policyrep_Default;
struct __pyx_obj_7setools_9policyrep_DefaultRange;
struct __pyx_obj_7setools_9policyrep_BaseMLSLevel;
struct __pyx_obj_7setools_9policyrep_LevelDecl;
struct __pyx_obj_7setools_9policyrep_Level;
struct __pyx_obj_7setools_9policyrep_Range;
struct __pyx_obj_7setools_9policyrep_PolicySymbol;
struct __pyx_obj_7setools_9policyrep_Boolean;
struct __pyx_obj_7setools_9policyrep_Category;
struct __pyx_obj_7setools_9policyrep_Sensitivity;
struct __pyx_obj_7setools_9policyrep_Common;
struct __pyx_obj_7setools_9policyrep_ObjClass;
struct __pyx_obj_7setools_9policyrep_Ocontext;
struct __pyx_obj_7setools_9policyrep_FSUse;
struct __pyx_obj_7setools_9policyrep_Genfscon;
struct __pyx_obj_7setools_9policyrep_InitialSID;
struct __pyx_obj_7setools_9policyrep_Ibendportcon;
struct __pyx_obj_7setools_9policyrep_Ibpkeycon;
struct __pyx_obj_7setools_9policyrep_Netifcon;
struct __pyx_obj_7setools_9policyrep_Nodecon;
struct __pyx_obj_7setools_9policyrep_Portcon;
struct __pyx_obj_7setools_9policyrep_PolicyIterator;
struct __pyx_obj_7setools_9policyrep_ConditionalIterator;
struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator;
struct __pyx_obj_7setools_9policyrep_ConstraintIterator;
struct __pyx_obj_7setools_9policyrep_ValidatetransIterator;
struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator;
struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator;
struct __pyx_obj_7setools_9policyrep_EbitmapIterator;
struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_HashtabIterator;
struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator;
struct __pyx_obj_7setools_9policyrep_TypeboundsIterator;
struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator;
struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator;
struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator;
struct __pyx_obj_7setools_9policyrep_MLSRuleIterator;
struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator;
struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator;
struct __pyx_obj_7setools_9policyrep_OcontextIterator;
struct __pyx_obj_7setools_9policyrep_FSUseIterator;
struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator;
struct __pyx_obj_7setools_9policyrep_InitialSIDIterator;
struct __pyx_obj_7setools_9policyrep_IbendportconIterator;
struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator;
struct __pyx_obj_7setools_9policyrep_NetifconIterator;
struct __pyx_obj_7setools_9policyrep_NodeconIterator;
struct __pyx_obj_7setools_9policyrep_PortconIterator;
struct __pyx_obj_7setools_9policyrep_PolicyCapability;
struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator;
struct __pyx_obj_7setools_9policyrep_RoleAllowIterator;
struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator;
struct __pyx_obj_7setools_9policyrep_Role;
struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator;
struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_PolicyRule;
struct __pyx_obj_7setools_9policyrep_MLSRule;
struct __pyx_obj_7setools_9policyrep_RoleAllow;
struct __pyx_obj_7setools_9policyrep_RoleTransition;
struct __pyx_obj_7setools_9policyrep_SELinuxPolicy;
struct __pyx_obj_7setools_9policyrep_BaseTERule;
struct __pyx_obj_7setools_9policyrep_AVRule;
struct __pyx_obj_7setools_9policyrep_IoctlSet;
struct __pyx_obj_7setools_9policyrep_AVRuleXperm;
struct __pyx_obj_7setools_9policyrep_TERule;
struct __pyx_obj_7setools_9policyrep_FileNameTERule;
struct __pyx_obj_7setools_9policyrep_TERuleIterator;
struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator;
struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator;
struct __pyx_obj_7setools_9policyrep_BaseType;
struct __pyx_obj_7setools_9policyrep_Type;
struct __pyx_obj_7setools_9policyrep_TypeAttribute;
struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator;
struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator;
struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_User;
struct __pyx_obj_7setools_9policyrep_UserHashtabIterator;
struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator;
struct __pyx_obj_7setools_9policyrep_Devicetreecon;
struct __pyx_obj_7setools_9policyrep_Iomemcon;
struct __pyx_obj_7setools_9policyrep_Ioportcon;
struct __pyx_obj_7setools_9policyrep_Pcidevicecon;
struct __pyx_obj_7setools_9policyrep_Pirqcon;
struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator;
struct __pyx_obj_7setools_9policyrep_IomemconIterator;
struct __pyx_obj_7setools_9policyrep_IoportconIterator;
struct __pyx_obj_7setools_9policyrep_PcideviceconIterator;
struct __pyx_obj_7setools_9policyrep_PirqconIterator;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement;
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr;
struct __pyx_defaults;
typedef struct __pyx_defaults __pyx_defaults;
struct __pyx_defaults1;
typedef struct __pyx_defaults1 __pyx_defaults1;
struct __pyx_defaults2;
typedef struct __pyx_defaults2 __pyx_defaults2;
struct __pyx_defaults {
  PyObject *__pyx_arg_c;
};
struct __pyx_defaults1 {
  PyObject *__pyx_arg_c;
};
struct __pyx_defaults2 {
  PyObject *__pyx_arg_c;
};

/* "setools/policyrep/fscontext.pxi":64
 * 
 * 
 * cdef class GenfsFiletype(int):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_GenfsFiletype {
  PyIntObject __pyx_base;
};


/* "setools/policyrep/fscontext.pxi":166
 *         return FSUse.factory(self.policy, self.ocon)
 * 
 * cdef class GenfsconIterator:             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for genfscon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_GenfsconIterator {
  PyObject_HEAD
  struct __pyx_vtabstruct_7setools_9policyrep_GenfsconIterator *__pyx_vtab;
  genfs_t *head;
  genfs_t *curr;
  PyObject *ocon_iter;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *policy;
};


/* "setools/policyrep/object.pxi":24
 * # Classes
 * #
 * cdef class PolicyObject:             # <<<<<<<<<<<<<<
 * 
 *     """This is a base class for all policy objects."""
 */
struct __pyx_obj_7setools_9policyrep_PolicyObject {
  PyObject_HEAD
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject *__pyx_vtab;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *policy;
  uintptr_t key;
};


/* "setools/policyrep/boolcond.pxi":49
 * 
 * 
 * cdef class Conditional(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A conditional policy block."""
 */
struct __pyx_obj_7setools_9policyrep_Conditional {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *_postfix_expression;
  PyObject *booleans;
};


/* "setools/policyrep/boolcond.pxi":225
 * 
 * 
 * cdef class ConditionalOperator(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A conditional expression operator"""
 */
struct __pyx_obj_7setools_9policyrep_ConditionalOperator {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *text;
  int precedence;
  int unary;
  PyObject *evaluate;
};


/* "setools/policyrep/bounds.pxi":32
 * 
 * 
 * cdef class Bounds(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A bounds statement."""
 */
struct __pyx_obj_7setools_9policyrep_Bounds {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *ruletype;
  PyObject *parent;
  PyObject *child;
};


/* "setools/policyrep/constraint.pxi":40
 * 
 * 
 * cdef class BaseConstraint(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for constraint rules."""
 */
struct __pyx_obj_7setools_9policyrep_BaseConstraint {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *ruletype;
  PyObject *tclass;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *expression;
};


/* "setools/policyrep/constraint.pxi":54
 * 
 * 
 * cdef class Constraint(BaseConstraint):             # <<<<<<<<<<<<<<
 * 
 *     """A constraint rule (constrain/mlsconstrain)."""
 */
struct __pyx_obj_7setools_9policyrep_Constraint {
  struct __pyx_obj_7setools_9policyrep_BaseConstraint __pyx_base;
  PyObject *perms;
};


/* "setools/policyrep/constraint.pxi":83
 * 
 * 
 * cdef class Validatetrans(BaseConstraint):             # <<<<<<<<<<<<<<
 * 
 *     """A validatetrans rule (validatetrans/mlsvalidatetrans)."""
 */
struct __pyx_obj_7setools_9policyrep_Validatetrans {
  struct __pyx_obj_7setools_9policyrep_BaseConstraint __pyx_base;
};


/* "setools/policyrep/constraint.pxi":107
 * 
 * 
 * cdef class ConstraintExpression(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_ConstraintExpression {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *_infix;
  PyObject *_postfix;
  int mls;
  PyObject *users;
  PyObject *roles;
  PyObject *types;
};


/* "setools/policyrep/constraint.pxi":250
 * 
 * 
 * cdef class ConstraintExprNode(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_ConstraintExprNode {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  uint32_t expression_type;
  uint32_t operator;
  uint32_t _symbol_type;
  PyObject *_names;
  PyObject *_expression;
  int mls;
  int roles;
  int types;
  int users;
};


/* "setools/policyrep/context.pxi":21
 * #
 * 
 * cdef class Context(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A SELinux security context/security attribute."""
 */
struct __pyx_obj_7setools_9policyrep_Context {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_User *user;
  struct __pyx_obj_7setools_9policyrep_Role *role;
  struct __pyx_obj_7setools_9policyrep_Type *type_;
  struct __pyx_obj_7setools_9policyrep_Range *_range;
};


/* "setools/policyrep/default.pxi":89
 * # Classes
 * #
 * cdef class Default(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for default_* statements."""
 */
struct __pyx_obj_7setools_9policyrep_Default {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *ruletype;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  PyObject *_default;
};


/* "setools/policyrep/default.pxi":163
 * 
 * 
 * cdef class DefaultRange(Default):             # <<<<<<<<<<<<<<
 * 
 *     """A default_range statement."""
 */
struct __pyx_obj_7setools_9policyrep_DefaultRange {
  struct __pyx_obj_7setools_9policyrep_Default __pyx_base;
  PyObject *default_range;
};


/* "setools/policyrep/mls.pxi":170
 * 
 * 
 * cdef class BaseMLSLevel(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for MLS levels."""
 */
struct __pyx_obj_7setools_9policyrep_BaseMLSLevel {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *_categories;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *sensitivity;
};


/* "setools/policyrep/mls.pxi":208
 * 
 * 
 * cdef class LevelDecl(BaseMLSLevel):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_LevelDecl {
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel __pyx_base;
};


/* "setools/policyrep/mls.pxi":271
 * 
 * 
 * cdef class Level(BaseMLSLevel):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_Level {
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel __pyx_base;
};


/* "setools/policyrep/mls.pxi":392
 * 
 * 
 * cdef class Range(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS range"""
 */
struct __pyx_obj_7setools_9policyrep_Range {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Level *low;
  struct __pyx_obj_7setools_9policyrep_Level *high;
};


/* "setools/policyrep/object.pxi":83
 * 
 * 
 * cdef class PolicySymbol(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for policy symbols (declared objects: types, users, etc.)"""
 */
struct __pyx_obj_7setools_9policyrep_PolicySymbol {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *name;
};


/* "setools/policyrep/boolcond.pxi":28
 * # Classes
 * #
 * cdef class Boolean(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A Boolean."""
 */
struct __pyx_obj_7setools_9policyrep_Boolean {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  int state;
};


/* "setools/policyrep/mls.pxi":45
 * 
 * 
 * cdef class Category(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS category."""
 */
struct __pyx_obj_7setools_9policyrep_Category {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  uint32_t _value;
  PyObject *_aliases;
};


/* "setools/policyrep/mls.pxi":99
 * 
 * 
 * cdef class Sensitivity(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS sensitivity"""
 */
struct __pyx_obj_7setools_9policyrep_Sensitivity {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  uint32_t _value;
  PyObject *_aliases;
  struct __pyx_obj_7setools_9policyrep_LevelDecl *_leveldecl;
};


/* "setools/policyrep/objclass.pxi":28
 * # Classes
 * #
 * cdef class Common(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A common permission set."""
 */
struct __pyx_obj_7setools_9policyrep_Common {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  PyObject *_perm_table;
  PyObject *perms;
};


/* "setools/policyrep/objclass.pxi":81
 * 
 * 
 * cdef class ObjClass(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An object class."""
 */
struct __pyx_obj_7setools_9policyrep_ObjClass {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Common *_common;
  PyObject *_perm_table;
  PyObject *_defaults;
  PyObject *_constraints;
  PyObject *_validatetrans;
  PyObject *perms;
  uint32_t nprim;
};


/* "setools/policyrep/object.pxi":93
 * 
 * 
 * cdef class Ocontext(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for most in-policy labeling statements, (portcon, nodecon, etc.)"""
 */
struct __pyx_obj_7setools_9policyrep_Ocontext {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Context *context;
};


/* "setools/policyrep/fscontext.pxi":35
 * 
 * 
 * cdef class FSUse(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An fs_use_* statement."""
 */
struct __pyx_obj_7setools_9policyrep_FSUse {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *ruletype;
  PyObject *fs;
};


/* "setools/policyrep/fscontext.pxi":90
 * 
 * 
 * cdef class Genfscon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A genfscon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Genfscon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *fs;
  PyObject *filetype;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  PyObject *path;
};


/* "setools/policyrep/initsid.pxi":38
 * # Classes
 * #
 * cdef class InitialSID(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An initial SID statement."""
 */
struct __pyx_obj_7setools_9policyrep_InitialSID {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *name;
};


/* "setools/policyrep/netcontext.pxi":27
 * # Classes
 * #
 * cdef class Ibendportcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An ibendportcon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Ibendportcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *name;
  unsigned int port;
};


/* "setools/policyrep/netcontext.pxi":57
 * 
 * 
 * cdef class Ibpkeycon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An ibpkeycon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Ibpkeycon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *subnet_prefix;
  PyObject *pkeys;
};


/* "setools/policyrep/netcontext.pxi":119
 * 
 * 
 * cdef class Netifcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A netifcon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Netifcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *netif;
  struct __pyx_obj_7setools_9policyrep_Context *packet;
};


/* "setools/policyrep/netcontext.pxi":157
 * 
 * 
 * cdef class Nodecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A nodecon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Nodecon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *ip_version;
  PyObject *network;
};


/* "setools/policyrep/netcontext.pxi":262
 * 
 * 
 * cdef class Portcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A portcon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Portcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *ports;
  PyObject *protocol;
};


/* "setools/policyrep/object.pxi":103
 * # Iterator classes
 * #
 * cdef class PolicyIterator:             # <<<<<<<<<<<<<<
 * 
 *     """Base class for all policy object iterators."""
 */
struct __pyx_obj_7setools_9policyrep_PolicyIterator {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *policy;
};


/* "setools/policyrep/boolcond.pxi":285
 * 
 * 
 * cdef class ConditionalIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditionals iterator."""
 */
struct __pyx_obj_7setools_9policyrep_ConditionalIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConditionalIterator *__pyx_vtab;
  cond_node_t *head;
  cond_node_t *curr;
};


/* "setools/policyrep/boolcond.pxi":327
 * 
 * 
 * cdef class ConditionalExprIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditional expression iterator."""
 */
struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConditionalExprIterator *__pyx_vtab;
  cond_expr_t *head;
  cond_expr_t *curr;
};


/* "setools/policyrep/constraint.pxi":422
 * # Iterators
 * #
 * cdef class ConstraintIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Constraint iterator."""
 */
struct __pyx_obj_7setools_9policyrep_ConstraintIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator *__pyx_vtab;
  constraint_node_t *head;
  constraint_node_t *curr;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
};


/* "setools/policyrep/constraint.pxi":466
 * 
 * 
 * cdef class ValidatetransIterator(ConstraintIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Validatetrans iterator."""
 */
struct __pyx_obj_7setools_9policyrep_ValidatetransIterator {
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator __pyx_base;
};


/* "setools/policyrep/constraint.pxi":489
 * 
 * 
 * cdef class ConstraintExprIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprIterator *__pyx_vtab;
  constraint_expr_t *head;
  constraint_expr_t *curr;
};


/* "setools/policyrep/objclass.pxi":259
 * 
 * 
 * cdef class PermissionVectorIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over an access (permission) vector"""
 */
struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PermissionVectorIterator *__pyx_vtab;
  uint32_t vector;
  uint32_t curr;
  uint32_t perm_max;
  PyObject *perm_table;
};


/* "setools/policyrep/object.pxi":123
 * 
 * 
 * cdef class EbitmapIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_EbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  ebitmap_t *bmap;
  ebitmap_node_t *node;
  size_t curr;
  size_t bit;
};


/* "setools/policyrep/mls.pxi":648
 * # Ebitmap Iterators
 * #
 * cdef class CategoryEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a category ebitmap."""
 */
struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_CategoryEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/object.pxi":180
 * 
 * 
 * cdef class HashtabIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_HashtabIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *__pyx_vtab;
  hashtab_t *table;
  hashtab_node_t *node;
  hashtab_node_t *curr;
  unsigned int bucket;
};


/* "setools/policyrep/boolcond.pxi":267
 * # Iterators
 * #
 * cdef class BooleanHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over Booleans in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/bounds.pxi":71
 * # Iterators
 * #
 * cdef class TypeboundsIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over typebounds rules in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_TypeboundsIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/mls.pxi":474
 * # Hash Table Iterators
 * #
 * cdef class CategoryHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over categories in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/mls.pxi":531
 * 
 * 
 * cdef class SensitivityHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over sensitivity in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/mls.pxi":588
 * 
 * 
 * cdef class LevelDeclHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over level declarations in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/mlsrule.pxi":90
 * # Iterators
 * #
 * cdef class MLSRuleIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over MLS rules in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_MLSRuleIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/objclass.pxi":223
 * # Iterators
 * #
 * cdef class CommonHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over commons in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/objclass.pxi":241
 * 
 * 
 * cdef class ObjClassHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over roles in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/object.pxi":246
 * 
 * 
 * cdef class OcontextIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_OcontextIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  ocontext_t *head;
  ocontext_t *ocon;
  ocontext_t *curr;
};


/* "setools/policyrep/fscontext.pxi":150
 * # Iterators
 * #
 * cdef class FSUseIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for fs_use_* statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_FSUseIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_FSUseIterator *__pyx_vtab;
};


/* "setools/policyrep/fscontext.pxi":218
 * 
 * 
 * cdef class GenfsconOcontextIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Sub-iterator for genfscon statements."""
 */
struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_GenfsconOcontextIterator *__pyx_vtab;
  PyObject *fs;
};


/* "setools/policyrep/initsid.pxi":70
 * 
 * 
 * cdef class InitialSIDIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for initial SID statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_InitialSIDIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_InitialSIDIterator *__pyx_vtab;
};


/* "setools/policyrep/netcontext.pxi":300
 * # Iterators
 * #
 * cdef class IbendportconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ibendportcon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_IbendportconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_IbendportconIterator *__pyx_vtab;
};


/* "setools/policyrep/netcontext.pxi":317
 * 
 * 
 * cdef class IbpkeyconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ibpkeycon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_IbpkeyconIterator *__pyx_vtab;
};


/* "setools/policyrep/netcontext.pxi":334
 * 
 * 
 * cdef class NetifconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for netifcon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_NetifconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_NetifconIterator *__pyx_vtab;
};


/* "setools/policyrep/netcontext.pxi":351
 * 
 * 
 * cdef class NodeconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for nodecon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_NodeconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_NodeconIterator *__pyx_vtab;
  PyObject *ip_version;
};


/* "setools/policyrep/netcontext.pxi":371
 * 
 * 
 * cdef class PortconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for portcon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_PortconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PortconIterator *__pyx_vtab;
};


/* "setools/policyrep/polcap.pxi":22
 * 
 * 
 * cdef class PolicyCapability(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A policy capability."""
 */
struct __pyx_obj_7setools_9policyrep_PolicyCapability {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
};


/* "setools/policyrep/polcap.pxi":48
 * 
 * 
 * cdef class PolicyCapabilityIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for policy capability statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapabilityIterator *__pyx_vtab;
};


/* "setools/policyrep/rbacrule.pxi":155
 * # Iterators
 * #
 * cdef class RoleAllowIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Role allow rule iterator."""
 */
struct __pyx_obj_7setools_9policyrep_RoleAllowIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_RoleAllowIterator *__pyx_vtab;
  role_allow_t *head;
  role_allow_t *curr;
};


/* "setools/policyrep/rbacrule.pxi":197
 * 
 * 
 * cdef class RoleTransitionIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Role transition rule iterator."""
 */
struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_RoleTransitionIterator *__pyx_vtab;
  role_trans_t *head;
  role_trans_t *curr;
};


/* "setools/policyrep/role.pxi":22
 * 
 * 
 * cdef class Role(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A role."""
 */
struct __pyx_obj_7setools_9policyrep_Role {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  PyObject *_types;
};


/* "setools/policyrep/role.pxi":70
 * # Iterator Classes
 * #
 * cdef class RoleHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over roles in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/role.pxi":88
 * 
 * 
 * cdef class RoleEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a role ebitmap."""
 */
struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_RoleEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/rule.pxi":21
 * #
 * 
 * cdef class PolicyRule(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """This is base class for policy rules."""
 */
struct __pyx_obj_7setools_9policyrep_PolicyRule {
  struct __pyx_obj_7setools_9policyrep_PolicyObject __pyx_base;
  PyObject *ruletype;
  PyObject *source;
  PyObject *target;
  PyObject *origin;
  int extended;
};


/* "setools/policyrep/mlsrule.pxi":29
 * 
 * 
 * cdef class MLSRule(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS rule."""
 */
struct __pyx_obj_7setools_9policyrep_MLSRule {
  struct __pyx_obj_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  PyObject *rng;
};


/* "setools/policyrep/rbacrule.pxi":38
 * 
 * 
 * cdef class RoleAllow(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """A role allow rule."""
 */
struct __pyx_obj_7setools_9policyrep_RoleAllow {
  struct __pyx_obj_7setools_9policyrep_PolicyRule __pyx_base;
};


/* "setools/policyrep/rbacrule.pxi":93
 * 
 * 
 * cdef class RoleTransition(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """A role_transition rule."""
 */
struct __pyx_obj_7setools_9policyrep_RoleTransition {
  struct __pyx_obj_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  struct __pyx_obj_7setools_9policyrep_Role *dft;
};


/* "setools/policyrep/selinuxpolicy.pxi":40
 * 
 * 
 * cdef class SELinuxPolicy:             # <<<<<<<<<<<<<<
 *     cdef:
 *         sepol.sepol_policydb *handle
 */
struct __pyx_obj_7setools_9policyrep_SELinuxPolicy {
  PyObject_HEAD
  struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *__pyx_vtab;
  struct sepol_policydb *handle;
  struct sepol_handle *sh;
  cat_datum_t **cat_val_to_struct;
  level_datum_t **level_val_to_struct;
  PyObject *log;
  PyObject *constraint_counts;
  PyObject *terule_counts;
  PyObject *type_alias_map;
  PyObject *category_alias_map;
  PyObject *sensitivity_alias_map;
  PyObject *__weakref__;
  PyObject *path;
  PyObject *handle_unknown;
  PyObject *target_platform;
  unsigned int version;
  int mls;
};


/* "setools/policyrep/terule.pxi":48
 * 
 * 
 * cdef class BaseTERule(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for TE rules."""
 */
struct __pyx_obj_7setools_9policyrep_BaseTERule {
  struct __pyx_obj_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ObjClass *tclass;
  PyObject *rule_string;
  struct __pyx_obj_7setools_9policyrep_Conditional *_conditional;
  int _conditional_block;
};


/* "setools/policyrep/terule.pxi":115
 * 
 * 
 * cdef class AVRule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """An access vector type enforcement rule."""
 */
struct __pyx_obj_7setools_9policyrep_AVRule {
  struct __pyx_obj_7setools_9policyrep_BaseTERule __pyx_base;
  PyObject *perms;
};


/* "setools/policyrep/terule.pxi":219
 * 
 * 
 * cdef class IoctlSet(frozenset):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_7setools_9policyrep_IoctlSet {
  PySetObject __pyx_base;
};


/* "setools/policyrep/terule.pxi":273
 * 
 * 
 * cdef class AVRuleXperm(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """An extended permission access vector type enforcement rule."""
 */
struct __pyx_obj_7setools_9policyrep_AVRuleXperm {
  struct __pyx_obj_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_IoctlSet *perms;
  PyObject *xperm_type;
};


/* "setools/policyrep/terule.pxi":389
 * 
 * 
 * cdef class TERule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """A type_* type enforcement rule."""
 */
struct __pyx_obj_7setools_9policyrep_TERule {
  struct __pyx_obj_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Type *dft;
};


/* "setools/policyrep/terule.pxi":464
 * 
 * 
 * cdef class FileNameTERule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """A type_transition type enforcement rule with filename."""
 */
struct __pyx_obj_7setools_9policyrep_FileNameTERule {
  struct __pyx_obj_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Type *dft;
  PyObject *filename;
};


/* "setools/policyrep/terule.pxi":538
 * # Iterators
 * #
 * cdef class TERuleIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for access vector tables."""
 */
struct __pyx_obj_7setools_9policyrep_TERuleIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *__pyx_vtab;
  avtab_t *table;
  avtab_ptr_t node;
  unsigned int bucket;
  PyObject *conditional;
  PyObject *cond_block;
};


/* "setools/policyrep/terule.pxi":635
 * 
 * 
 * cdef class ConditionalTERuleIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditional TE rule iterator."""
 */
struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_ConditionalTERuleIterator *__pyx_vtab;
  cond_av_list_t *head;
  cond_av_list_t *curr;
  PyObject *conditional;
  PyObject *conditional_block;
};


/* "setools/policyrep/terule.pxi":708
 * 
 * 
 * cdef class FileNameTERuleIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over FileNameTERules in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
  filename_trans_datum_t *datum;
  struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *stypei;
};


/* "setools/policyrep/typeattr.pxi":46
 * # Classes
 * #
 * cdef class BaseType(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """Type/attribute base class."""
 */
struct __pyx_obj_7setools_9policyrep_BaseType {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
};


/* "setools/policyrep/typeattr.pxi":63
 * 
 * 
 * cdef class Type(BaseType):             # <<<<<<<<<<<<<<
 * 
 *     """A type."""
 */
struct __pyx_obj_7setools_9policyrep_Type {
  struct __pyx_obj_7setools_9policyrep_BaseType __pyx_base;
  PyObject *ispermissive;
  PyObject *_aliases;
  PyObject *_attrs;
  uint32_t value;
};


/* "setools/policyrep/typeattr.pxi":134
 * 
 * 
 * cdef class TypeAttribute(BaseType):             # <<<<<<<<<<<<<<
 * 
 *     """A type attribute."""
 */
struct __pyx_obj_7setools_9policyrep_TypeAttribute {
  struct __pyx_obj_7setools_9policyrep_BaseType __pyx_base;
  PyObject *_types;
};


/* "setools/policyrep/typeattr.pxi":207
 * 
 * 
 * cdef class TypeHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over types in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/typeattr.pxi":258
 * 
 * 
 * cdef class TypeAttributeHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over type attributes in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/typeattr.pxi":308
 * # Ebitmap Iterator Classes
 * #
 * cdef class TypeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type ebitmap."""
 */
struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_TypeEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/typeattr.pxi":336
 * 
 * 
 * cdef class TypeAttributeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type attribute ebitmap."""
 */
struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/typeattr.pxi":365
 * 
 * 
 * cdef class TypeOrAttributeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type or type attribute ebitmap."""
 */
struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/user.pxi":24
 * 
 * 
 * cdef class User(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A user."""
 */
struct __pyx_obj_7setools_9policyrep_User {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol __pyx_base;
  PyObject *roles;
  struct __pyx_obj_7setools_9policyrep_Level *_level;
  struct __pyx_obj_7setools_9policyrep_Range *_range;
};


/* "setools/policyrep/user.pxi":97
 * # Iterator Classes
 * #
 * cdef class UserHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over users in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_UserHashtabIterator {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator __pyx_base;
};


/* "setools/policyrep/user.pxi":115
 * 
 * 
 * cdef class UserEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a user ebitmap."""
 */
struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator {
  struct __pyx_obj_7setools_9policyrep_EbitmapIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_UserEbitmapIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":28
 * # Classes
 * #
 * cdef class Devicetreecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A devicetreecon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Devicetreecon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *path;
};


/* "setools/policyrep/xencontext.pxi":48
 * 
 * 
 * cdef class Iomemcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A iomemcon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Iomemcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *addr;
};


/* "setools/policyrep/xencontext.pxi":73
 * 
 * 
 * cdef class Ioportcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A ioportcon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Ioportcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *ports;
};


/* "setools/policyrep/xencontext.pxi":98
 * 
 * 
 * cdef class Pcidevicecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A pcidevicecon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Pcidevicecon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *device;
};


/* "setools/policyrep/xencontext.pxi":118
 * 
 * 
 * cdef class Pirqcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A pirqcon statement."""
 */
struct __pyx_obj_7setools_9policyrep_Pirqcon {
  struct __pyx_obj_7setools_9policyrep_Ocontext __pyx_base;
  PyObject *irq;
};


/* "setools/policyrep/xencontext.pxi":141
 * # Iterators
 * #
 * cdef class DevicetreeconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for devicetreecon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_DevicetreeconIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":158
 * 
 * 
 * cdef class IomemconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for iomemcon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_IomemconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_IomemconIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":175
 * 
 * 
 * cdef class IoportconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ioportcon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_IoportconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_IoportconIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":192
 * 
 * 
 * cdef class PcideviceconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for pcidevicecon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_PcideviceconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PcideviceconIterator *__pyx_vtab;
};


/* "setools/policyrep/xencontext.pxi":209
 * 
 * 
 * cdef class PirqconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for pirqcon statements in the policy."""
 */
struct __pyx_obj_7setools_9policyrep_PirqconIterator {
  struct __pyx_obj_7setools_9policyrep_OcontextIterator __pyx_base;
  struct __pyx_vtabstruct_7setools_9policyrep_PirqconIterator *__pyx_vtab;
};


/* "setools/policyrep/boolcond.pxi":190
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 *     def truth_table(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generate a truth table for this expression.
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self;
};


/* "setools/policyrep/boolcond.pxi":211
 *          ({"a": False, "b": False}, False)]
 *         """
 *         bools = sorted(str(b) for b in self.booleans)             # <<<<<<<<<<<<<<
 * 
 *         truth_table = []
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *__pyx_outer_scope;
  PyObject *__pyx_v_b;
};


/* "setools/policyrep/constraint.pxi":161
 *         return e
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         cdef list ret = []
 *         for item in self.infix():
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ {
  PyObject_HEAD
  PyObject *__pyx_v_item;
};


/* "setools/policyrep/constraint.pxi":166
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))             # <<<<<<<<<<<<<<
 *                 else:
 *                     ret.append("{0}".format(" ".join(str(j) for j in item)))
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *__pyx_outer_scope;
  PyObject *__pyx_v_j;
};


/* "setools/policyrep/constraint.pxi":168
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))
 *                 else:
 *                     ret.append("{0}".format(" ".join(str(j) for j in item)))             # <<<<<<<<<<<<<<
 *             else:
 *                 ret.append(item)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *__pyx_outer_scope;
  PyObject *__pyx_v_j;
};


/* "setools/policyrep/constraint.pxi":325
 * 
 *     @staticmethod
 *     cdef inline ConstraintExprNode factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating ConstraintExprNode objects."""
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy;
  constraint_expr_t *__pyx_v_symbol;
};


/* "setools/policyrep/constraint.pxi":345
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *__pyx_outer_scope;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/constraint.pxi":350
 *                     n.types = True
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in             # <<<<<<<<<<<<<<
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *__pyx_outer_scope;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/constraint.pxi":354
 *                                                  policy, symbol.type_names))
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(             # <<<<<<<<<<<<<<
 *                                              policy, &symbol.names))
 *                 else:
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *__pyx_outer_scope;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/constraint.pxi":358
 *                 else:
 *                     n.users = True
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 * 
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *__pyx_outer_scope;
  PyObject *__pyx_v_u;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/mlsrule.pxi":63
 *         return self.rng
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/rbacrule.pxi":70
 *         raise RuleUseError("Role allow rules do not have a default role.")
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/rbacrule.pxi":128
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/role.pxi":45
 *         return frozenset()
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member roles."""
 *         yield self
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self;
};


/* "setools/policyrep/role.pxi":53
 *         return iter(self._types)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self;
};


/* "setools/policyrep/role.pxi":55
 *     def statement(self):
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)             # <<<<<<<<<<<<<<
 *         count = len(types)
 *         stmt = "role {0}".format(self)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *__pyx_outer_scope;
  PyObject *__pyx_v_t;
};


/* "setools/policyrep/selinuxpolicy.pxi":135
 * 
 *     @property
 *     def category_count(self):             # <<<<<<<<<<<<<<
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
};


/* "setools/policyrep/selinuxpolicy.pxi":137
 *     def category_count(self):
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *__pyx_outer_scope;
  PyObject *__pyx_v__;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":161
 * 
 *     @property
 *     def default_count(self):             # <<<<<<<<<<<<<<
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
};


/* "setools/policyrep/selinuxpolicy.pxi":163
 *     def default_count(self):
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *__pyx_outer_scope;
  PyObject *__pyx_v_d;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":218
 * 
 *     @property
 *     def level_count(self):             # <<<<<<<<<<<<<<
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
};


/* "setools/policyrep/selinuxpolicy.pxi":220
 *     def level_count(self):
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *__pyx_outer_scope;
  PyObject *__pyx_v__;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":252
 * 
 *     @property
 *     def nodecon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
};


/* "setools/policyrep/selinuxpolicy.pxi":254
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *__pyx_outer_scope;
  PyObject *__pyx_v_n;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":262
 * 
 *     @property
 *     def permission_count(self):             # <<<<<<<<<<<<<<
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
};


/* "setools/policyrep/selinuxpolicy.pxi":264
 *     def permission_count(self):
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *__pyx_outer_scope;
  PyObject *__pyx_v_c;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":267
 * 
 *     @property
 *     def permissives_count(self):             # <<<<<<<<<<<<<<
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
};


/* "setools/policyrep/selinuxpolicy.pxi":269
 *     def permissives_count(self):
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *__pyx_outer_scope;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":297
 * 
 *     @property
 *     def range_transition_count(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in self.mlsrules()
 *                    if r.ruletype is MLSRuletype.range_transition)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
};


/* "setools/policyrep/selinuxpolicy.pxi":298
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *__pyx_outer_scope;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":475
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults {
  PyObject_HEAD
  PyObject *__pyx_v_cls;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":524
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     def terules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules {
  PyObject_HEAD
  PyObject *__pyx_v_c;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":536
 *     # Constraints iterators
 *     #
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints {
  PyObject_HEAD
  PyObject *__pyx_v_c;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/selinuxpolicy.pxi":1072
 *             tmp_type = NULL
 * 
 *     cdef _cache_constraint_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self;
};


/* "setools/policyrep/selinuxpolicy.pxi":1075
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())             # <<<<<<<<<<<<<<
 * 
 *     cdef _cache_terule_counts(self):
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *__pyx_outer_scope;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":122
 * 
 *     @staticmethod
 *     cdef inline AVRule factory(SELinuxPolicy policy, sepol.avtab_key_t *key, sepol.avtab_datum_t *datum,             # <<<<<<<<<<<<<<
 *                                conditional, conditional_block):
 *         """Factory function for creating AVRule objects."""
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory {
  PyObject_HEAD
  avtab_datum_t *__pyx_v_datum;
  avtab_key_t *__pyx_v_key;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy;
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_r;
};


/* "setools/policyrep/terule.pxi":132
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,             # <<<<<<<<<<<<<<
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *__pyx_outer_scope;
  PyObject *__pyx_v_p;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":151
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):             # <<<<<<<<<<<<<<
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded {
  PyObject_HEAD
  PyObject *__pyx_v_perms;
};


/* "setools/policyrep/terule.pxi":171
 *         r.target = target
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)             # <<<<<<<<<<<<<<
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *__pyx_outer_scope;
  PyObject *__pyx_v_p;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":177
 *         return r
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":263
 *         return "{{ {0:,} }}".format(self)
 * 
 *     def ranges(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the number of ranges in the set.  Main use
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self;
};


/* "setools/policyrep/terule.pxi":269
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *__pyx_outer_scope;
  PyObject *__pyx_v__a;
  PyObject *__pyx_v__b;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":350
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":429
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":506
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_r;
  PyObject *__pyx_v_s;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self;
  PyObject *__pyx_v_t;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/terule.pxi":745
 *                                       stype, self.datum.otype)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self;
};


/* "setools/policyrep/terule.pxi":746
 * 
 *     def __len__(self):
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *__pyx_outer_scope;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/typeattr.pxi":102
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member types."""
 *         yield self
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self;
};


/* "setools/policyrep/user.pxi":34
 * 
 *     @staticmethod
 *     cdef inline User factory(SELinuxPolicy policy, sepol.user_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for constructing User objects."""
 *         cdef User u
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy;
  user_datum_t *__pyx_v_symbol;
};


/* "setools/policyrep/user.pxi":50
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *__pyx_outer_scope;
  PyObject *__pyx_v_r;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};


/* "setools/policyrep/user.pxi":75
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self;
};


/* "setools/policyrep/user.pxi":77
 *     def statement(self):
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)             # <<<<<<<<<<<<<<
 *             str stmt = "user {0} roles ".format(self.name)
 *             size_t count = len(roles)
 */
struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr {
  PyObject_HEAD
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *__pyx_outer_scope;
  PyObject *__pyx_v_r;
};



/* "setools/policyrep/object.pxi":24
 * # Classes
 * #
 * cdef class PolicyObject:             # <<<<<<<<<<<<<<
 * 
 *     """This is a base class for all policy objects."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject {
  int (*_eq)(struct __pyx_obj_7setools_9policyrep_PolicyObject *, struct __pyx_obj_7setools_9policyrep_PolicyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
static CYTHON_INLINE int __pyx_f_7setools_9policyrep_12PolicyObject__eq(struct __pyx_obj_7setools_9policyrep_PolicyObject *, struct __pyx_obj_7setools_9policyrep_PolicyObject *);


/* "setools/policyrep/object.pxi":83
 * 
 * 
 * cdef class PolicySymbol(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for policy symbols (declared objects: types, users, etc.)"""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;


/* "setools/policyrep/boolcond.pxi":28
 * # Classes
 * #
 * cdef class Boolean(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A Boolean."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Boolean {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Boolean *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_bool_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Boolean *__pyx_vtabptr_7setools_9policyrep_Boolean;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_f_7setools_9policyrep_7Boolean_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_bool_datum_t *);


/* "setools/policyrep/boolcond.pxi":49
 * 
 * 
 * cdef class Conditional(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A conditional policy block."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Conditional {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Conditional *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Conditional *__pyx_vtabptr_7setools_9policyrep_Conditional;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_f_7setools_9policyrep_11Conditional_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *);


/* "setools/policyrep/boolcond.pxi":225
 * 
 * 
 * cdef class ConditionalOperator(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A conditional expression operator"""
 */

struct __pyx_vtabstruct_7setools_9policyrep_ConditionalOperator {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalOperator *__pyx_vtabptr_7setools_9policyrep_ConditionalOperator;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_f_7setools_9policyrep_19ConditionalOperator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *);


/* "setools/policyrep/object.pxi":180
 * 
 * 
 * cdef class HashtabIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator {
  void (*_next_bucket)(struct __pyx_obj_7setools_9policyrep_HashtabIterator *);
  void (*_next_node)(struct __pyx_obj_7setools_9policyrep_HashtabIterator *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;


/* "setools/policyrep/boolcond.pxi":267
 * # Iterators
 * #
 * cdef class BooleanHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over Booleans in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_BooleanHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_BooleanHashtabIterator *__pyx_vtabptr_7setools_9policyrep_BooleanHashtabIterator;


/* "setools/policyrep/boolcond.pxi":285
 * 
 * 
 * cdef class ConditionalIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditionals iterator."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_ConditionalIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalIterator *__pyx_vtabptr_7setools_9policyrep_ConditionalIterator;


/* "setools/policyrep/boolcond.pxi":327
 * 
 * 
 * cdef class ConditionalExprIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditional expression iterator."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_ConditionalExprIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalExprIterator *__pyx_vtabptr_7setools_9policyrep_ConditionalExprIterator;


/* "setools/policyrep/bounds.pxi":32
 * 
 * 
 * cdef class Bounds(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A bounds statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Bounds {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Bounds *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Bounds *__pyx_vtabptr_7setools_9policyrep_Bounds;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_f_7setools_9policyrep_6Bounds_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *, PyObject *);


/* "setools/policyrep/bounds.pxi":71
 * # Iterators
 * #
 * cdef class TypeboundsIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over typebounds rules in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TypeboundsIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeboundsIterator *__pyx_vtabptr_7setools_9policyrep_TypeboundsIterator;


/* "setools/policyrep/constraint.pxi":40
 * 
 * 
 * cdef class BaseConstraint(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for constraint rules."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint *__pyx_vtabptr_7setools_9policyrep_BaseConstraint;


/* "setools/policyrep/constraint.pxi":54
 * 
 * 
 * cdef class Constraint(BaseConstraint):             # <<<<<<<<<<<<<<
 * 
 *     """A constraint rule (constrain/mlsconstrain)."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Constraint {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Constraint *__pyx_vtabptr_7setools_9policyrep_Constraint;


/* "setools/policyrep/constraint.pxi":83
 * 
 * 
 * cdef class Validatetrans(BaseConstraint):             # <<<<<<<<<<<<<<
 * 
 *     """A validatetrans rule (validatetrans/mlsvalidatetrans)."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Validatetrans {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Validatetrans *__pyx_vtabptr_7setools_9policyrep_Validatetrans;


/* "setools/policyrep/constraint.pxi":107
 * 
 * 
 * cdef class ConstraintExpression(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExpression {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExpression *__pyx_vtabptr_7setools_9policyrep_ConstraintExpression;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);


/* "setools/policyrep/constraint.pxi":250
 * 
 * 
 * cdef class ConstraintExprNode(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprNode {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprNode *__pyx_vtabptr_7setools_9policyrep_ConstraintExprNode;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);


/* "setools/policyrep/constraint.pxi":422
 * # Iterators
 * #
 * cdef class ConstraintIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Constraint iterator."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator *__pyx_vtabptr_7setools_9policyrep_ConstraintIterator;


/* "setools/policyrep/constraint.pxi":466
 * 
 * 
 * cdef class ValidatetransIterator(ConstraintIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Validatetrans iterator."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_ValidatetransIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_ValidatetransIterator *__pyx_vtabptr_7setools_9policyrep_ValidatetransIterator;


/* "setools/policyrep/constraint.pxi":489
 * 
 * 
 * cdef class ConstraintExprIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprIterator *__pyx_vtabptr_7setools_9policyrep_ConstraintExprIterator;


/* "setools/policyrep/context.pxi":21
 * #
 * 
 * cdef class Context(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """A SELinux security context/security attribute."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Context {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Context *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, context_struct_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Context *__pyx_vtabptr_7setools_9policyrep_Context;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, context_struct_t *);


/* "setools/policyrep/default.pxi":89
 * # Classes
 * #
 * cdef class Default(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for default_* statements."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Default {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Default *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, PyObject *, PyObject *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Default *__pyx_vtabptr_7setools_9policyrep_Default;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Default *__pyx_f_7setools_9policyrep_7Default_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, PyObject *, PyObject *, PyObject *, PyObject *);


/* "setools/policyrep/default.pxi":163
 * 
 * 
 * cdef class DefaultRange(Default):             # <<<<<<<<<<<<<<
 * 
 *     """A default_range statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_DefaultRange {
  struct __pyx_vtabstruct_7setools_9policyrep_Default __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_DefaultRange *__pyx_vtabptr_7setools_9policyrep_DefaultRange;


/* "setools/policyrep/object.pxi":93
 * 
 * 
 * cdef class Ocontext(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for most in-policy labeling statements, (portcon, nodecon, etc.)"""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Ocontext {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ocontext *__pyx_vtabptr_7setools_9policyrep_Ocontext;


/* "setools/policyrep/fscontext.pxi":35
 * 
 * 
 * cdef class FSUse(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An fs_use_* statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_FSUse {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_FSUse *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_FSUse *__pyx_vtabptr_7setools_9policyrep_FSUse;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_f_7setools_9policyrep_5FSUse_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/fscontext.pxi":90
 * 
 * 
 * cdef class Genfscon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A genfscon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Genfscon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Genfscon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Genfscon *__pyx_vtabptr_7setools_9policyrep_Genfscon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_f_7setools_9policyrep_8Genfscon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);


/* "setools/policyrep/fscontext.pxi":150
 * # Iterators
 * #
 * cdef class FSUseIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for fs_use_* statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_FSUseIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_FSUseIterator *__pyx_vtabptr_7setools_9policyrep_FSUseIterator;


/* "setools/policyrep/fscontext.pxi":166
 *         return FSUse.factory(self.policy, self.ocon)
 * 
 * cdef class GenfsconIterator:             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for genfscon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_GenfsconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, genfs_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_GenfsconIterator *__pyx_vtabptr_7setools_9policyrep_GenfsconIterator;


/* "setools/policyrep/fscontext.pxi":218
 * 
 * 
 * cdef class GenfsconOcontextIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Sub-iterator for genfscon statements."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_GenfsconOcontextIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_GenfsconOcontextIterator *__pyx_vtabptr_7setools_9policyrep_GenfsconOcontextIterator;


/* "setools/policyrep/initsid.pxi":38
 * # Classes
 * #
 * cdef class InitialSID(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An initial SID statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_InitialSID {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_InitialSID *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct ocontext *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_InitialSID *__pyx_vtabptr_7setools_9policyrep_InitialSID;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_f_7setools_9policyrep_10InitialSID_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct ocontext *);


/* "setools/policyrep/initsid.pxi":70
 * 
 * 
 * cdef class InitialSIDIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for initial SID statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_InitialSIDIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_InitialSIDIterator *__pyx_vtabptr_7setools_9policyrep_InitialSIDIterator;


/* "setools/policyrep/mls.pxi":45
 * 
 * 
 * cdef class Category(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS category."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Category {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Category *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cat_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Category *__pyx_vtabptr_7setools_9policyrep_Category;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Category *__pyx_f_7setools_9policyrep_8Category_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cat_datum_t *);


/* "setools/policyrep/mls.pxi":99
 * 
 * 
 * cdef class Sensitivity(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS sensitivity"""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Sensitivity {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Sensitivity *__pyx_vtabptr_7setools_9policyrep_Sensitivity;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_f_7setools_9policyrep_11Sensitivity_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *);


/* "setools/policyrep/mls.pxi":170
 * 
 * 
 * cdef class BaseMLSLevel(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for MLS levels."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel *__pyx_vtabptr_7setools_9policyrep_BaseMLSLevel;


/* "setools/policyrep/mls.pxi":208
 * 
 * 
 * cdef class LevelDecl(BaseMLSLevel):             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_7setools_9policyrep_LevelDecl {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel __pyx_base;
  struct __pyx_obj_7setools_9policyrep_LevelDecl *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_LevelDecl *__pyx_vtabptr_7setools_9policyrep_LevelDecl;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_f_7setools_9policyrep_9LevelDecl_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *);


/* "setools/policyrep/mls.pxi":271
 * 
 * 
 * cdef class Level(BaseMLSLevel):             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_7setools_9policyrep_Level {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Level *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_level_t *);
  struct __pyx_obj_7setools_9policyrep_Level *(*factory_from_string)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Level *__pyx_vtabptr_7setools_9policyrep_Level;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_level_t *);
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);


/* "setools/policyrep/mls.pxi":392
 * 
 * 
 * cdef class Range(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS range"""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Range {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Range *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_range_t *);
  struct __pyx_obj_7setools_9policyrep_Range *(*factory_from_string)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Range *__pyx_vtabptr_7setools_9policyrep_Range;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_range_t *);
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);


/* "setools/policyrep/mls.pxi":474
 * # Hash Table Iterators
 * #
 * cdef class CategoryHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over categories in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_CategoryHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_CategoryHashtabIterator *__pyx_vtabptr_7setools_9policyrep_CategoryHashtabIterator;


/* "setools/policyrep/mls.pxi":531
 * 
 * 
 * cdef class SensitivityHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over sensitivity in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_SensitivityHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_SensitivityHashtabIterator *__pyx_vtabptr_7setools_9policyrep_SensitivityHashtabIterator;


/* "setools/policyrep/mls.pxi":588
 * 
 * 
 * cdef class LevelDeclHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over level declarations in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_LevelDeclHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_vtabptr_7setools_9policyrep_LevelDeclHashtabIterator;


/* "setools/policyrep/mls.pxi":648
 * # Ebitmap Iterators
 * #
 * cdef class CategoryEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a category ebitmap."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_CategoryEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_CategoryEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_CategoryEbitmapIterator;


/* "setools/policyrep/rule.pxi":21
 * #
 * 
 * cdef class PolicyRule(PolicyObject):             # <<<<<<<<<<<<<<
 * 
 *     """This is base class for policy rules."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule *__pyx_vtabptr_7setools_9policyrep_PolicyRule;


/* "setools/policyrep/mlsrule.pxi":29
 * 
 * 
 * cdef class MLSRule(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """An MLS rule."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_MLSRule {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_MLSRule *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, range_trans_t *, mls_range_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_MLSRule *__pyx_vtabptr_7setools_9policyrep_MLSRule;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_f_7setools_9policyrep_7MLSRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, range_trans_t *, mls_range_t *);


/* "setools/policyrep/mlsrule.pxi":90
 * # Iterators
 * #
 * cdef class MLSRuleIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over MLS rules in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_MLSRuleIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_MLSRuleIterator *__pyx_vtabptr_7setools_9policyrep_MLSRuleIterator;


/* "setools/policyrep/netcontext.pxi":27
 * # Classes
 * #
 * cdef class Ibendportcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An ibendportcon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Ibendportcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ibendportcon *__pyx_vtabptr_7setools_9policyrep_Ibendportcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_f_7setools_9policyrep_12Ibendportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/netcontext.pxi":57
 * 
 * 
 * cdef class Ibpkeycon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """An ibpkeycon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Ibpkeycon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ibpkeycon *__pyx_vtabptr_7setools_9policyrep_Ibpkeycon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_f_7setools_9policyrep_9Ibpkeycon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/netcontext.pxi":119
 * 
 * 
 * cdef class Netifcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A netifcon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Netifcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Netifcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Netifcon *__pyx_vtabptr_7setools_9policyrep_Netifcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_f_7setools_9policyrep_8Netifcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/netcontext.pxi":157
 * 
 * 
 * cdef class Nodecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A nodecon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Nodecon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Nodecon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Nodecon *__pyx_vtabptr_7setools_9policyrep_Nodecon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_f_7setools_9policyrep_7Nodecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);


/* "setools/policyrep/netcontext.pxi":262
 * 
 * 
 * cdef class Portcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A portcon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Portcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Portcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Portcon *__pyx_vtabptr_7setools_9policyrep_Portcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_f_7setools_9policyrep_7Portcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/netcontext.pxi":300
 * # Iterators
 * #
 * cdef class IbendportconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ibendportcon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_IbendportconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_IbendportconIterator *__pyx_vtabptr_7setools_9policyrep_IbendportconIterator;


/* "setools/policyrep/netcontext.pxi":317
 * 
 * 
 * cdef class IbpkeyconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ibpkeycon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_IbpkeyconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_IbpkeyconIterator *__pyx_vtabptr_7setools_9policyrep_IbpkeyconIterator;


/* "setools/policyrep/netcontext.pxi":334
 * 
 * 
 * cdef class NetifconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for netifcon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_NetifconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_NetifconIterator *__pyx_vtabptr_7setools_9policyrep_NetifconIterator;


/* "setools/policyrep/netcontext.pxi":351
 * 
 * 
 * cdef class NodeconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for nodecon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_NodeconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_NodeconIterator *__pyx_vtabptr_7setools_9policyrep_NodeconIterator;


/* "setools/policyrep/netcontext.pxi":371
 * 
 * 
 * cdef class PortconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for portcon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PortconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PortconIterator *__pyx_vtabptr_7setools_9policyrep_PortconIterator;


/* "setools/policyrep/objclass.pxi":28
 * # Classes
 * #
 * cdef class Common(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A common permission set."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Common {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Common *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, common_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Common *__pyx_vtabptr_7setools_9policyrep_Common;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Common *__pyx_f_7setools_9policyrep_6Common_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, common_datum_t *);


/* "setools/policyrep/objclass.pxi":81
 * 
 * 
 * cdef class ObjClass(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """An object class."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_ObjClass {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_ObjClass *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, class_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ObjClass *__pyx_vtabptr_7setools_9policyrep_ObjClass;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_f_7setools_9policyrep_8ObjClass_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, class_datum_t *);


/* "setools/policyrep/objclass.pxi":223
 * # Iterators
 * #
 * cdef class CommonHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over commons in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_CommonHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_CommonHashtabIterator *__pyx_vtabptr_7setools_9policyrep_CommonHashtabIterator;


/* "setools/policyrep/objclass.pxi":241
 * 
 * 
 * cdef class ObjClassHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over roles in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_ObjClassHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ObjClassHashtabIterator *__pyx_vtabptr_7setools_9policyrep_ObjClassHashtabIterator;


/* "setools/policyrep/objclass.pxi":259
 * 
 * 
 * cdef class PermissionVectorIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over an access (permission) vector"""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PermissionVectorIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, uint32_t);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PermissionVectorIterator *__pyx_vtabptr_7setools_9policyrep_PermissionVectorIterator;


/* "setools/policyrep/polcap.pxi":22
 * 
 * 
 * cdef class PolicyCapability(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A policy capability."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapability {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_PolicyCapability *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapability *__pyx_vtabptr_7setools_9policyrep_PolicyCapability;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_f_7setools_9policyrep_16PolicyCapability_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);


/* "setools/policyrep/polcap.pxi":48
 * 
 * 
 * cdef class PolicyCapabilityIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for policy capability statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapabilityIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapabilityIterator *__pyx_vtabptr_7setools_9policyrep_PolicyCapabilityIterator;


/* "setools/policyrep/rbacrule.pxi":38
 * 
 * 
 * cdef class RoleAllow(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """A role allow rule."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_RoleAllow {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_RoleAllow *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleAllow *__pyx_vtabptr_7setools_9policyrep_RoleAllow;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_f_7setools_9policyrep_9RoleAllow_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *);


/* "setools/policyrep/rbacrule.pxi":93
 * 
 * 
 * cdef class RoleTransition(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """A role_transition rule."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_RoleTransition {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleTransition *__pyx_vtabptr_7setools_9policyrep_RoleTransition;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_f_7setools_9policyrep_14RoleTransition_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *);


/* "setools/policyrep/rbacrule.pxi":155
 * # Iterators
 * #
 * cdef class RoleAllowIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Role allow rule iterator."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_RoleAllowIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleAllowIterator *__pyx_vtabptr_7setools_9policyrep_RoleAllowIterator;


/* "setools/policyrep/rbacrule.pxi":197
 * 
 * 
 * cdef class RoleTransitionIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Role transition rule iterator."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_RoleTransitionIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleTransitionIterator *__pyx_vtabptr_7setools_9policyrep_RoleTransitionIterator;


/* "setools/policyrep/role.pxi":22
 * 
 * 
 * cdef class Role(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A role."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Role {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Role *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Role *__pyx_vtabptr_7setools_9policyrep_Role;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Role *__pyx_f_7setools_9policyrep_4Role_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_datum_t *);


/* "setools/policyrep/role.pxi":70
 * # Iterator Classes
 * #
 * cdef class RoleHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over roles in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_RoleHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleHashtabIterator *__pyx_vtabptr_7setools_9policyrep_RoleHashtabIterator;


/* "setools/policyrep/role.pxi":88
 * 
 * 
 * cdef class RoleEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a role ebitmap."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_RoleEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_RoleEbitmapIterator;


/* "setools/policyrep/selinuxpolicy.pxi":40
 * 
 * 
 * cdef class SELinuxPolicy:             # <<<<<<<<<<<<<<
 *     cdef:
 *         sepol.sepol_policydb *handle
 */

struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy {
  cond_bool_datum_t *(*boolean_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*boolean_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  cat_datum_t *(*category_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*category_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  class_datum_t *(*class_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*class_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*common_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  level_datum_t *(*level_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*level_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  role_datum_t *(*role_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*role_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  type_datum_t *(*type_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*type_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  user_datum_t *(*user_value_to_datum)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*user_value_to_name)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
  PyObject *(*_load_policy)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *);
  PyObject *(*_load_running_policy)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_set_permissive_flags)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_create_mls_val_to_struct)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_load_category_aliases)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_load_sensitivity_aliases)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_load_type_aliases)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_rebuild_attrs_from_map)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_synthesize_attrs)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_cache_constraint_counts)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
  PyObject *(*_cache_terule_counts)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *__pyx_vtabptr_7setools_9policyrep_SELinuxPolicy;
static CYTHON_INLINE cond_bool_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE cat_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE class_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE level_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE role_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE type_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE user_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t);


/* "setools/policyrep/terule.pxi":48
 * 
 * 
 * cdef class BaseTERule(PolicyRule):             # <<<<<<<<<<<<<<
 * 
 *     """Base class for TE rules."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule *__pyx_vtabptr_7setools_9policyrep_BaseTERule;


/* "setools/policyrep/terule.pxi":115
 * 
 * 
 * cdef class AVRule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """An access vector type enforcement rule."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_AVRule {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_AVRule *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_AVRule *__pyx_vtabptr_7setools_9policyrep_AVRule;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_f_7setools_9policyrep_6AVRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);


/* "setools/policyrep/terule.pxi":273
 * 
 * 
 * cdef class AVRuleXperm(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """An extended permission access vector type enforcement rule."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_AVRuleXperm {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_AVRuleXperm *__pyx_vtabptr_7setools_9policyrep_AVRuleXperm;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);


/* "setools/policyrep/terule.pxi":389
 * 
 * 
 * cdef class TERule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """A type_* type enforcement rule."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TERule {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_TERule *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TERule *__pyx_vtabptr_7setools_9policyrep_TERule;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TERule *__pyx_f_7setools_9policyrep_6TERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *);


/* "setools/policyrep/terule.pxi":464
 * 
 * 
 * cdef class FileNameTERule(BaseTERule):             # <<<<<<<<<<<<<<
 * 
 *     """A type_transition type enforcement rule with filename."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERule {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_base;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, filename_trans_key_t *, struct __pyx_obj_7setools_9policyrep_Type *, size_t);
};
static struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERule *__pyx_vtabptr_7setools_9policyrep_FileNameTERule;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_f_7setools_9policyrep_14FileNameTERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, filename_trans_key_t *, struct __pyx_obj_7setools_9policyrep_Type *, size_t);


/* "setools/policyrep/terule.pxi":538
 * # Iterators
 * #
 * cdef class TERuleIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for access vector tables."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct avtab *);
  void (*_next_bucket)(struct __pyx_obj_7setools_9policyrep_TERuleIterator *);
  void (*_next_node)(struct __pyx_obj_7setools_9policyrep_TERuleIterator *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *__pyx_vtabptr_7setools_9policyrep_TERuleIterator;


/* "setools/policyrep/terule.pxi":635
 * 
 * 
 * cdef class ConditionalTERuleIterator(PolicyIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Conditional TE rule iterator."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_ConditionalTERuleIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_av_list_t *, PyObject *, PyObject *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalTERuleIterator *__pyx_vtabptr_7setools_9policyrep_ConditionalTERuleIterator;


/* "setools/policyrep/terule.pxi":708
 * 
 * 
 * cdef class FileNameTERuleIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over FileNameTERules in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERuleIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERuleIterator *__pyx_vtabptr_7setools_9policyrep_FileNameTERuleIterator;


/* "setools/policyrep/typeattr.pxi":46
 * # Classes
 * #
 * cdef class BaseType(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """Type/attribute base class."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_BaseType {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseType *__pyx_vtabptr_7setools_9policyrep_BaseType;


/* "setools/policyrep/typeattr.pxi":63
 * 
 * 
 * cdef class Type(BaseType):             # <<<<<<<<<<<<<<
 * 
 *     """A type."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Type {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseType __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Type *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *);
  void (*_load_attributes)(struct __pyx_obj_7setools_9policyrep_Type *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Type *__pyx_vtabptr_7setools_9policyrep_Type;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Type *__pyx_f_7setools_9policyrep_4Type_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *);
static CYTHON_INLINE void __pyx_f_7setools_9policyrep_4Type__load_attributes(struct __pyx_obj_7setools_9policyrep_Type *);


/* "setools/policyrep/typeattr.pxi":134
 * 
 * 
 * cdef class TypeAttribute(BaseType):             # <<<<<<<<<<<<<<
 * 
 *     """A type attribute."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute {
  struct __pyx_vtabstruct_7setools_9policyrep_BaseType __pyx_base;
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *);
  PyObject *(*load_types)(struct __pyx_obj_7setools_9policyrep_TypeAttribute *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *__pyx_vtabptr_7setools_9policyrep_TypeAttribute;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_f_7setools_9policyrep_13TypeAttribute_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *);


/* "setools/policyrep/typeattr.pxi":207
 * 
 * 
 * cdef class TypeHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over types in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TypeHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeHashtabIterator *__pyx_vtabptr_7setools_9policyrep_TypeHashtabIterator;


/* "setools/policyrep/typeattr.pxi":258
 * 
 * 
 * cdef class TypeAttributeHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over type attributes in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_vtabptr_7setools_9policyrep_TypeAttributeHashtabIterator;


/* "setools/policyrep/typeattr.pxi":308
 * # Ebitmap Iterator Classes
 * #
 * cdef class TypeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type ebitmap."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TypeEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
  PyObject *(*factory_from_set)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_TypeEbitmapIterator;


/* "setools/policyrep/typeattr.pxi":336
 * 
 * 
 * cdef class TypeAttributeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type attribute ebitmap."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
  PyObject *(*factory_from_set)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_TypeAttributeEbitmapIterator;


/* "setools/policyrep/typeattr.pxi":365
 * 
 * 
 * cdef class TypeOrAttributeEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a type or type attribute ebitmap."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_TypeOrAttributeEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
  PyObject *(*factory_from_set)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_TypeOrAttributeEbitmapIterator;


/* "setools/policyrep/user.pxi":24
 * 
 * 
 * cdef class User(PolicySymbol):             # <<<<<<<<<<<<<<
 * 
 *     """A user."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_User {
  struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_base;
  struct __pyx_obj_7setools_9policyrep_User *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, user_datum_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_User *__pyx_vtabptr_7setools_9policyrep_User;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_User *__pyx_f_7setools_9policyrep_4User_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, user_datum_t *);


/* "setools/policyrep/user.pxi":97
 * # Iterator Classes
 * #
 * cdef class UserHashtabIterator(HashtabIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over users in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_UserHashtabIterator {
  struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_base;
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_UserHashtabIterator *__pyx_vtabptr_7setools_9policyrep_UserHashtabIterator;


/* "setools/policyrep/user.pxi":115
 * 
 * 
 * cdef class UserEbitmapIterator(EbitmapIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterate over a user ebitmap."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_UserEbitmapIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_UserEbitmapIterator *__pyx_vtabptr_7setools_9policyrep_UserEbitmapIterator;


/* "setools/policyrep/xencontext.pxi":28
 * # Classes
 * #
 * cdef class Devicetreecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A devicetreecon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Devicetreecon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Devicetreecon *__pyx_vtabptr_7setools_9policyrep_Devicetreecon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_f_7setools_9policyrep_13Devicetreecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":48
 * 
 * 
 * cdef class Iomemcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A iomemcon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Iomemcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Iomemcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Iomemcon *__pyx_vtabptr_7setools_9policyrep_Iomemcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_f_7setools_9policyrep_8Iomemcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":73
 * 
 * 
 * cdef class Ioportcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A ioportcon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Ioportcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Ioportcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ioportcon *__pyx_vtabptr_7setools_9policyrep_Ioportcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_f_7setools_9policyrep_9Ioportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":98
 * 
 * 
 * cdef class Pcidevicecon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A pcidevicecon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Pcidevicecon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Pcidevicecon *__pyx_vtabptr_7setools_9policyrep_Pcidevicecon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_f_7setools_9policyrep_12Pcidevicecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":118
 * 
 * 
 * cdef class Pirqcon(Ocontext):             # <<<<<<<<<<<<<<
 * 
 *     """A pirqcon statement."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_Pirqcon {
  struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_base;
  struct __pyx_obj_7setools_9policyrep_Pirqcon *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_Pirqcon *__pyx_vtabptr_7setools_9policyrep_Pirqcon;
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_f_7setools_9policyrep_7Pirqcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);


/* "setools/policyrep/xencontext.pxi":141
 * # Iterators
 * #
 * cdef class DevicetreeconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for devicetreecon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_DevicetreeconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_DevicetreeconIterator *__pyx_vtabptr_7setools_9policyrep_DevicetreeconIterator;


/* "setools/policyrep/xencontext.pxi":158
 * 
 * 
 * cdef class IomemconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for iomemcon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_IomemconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_IomemconIterator *__pyx_vtabptr_7setools_9policyrep_IomemconIterator;


/* "setools/policyrep/xencontext.pxi":175
 * 
 * 
 * cdef class IoportconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for ioportcon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_IoportconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_IoportconIterator *__pyx_vtabptr_7setools_9policyrep_IoportconIterator;


/* "setools/policyrep/xencontext.pxi":192
 * 
 * 
 * cdef class PcideviceconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for pcidevicecon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PcideviceconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PcideviceconIterator *__pyx_vtabptr_7setools_9policyrep_PcideviceconIterator;


/* "setools/policyrep/xencontext.pxi":209
 * 
 * 
 * cdef class PirqconIterator(OcontextIterator):             # <<<<<<<<<<<<<<
 * 
 *     """Iterator for pirqcon statements in the policy."""
 */

struct __pyx_vtabstruct_7setools_9policyrep_PirqconIterator {
  PyObject *(*factory)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *);
};
static struct __pyx_vtabstruct_7setools_9policyrep_PirqconIterator *__pyx_vtabptr_7setools_9policyrep_PirqconIterator;

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
#endif
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
    const char* function_name);

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
#define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyCFunctionFastCall.proto */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
#else
#define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
#endif

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#else
#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif

/* PyObjectCall2Args.proto */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  PyErr_Occurred()
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* PyObjectCallNoArg.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
#else
#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
#endif

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* ListExtend.proto */
static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject* none = _PyList_Extend((PyListObject*)L, v);
    if (unlikely(!none))
        return -1;
    Py_DECREF(none);
    return 0;
#else
    return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
#endif
}

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* GetAttr.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* SetItemInt.proto */
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
                                               int is_list, int wraparound, int boundscheck);

/* pyfrozenset_new.proto */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it);

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod0.proto */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* pop.proto */
static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L);
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L);
#define __Pyx_PyObject_Pop(L) (likely(PyList_CheckExact(L)) ?\
    __Pyx_PyList_Pop(L) : __Pyx__PyObject_Pop(L))
#else
#define __Pyx_PyList_Pop(L)  __Pyx__PyObject_Pop(L)
#define __Pyx_PyObject_Pop(L)  __Pyx__PyObject_Pop(L)
#endif

/* UnpackUnboundCMethod.proto */
typedef struct {
    PyObject *type;
    PyObject **method_name;
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;

/* CallUnboundCMethod0.proto */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CallUnboundCMethod0(cfunc, self)\
    (likely((cfunc)->func) ?\
        (likely((cfunc)->flag == METH_NOARGS) ?  (*((cfunc)->func))(self, NULL) :\
         (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
            (PY_VERSION_HEX >= 0x030700A0 ?\
                (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
                (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
          (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
            (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
            (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ?  ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
               ((cfunc)->flag == METH_VARARGS ?  (*((cfunc)->func))(self, __pyx_empty_tuple) :\
               __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
        __Pyx__CallUnboundCMethod0(cfunc, self))
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* KeywordStringCheck.proto */
static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* set_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set);
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set);

/* dict_getitem_default.proto */
static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value);

/* CallUnboundCMethod1.proto */
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#else
#define __Pyx_CallUnboundCMethod1(cfunc, self, arg)  __Pyx__CallUnboundCMethod1(cfunc, self, arg)
#endif

/* CallUnboundCMethod2.proto */
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
#else
#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2)  __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
#endif

/* DictGetItem.proto */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* None.proto */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* Intern.proto */
static PyObject* __Pyx_Intern(PyObject* s);

/* IterNext.proto */
#define __Pyx_PyIter_Next(obj) __Pyx_PyIter_Next2(obj, NULL)
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject *, PyObject *);

/* FetchCommonType.proto */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);

/* CythonFunctionShared.proto */
#define __Pyx_CyFunction_USED 1
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#define __Pyx_CyFunction_GetClassObj(f)\
    (((__pyx_CyFunctionObject *) (f))->func_classobj)
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
    PyCFunctionObject func;
#if PY_VERSION_HEX < 0x030500A0
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
    PyObject *func_classobj;
    void *defaults;
    int defaults_pyobjects;
    size_t defaults_size;  // used by FusedFunction for copying defaults
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
} __pyx_CyFunctionObject;
static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_Check(obj)  (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *self,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(void);

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
#endif
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* py_dict_values.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* CoroutineBase.proto */
typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyThreadState *, PyObject *);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_ExcInfoStruct  _PyErr_StackItem
#else
typedef struct {
    PyObject *exc_type;
    PyObject *exc_value;
    PyObject *exc_traceback;
} __Pyx_ExcInfoStruct;
#endif
typedef struct {
    PyObject_HEAD
    __pyx_coroutine_body_t body;
    PyObject *closure;
    __Pyx_ExcInfoStruct gi_exc_state;
    PyObject *gi_weakreflist;
    PyObject *classobj;
    PyObject *yieldfrom;
    PyObject *gi_name;
    PyObject *gi_qualname;
    PyObject *gi_modulename;
    PyObject *gi_code;
    int resume_label;
    char is_running;
} __pyx_CoroutineObject;
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
    PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
    PyObject *name, PyObject *qualname, PyObject *module_name);
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
static int __Pyx_Coroutine_clear(PyObject *self);
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
static PyObject *__Pyx_Coroutine_Close(PyObject *self);
static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_Coroutine_SwapException(self)
#define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
#else
#define __Pyx_Coroutine_SwapException(self) {\
    __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
    __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
    }
#define __Pyx_Coroutine_ResetAndClearException(self) {\
    __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
    (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
    }
#endif
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
#else
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
#endif
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);

/* PyObject_GenericGetAttrNoDict.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
#endif

/* PatchModuleWithCoroutine.proto */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);

/* PatchGeneratorABC.proto */
static int __Pyx_patch_abc(void);

/* Generator.proto */
#define __Pyx_Generator_USED
static PyTypeObject *__pyx_GeneratorType = 0;
#define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType)
#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
static PyObject *__Pyx_Generator_Next(PyObject *self);
static int __pyx_Generator_init(void);

/* GeneratorYieldFrom.proto */
static CYTHON_INLINE PyObject* __Pyx_Generator_Yield_From(__pyx_CoroutineObject *gen, PyObject *source);

/* dict_setdefault.proto */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value, int is_safe_type);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* HasAttr.proto */
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);

/* PyObject_GenericGetAttr.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
#endif

/* SetVTable.proto */
static int __Pyx_SetVtable(PyObject *dict, void *vtable);

/* PyObjectGetAttrStrNoError.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* SetupReduce.proto */
static int __Pyx_setup_reduce(PyObject* type_obj);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto
#define __PYX_HAVE_RT_ImportType_proto
enum __Pyx_ImportType_CheckSize {
   __Pyx_ImportType_CheckSize_Error = 0,
   __Pyx_ImportType_CheckSize_Warn = 1,
   __Pyx_ImportType_CheckSize_Ignore = 2
};
static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
#endif

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* ClassMethod.proto */
#include "descrobject.h"
static CYTHON_UNUSED PyObject* __Pyx_Method_ClassMethod(PyObject *method);

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* CyFunctionClassCell.proto */
static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *classobj);

/* CLineInTraceback.proto */
#ifdef CYTHON_CLINE_IN_TRACEBACK
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#else
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#endif

/* CodeObjectCache.proto */
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* GCCDiagnostics.proto */
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* CIntFromPy.proto */
static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint32_t(uint32_t value);

/* CIntFromPy.proto */
static CYTHON_INLINE uint32_t __Pyx_PyInt_As_uint32_t(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mode_t(mode_t value);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint8_t(uint8_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value);

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(void);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_f_7setools_9policyrep_7Boolean_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_bool_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_f_7setools_9policyrep_11Conditional_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_node_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_f_7setools_9policyrep_19ConditionalOperator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_expr_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_22BooleanHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19ConditionalIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_node_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_23ConditionalExprIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_expr_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_f_7setools_9policyrep_6Bounds_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_parent, PyObject *__pyx_v_child); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_18TypeboundsIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_10Constraint_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13Validatetrans_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_18ConstraintIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_21ValidatetransIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_22ConstraintExprIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, context_struct_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Default *__pyx_f_7setools_9policyrep_7Default_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, PyObject *__pyx_v_user, PyObject *__pyx_v_role, PyObject *__pyx_v_type_, PyObject *__pyx_v_range_); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_f_7setools_9policyrep_5FSUse_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_f_7setools_9policyrep_8Genfscon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol, PyObject *__pyx_v_fstype); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13FSUseIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_16GenfsconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, genfs_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head, PyObject *__pyx_v_fstype); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_f_7setools_9policyrep_10InitialSID_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct ocontext *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_18InitialSIDIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Category *__pyx_f_7setools_9policyrep_8Category_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cat_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_f_7setools_9policyrep_11Sensitivity_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, level_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_f_7setools_9policyrep_9LevelDecl_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, level_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, mls_level_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_name); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, mls_range_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_name); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_23CategoryHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_26SensitivityHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_24LevelDeclHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_f_7setools_9policyrep_7MLSRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, range_trans_t *__pyx_v_symbol, mls_range_t *__pyx_v_rng); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_15MLSRuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_f_7setools_9policyrep_12Ibendportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_f_7setools_9policyrep_9Ibpkeycon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_f_7setools_9policyrep_8Netifcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_f_7setools_9policyrep_7Nodecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol, PyObject *__pyx_v_ip_version); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_f_7setools_9policyrep_7Portcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_20IbendportconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_17IbpkeyconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_16NetifconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_15NodeconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head, PyObject *__pyx_v_ip_version); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_15PortconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Common *__pyx_f_7setools_9policyrep_6Common_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, common_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_f_7setools_9policyrep_8ObjClass_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, class_datum_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_21CommonHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, uint32_t __pyx_v_vector); /* proto*/
static CYTHON_INLINE int __pyx_f_7setools_9policyrep_12PolicyObject__eq(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_other); /* proto*/
static void __pyx_f_7setools_9policyrep_15HashtabIterator__next_bucket(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto*/
static void __pyx_f_7setools_9policyrep_15HashtabIterator__next_node(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_f_7setools_9policyrep_16PolicyCapability_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, size_t __pyx_v_bit); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_24PolicyCapabilityIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_f_7setools_9policyrep_9RoleAllow_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_allow_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_f_7setools_9policyrep_14RoleTransition_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_trans_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_17RoleAllowIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_allow_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_trans_t *__pyx_v_head); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Role *__pyx_f_7setools_9policyrep_4Role_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_datum_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19RoleHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static CYTHON_INLINE cond_bool_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE cat_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE class_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE level_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE role_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE type_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE user_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_policy(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_filename); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_running_policy(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__set_permissive_flags(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__create_mls_val_to_struct(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_category_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_sensitivity_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_type_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__rebuild_attrs_from_map(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__synthesize_attrs(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_constraint_counts(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_terule_counts(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_f_7setools_9policyrep_6AVRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TERule *__pyx_f_7setools_9policyrep_6TERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_f_7setools_9policyrep_14FileNameTERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, filename_trans_key_t *__pyx_v_key, struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_stype, size_t __pyx_v_otype); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_14TERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct avtab *__pyx_v_table); /* proto*/
static void __pyx_f_7setools_9policyrep_14TERuleIterator__next_bucket(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto*/
static void __pyx_f_7setools_9policyrep_14TERuleIterator__next_node(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_av_list_t *__pyx_v_head, PyObject *__pyx_v_conditional, PyObject *__pyx_v_cond_block); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Type *__pyx_f_7setools_9policyrep_4Type_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE void __pyx_f_7setools_9policyrep_4Type__load_attributes(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_f_7setools_9policyrep_13TypeAttribute_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_13TypeAttribute_load_types(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19TypeHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_User *__pyx_f_7setools_9policyrep_4User_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, user_datum_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19UserHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_19UserEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_f_7setools_9policyrep_13Devicetreecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_f_7setools_9policyrep_8Iomemcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_f_7setools_9policyrep_9Ioportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_f_7setools_9policyrep_12Pcidevicecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_f_7setools_9policyrep_7Pirqcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_21DevicetreeconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_16IomemconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_17IoportconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_20PcideviceconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/
static PyObject *__pyx_f_7setools_9policyrep_15PirqconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head); /* proto*/

/* Module declarations from 'libc.string' */

/* Module declarations from 'libc.stdio' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.type' */
static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;

/* Module declarations from 'cpython' */

/* Module declarations from 'cpython.object' */

/* Module declarations from 'cpython.exc' */

/* Module declarations from 'cpython.mem' */

/* Module declarations from 'libc.errno' */

/* Module declarations from 'libc.stdint' */

/* Module declarations from 'libc.stdlib' */

/* Module declarations from 'posix.types' */

/* Module declarations from 'posix.stat' */

/* Module declarations from 'sepol' */

/* Module declarations from 'selinux' */

/* Module declarations from 'setools.policyrep' */
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyObject = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicySymbol = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Boolean = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Conditional = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ConditionalOperator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_HashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ConditionalIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ConditionalExprIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Bounds = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeboundsIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_BaseConstraint = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Constraint = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Validatetrans = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ConstraintExpression = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ConstraintExprNode = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ConstraintIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ValidatetransIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ConstraintExprIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Context = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Default = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_DefaultRange = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Ocontext = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_FSUse = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_GenfsFiletype = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Genfscon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_OcontextIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_FSUseIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_GenfsconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_InitialSID = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_InitialSIDIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Category = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Sensitivity = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_BaseMLSLevel = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_LevelDecl = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Level = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Range = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_EbitmapIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyRule = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_MLSRule = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_MLSRuleIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Ibendportcon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Ibpkeycon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Netifcon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Nodecon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Portcon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_IbendportconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_IbpkeyconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_NetifconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_NodeconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PortconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Common = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ObjClass = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_CommonHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PermissionVectorIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyCapability = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleAllow = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleTransition = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleAllowIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleTransitionIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Role = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_SELinuxPolicy = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_BaseTERule = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_AVRule = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_IoctlSet = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_AVRuleXperm = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TERule = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_FileNameTERule = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TERuleIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_BaseType = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Type = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeAttribute = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_User = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_UserHashtabIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_UserEbitmapIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Devicetreecon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Iomemcon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Ioportcon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Pcidevicecon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_Pirqcon = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_DevicetreeconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_IomemconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_IoportconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PcideviceconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep_PirqconIterator = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct__truth_table = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2___str__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_factory = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_statement = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16___get__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18___get__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20___get__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22___get__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24___get__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26___get__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28___get__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_defaults = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_terules = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_constraints = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_factory = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_36_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_37_derive_expanded = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_38_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_39_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_40_ranges = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_41_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_42_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_43_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_44_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_45___len__ = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_46_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_47_expand = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_48_factory = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_49_genexpr = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_50_statement = 0;
static PyTypeObject *__pyx_ptype_7setools_9policyrep___pyx_scope_struct_51_genexpr = 0;
static PyObject *__pyx_v_7setools_9policyrep__cond_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__cat_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__sens_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__leveldecl_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__common_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__objclass_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__type_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__typeattr_cache = 0;
static PyObject *__pyx_v_7setools_9policyrep__user_cache = 0;
static void __pyx_f_7setools_9policyrep_sepol_logging_callback(void *, sepol_handle_t *, char const *, ...); /*proto*/
static void __pyx_f_7setools_9policyrep_ebitmap_set_bit(ebitmap_t *, unsigned int, int); /*proto*/
static int __pyx_f_7setools_9policyrep_hashtab_insert(hashtab_t, hashtab_key_t, hashtab_datum_t); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep_flatten_list(PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep_expand_cat_range(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_Category *, struct __pyx_obj_7setools_9policyrep_Category *); /*proto*/
static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_f_7setools_9policyrep_type_or_attr_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *); /*proto*/
static CYTHON_INLINE int __pyx_f_7setools_9policyrep_type_is_alias(type_datum_t *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Boolean__set_state(struct __pyx_obj_7setools_9policyrep_Boolean *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Conditional__set_state(struct __pyx_obj_7setools_9policyrep_Conditional *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConditionalOperator__set_state(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Bounds__set_state(struct __pyx_obj_7setools_9policyrep_Bounds *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseConstraint__set_state(struct __pyx_obj_7setools_9policyrep_BaseConstraint *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Constraint__set_state(struct __pyx_obj_7setools_9policyrep_Constraint *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Validatetrans__set_state(struct __pyx_obj_7setools_9policyrep_Validatetrans *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExpression__set_state(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExprNode__set_state(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Context__set_state(struct __pyx_obj_7setools_9policyrep_Context *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Default__set_state(struct __pyx_obj_7setools_9policyrep_Default *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_DefaultRange__set_state(struct __pyx_obj_7setools_9policyrep_DefaultRange *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_FSUse__set_state(struct __pyx_obj_7setools_9policyrep_FSUse *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_GenfsFiletype__set_state(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Genfscon__set_state(struct __pyx_obj_7setools_9policyrep_Genfscon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_InitialSID__set_state(struct __pyx_obj_7setools_9policyrep_InitialSID *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Category__set_state(struct __pyx_obj_7setools_9policyrep_Category *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Sensitivity__set_state(struct __pyx_obj_7setools_9policyrep_Sensitivity *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseMLSLevel__set_state(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_LevelDecl__set_state(struct __pyx_obj_7setools_9policyrep_LevelDecl *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Level__set_state(struct __pyx_obj_7setools_9policyrep_Level *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Range__set_state(struct __pyx_obj_7setools_9policyrep_Range *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_MLSRule__set_state(struct __pyx_obj_7setools_9policyrep_MLSRule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ibendportcon__set_state(struct __pyx_obj_7setools_9policyrep_Ibendportcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ibpkeycon__set_state(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Netifcon__set_state(struct __pyx_obj_7setools_9policyrep_Netifcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Nodecon__set_state(struct __pyx_obj_7setools_9policyrep_Nodecon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Portcon__set_state(struct __pyx_obj_7setools_9policyrep_Portcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Common__set_state(struct __pyx_obj_7setools_9policyrep_Common *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ObjClass__set_state(struct __pyx_obj_7setools_9policyrep_ObjClass *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PermissionVectorIterator__set_state(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyObject__set_state(struct __pyx_obj_7setools_9policyrep_PolicyObject *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicySymbol__set_state(struct __pyx_obj_7setools_9policyrep_PolicySymbol *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ocontext__set_state(struct __pyx_obj_7setools_9policyrep_Ocontext *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyIterator__set_state(struct __pyx_obj_7setools_9policyrep_PolicyIterator *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyCapability__set_state(struct __pyx_obj_7setools_9policyrep_PolicyCapability *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_RoleAllow__set_state(struct __pyx_obj_7setools_9policyrep_RoleAllow *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_RoleTransition__set_state(struct __pyx_obj_7setools_9policyrep_RoleTransition *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Role__set_state(struct __pyx_obj_7setools_9policyrep_Role *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyRule__set_state(struct __pyx_obj_7setools_9policyrep_PolicyRule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseTERule__set_state(struct __pyx_obj_7setools_9policyrep_BaseTERule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_AVRule__set_state(struct __pyx_obj_7setools_9policyrep_AVRule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_IoctlSet__set_state(struct __pyx_obj_7setools_9policyrep_IoctlSet *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_AVRuleXperm__set_state(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_TERule__set_state(struct __pyx_obj_7setools_9policyrep_TERule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_FileNameTERule__set_state(struct __pyx_obj_7setools_9policyrep_FileNameTERule *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseType__set_state(struct __pyx_obj_7setools_9policyrep_BaseType *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Type__set_state(struct __pyx_obj_7setools_9policyrep_Type *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_TypeAttribute__set_state(struct __pyx_obj_7setools_9policyrep_TypeAttribute *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_User__set_state(struct __pyx_obj_7setools_9policyrep_User *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Devicetreecon__set_state(struct __pyx_obj_7setools_9policyrep_Devicetreecon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Iomemcon__set_state(struct __pyx_obj_7setools_9policyrep_Iomemcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ioportcon__set_state(struct __pyx_obj_7setools_9policyrep_Ioportcon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Pcidevicecon__set_state(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *, PyObject *); /*proto*/
static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Pirqcon__set_state(struct __pyx_obj_7setools_9policyrep_Pirqcon *, PyObject *); /*proto*/
#define __Pyx_MODULE_NAME "setools.policyrep"
extern int __pyx_module_is_main_setools__policyrep;
int __pyx_module_is_main_setools__policyrep = 0;

/* Implementation of 'setools.policyrep' */
static PyObject *__pyx_builtin_super;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_KeyError;
static PyObject *__pyx_builtin_MemoryError;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_StopIteration;
static PyObject *__pyx_builtin_NotImplementedError;
static PyObject *__pyx_builtin_AttributeError;
static PyObject *__pyx_builtin_sorted;
static PyObject *__pyx_builtin_IndexError;
static PyObject *__pyx_builtin_id;
static PyObject *__pyx_builtin_sum;
static PyObject *__pyx_builtin_OSError;
static PyObject *__pyx_builtin_RuntimeError;
static const char __pyx_k_[] = "(";
static const char __pyx_k_0[] = "{{ {0} }}";
static const char __pyx_k_b[] = "-b";
static const char __pyx_k_c[] = "c";
static const char __pyx_k_d[] = "-d";
static const char __pyx_k_e[] = "e";
static const char __pyx_k_k[] = "k";
static const char __pyx_k_l[] = "-l";
static const char __pyx_k_p[] = "-p";
static const char __pyx_k_s[] = "-s";
static const char __pyx_k_x[] = "x";
static const char __pyx_k_y[] = "y";
static const char __pyx_k__2[] = ")";
static const char __pyx_k__3[] = " ";
static const char __pyx_k_eq[] = "__eq__";
static const char __pyx_k_fs[] = "fs";
static const char __pyx_k_h1[] = "h1";
static const char __pyx_k_h2[] = "h2";
static const char __pyx_k_id[] = "id";
static const char __pyx_k_l1[] = "l1";
static const char __pyx_k_l2[] = "l2";
static const char __pyx_k_or[] = "or";
static const char __pyx_k_r1[] = "r1";
static const char __pyx_k_r2[] = "r2";
static const char __pyx_k_r3[] = "r3";
static const char __pyx_k_t1[] = "t1";
static const char __pyx_k_t2[] = "t2";
static const char __pyx_k_t3[] = "t3";
static const char __pyx_k_u1[] = "u1";
static const char __pyx_k_u2[] = "u2";
static const char __pyx_k_u3[] = "u3";
static const char __pyx_k_04x[] = "04x";
static const char __pyx_k_0_1[] = "{0}.{1}";
static const char __pyx_k_0_2[] = "{{ {0} }} ";
static const char __pyx_k_0_3[] = "{0}";
static const char __pyx_k_0_4[] = "{{\n\t{0}\n}}";
static const char __pyx_k_0_5[] = "{{ {0} }};";
static const char __pyx_k_0_6[] = "{0};";
static const char __pyx_k_0_7[] = "{{ {0:,} }}";
static const char __pyx_k_0_8[] = ", {0}";
static const char __pyx_k__12[] = "==";
static const char __pyx_k__13[] = "!=";
static const char __pyx_k__32[] = ";";
static const char __pyx_k__33[] = ":";
static const char __pyx_k__34[] = ",";
static const char __pyx_k__35[] = ".";
static const char __pyx_k__36[] = "-";
static const char __pyx_k__37[] = "";
static const char __pyx_k__48[] = "/";
static const char __pyx_k__60[] = "\n\t";
static const char __pyx_k__84[] = ", ";
static const char __pyx_k_and[] = "and";
static const char __pyx_k_c_2[] = "-c";
static const char __pyx_k_cls[] = "cls";
static const char __pyx_k_dir[] = "dir";
static const char __pyx_k_doc[] = "__doc__";
static const char __pyx_k_dom[] = "dom";
static const char __pyx_k_get[] = "get";
static const char __pyx_k_irq[] = "irq";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_low[] = "low";
static const char __pyx_k_new[] = "__new__";
static const char __pyx_k_not[] = "not";
static const char __pyx_k_pop[] = "pop";
static const char __pyx_k_str[] = "__str__";
static const char __pyx_k_sum[] = "sum";
static const char __pyx_k_tcp[] = "tcp";
static const char __pyx_k_udp[] = "udp";
static const char __pyx_k_xen[] = "xen";
static const char __pyx_k_Enum[] = "Enum";
static const char __pyx_k_Role[] = "Role";
static const char __pyx_k_Type[] = "Type";
static const char __pyx_k_User[] = "User";
static const char __pyx_k__133[] = "!";
static const char __pyx_k__134[] = "||";
static const char __pyx_k__135[] = "&&";
static const char __pyx_k__136[] = "^";
static const char __pyx_k__142[] = "--";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_dccp[] = "dccp";
static const char __pyx_k_deny[] = "deny";
static const char __pyx_k_dict[] = "__dict__";
static const char __pyx_k_dom0[] = "dom0";
static const char __pyx_k_domU[] = "domU";
static const char __pyx_k_enum[] = "enum";
static const char __pyx_k_file[] = "file";
static const char __pyx_k_hash[] = "__hash__";
static const char __pyx_k_high[] = "high";
static const char __pyx_k_info[] = "info";
static const char __pyx_k_init[] = "__init__";
static const char __pyx_k_ipv4[] = "ipv4";
static const char __pyx_k_ipv6[] = "ipv6";
static const char __pyx_k_kmod[] = "kmod";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_next[] = "__next__";
static const char __pyx_k_node[] = "node";
static const char __pyx_k_port[] = "port";
static const char __pyx_k_sctp[] = "sctp";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_send[] = "send";
static const char __pyx_k_spec[] = "spec";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_warn[] = "warn";
static const char __pyx_k_0_06x[] = "{0:#06x}";
static const char __pyx_k_0_1_2[] = "{0}/{1}";
static const char __pyx_k_FSUse[] = "FSUse";
static const char __pyx_k_Level[] = "Level";
static const char __pyx_k_Range[] = "Range";
static const char __pyx_k_Union[] = "Union";
static const char __pyx_k_allow[] = "allow";
static const char __pyx_k_bools[] = "bools";
static const char __pyx_k_bound[] = "bound";
static const char __pyx_k_chain[] = "chain";
static const char __pyx_k_child[] = "child";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_count[] = "count";
static const char __pyx_k_debug[] = "debug";
static const char __pyx_k_deref[] = "deref";
static const char __pyx_k_domDM[] = "domDM";
static const char __pyx_k_domby[] = "domby";
static const char __pyx_k_domio[] = "domio";
static const char __pyx_k_errno[] = "errno";
static const char __pyx_k_infix[] = "infix";
static const char __pyx_k_ioctl[] = "ioctl";
static const char __pyx_k_iomem[] = "iomem";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_names[] = "names";
static const char __pyx_k_netif[] = "netif";
static const char __pyx_k_other[] = "other";
static const char __pyx_k_perms[] = "perms";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_reset[] = "reset";
static const char __pyx_k_roles[] = "roles";
static const char __pyx_k_state[] = "state";
static const char __pyx_k_strip[] = "strip";
static const char __pyx_k_super[] = "super";
static const char __pyx_k_throw[] = "throw";
static const char __pyx_k_types[] = "types";
static const char __pyx_k_unary[] = "unary";
static const char __pyx_k_users[] = "users";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_AVRule[] = "AVRule";
static const char __pyx_k_Bounds[] = "Bounds";
static const char __pyx_k_Common[] = "Common";
static const char __pyx_k_TERule[] = "TERule";
static const char __pyx_k_common[] = "common";
static const char __pyx_k_device[] = "device";
static const char __pyx_k_domxen[] = "domxen";
static const char __pyx_k_expand[] = "expand";
static const char __pyx_k_format[] = "__format__";
static const char __pyx_k_glblub[] = "glblub";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_incomp[] = "incomp";
static const char __pyx_k_init_2[] = "init";
static const char __pyx_k_ioport[] = "ioport";
static const char __pyx_k_kernel[] = "kernel";
static const char __pyx_k_levels[] = "levels";
static const char __pyx_k_lookup[] = "lookup";
static const char __pyx_k_module[] = "__module__";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_name_3[] = "_name";
static const char __pyx_k_netmsg[] = "netmsg";
static const char __pyx_k_parent[] = "parent";
static const char __pyx_k_pickle[] = "pickle";
static const char __pyx_k_policy[] = "policy";
static const char __pyx_k_ranges[] = "ranges";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_reject[] = "reject";
static const char __pyx_k_repeat[] = "repeat";
static const char __pyx_k_result[] = "result";
static const char __pyx_k_role_0[] = "role {0}";
static const char __pyx_k_sorted[] = "sorted";
static const char __pyx_k_source[] = "source";
static const char __pyx_k_strict[] = "strict";
static const char __pyx_k_sysctl[] = "sysctl";
static const char __pyx_k_target[] = "target";
static const char __pyx_k_tclass[] = "tclass";
static const char __pyx_k_type_0[] = "type {0}";
static const char __pyx_k_typing[] = "typing";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_values[] = "values";
static const char __pyx_k_Boolean[] = "Boolean";
static const char __pyx_k_Context[] = "Context";
static const char __pyx_k_Counter[] = "Counter";
static const char __pyx_k_Default[] = "Default";
static const char __pyx_k_MLSRule[] = "MLSRule";
static const char __pyx_k_Nodecon[] = "Nodecon";
static const char __pyx_k_OSError[] = "OSError";
static const char __pyx_k_Pirqcon[] = "Pirqcon";
static const char __pyx_k_Portcon[] = "Portcon";
static const char __pyx_k_TypeVar[] = "TypeVar";
static const char __pyx_k_alias_0[] = " alias {{ {0} }}";
static const char __pyx_k_aliases[] = "aliases";
static const char __pyx_k_class_0[] = "class {0}\n";
static const char __pyx_k_classes[] = "classes";
static const char __pyx_k_commons[] = "commons";
static const char __pyx_k_default[] = "default";
static const char __pyx_k_devnull[] = "devnull";
static const char __pyx_k_fs_uses[] = "fs_uses";
static const char __pyx_k_genexpr[] = "genexpr";
static const char __pyx_k_getitem[] = "__getitem__";
static const char __pyx_k_groupby[] = "groupby";
static const char __pyx_k_level_0[] = "level {0};";
static const char __pyx_k_logging[] = "logging";
static const char __pyx_k_missing[] = "__missing__";
static const char __pyx_k_nodecon[] = "nodecon|{}";
static const char __pyx_k_polcaps[] = "polcaps";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_product[] = "product";
static const char __pyx_k_range_2[] = "range_";
static const char __pyx_k_replace[] = "replace";
static const char __pyx_k_selinux[] = "selinux";
static const char __pyx_k_setitem[] = "__setitem__";
static const char __pyx_k_terules[] = "terules";
static const char __pyx_k_types_0[] = " types {0}";
static const char __pyx_k_value_2[] = "_value";
static const char __pyx_k_warning[] = "warning";
static const char __pyx_k_weakref[] = "weakref";
static const char __pyx_k_BaseType[] = "BaseType";
static const char __pyx_k_Category[] = "Category";
static const char __pyx_k_Genfscon[] = "Genfscon";
static const char __pyx_k_IoctlSet[] = "IoctlSet";
static const char __pyx_k_Iomemcon[] = "Iomemcon";
static const char __pyx_k_KeyError[] = "KeyError";
static const char __pyx_k_Netifcon[] = "Netifcon";
static const char __pyx_k_NoCommon[] = "NoCommon";
static const char __pyx_k_ObjClass[] = "ObjClass";
static const char __pyx_k_Ocontext[] = "Ocontext";
static const char __pyx_k_blk_file[] = "blk_file";
static const char __pyx_k_bool_0_1[] = "bool {0} {1};";
static const char __pyx_k_chr_file[] = "chr_file";
static const char __pyx_k_defaults[] = "defaults";
static const char __pyx_k_evaluate[] = "evaluate";
static const char __pyx_k_format_2[] = "format";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_libsepol[] = "libsepol";
static const char __pyx_k_lnk_file[] = "lnk_file";
static const char __pyx_k_low_high[] = "low_high";
static const char __pyx_k_mlsrules[] = "mlsrules";
static const char __pyx_k_new_name[] = "new_name";
static const char __pyx_k_nodecons[] = "nodecons";
static const char __pyx_k_object_r[] = "object_r";
static const char __pyx_k_pirqcons[] = "pirqcons";
static const char __pyx_k_portcons[] = "portcons";
static const char __pyx_k_pyx_type[] = "__pyx_type";
static const char __pyx_k_qualname[] = "__qualname__";
static const char __pyx_k_ruletype[] = "ruletype";
static const char __pyx_k_security[] = "security";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_warnings[] = "warnings";
static const char __pyx_k_AnyTERule[] = "AnyTERule";
static const char __pyx_k_Ibpkeycon[] = "Ibpkeycon";
static const char __pyx_k_Ioportcon[] = "Ioportcon";
static const char __pyx_k_LevelDecl[] = "LevelDecl";
static const char __pyx_k_RoleAllow[] = "RoleAllow";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_alias_0_2[] = " alias {0}";
static const char __pyx_k_constrain[] = "constrain";
static const char __pyx_k_dontaudit[] = "dontaudit";
static const char __pyx_k_exception[] = "exception";
static const char __pyx_k_fifo_file[] = "fifo_file";
static const char __pyx_k_genfscons[] = "genfscons";
static const char __pyx_k_getLogger[] = "getLogger";
static const char __pyx_k_iomemcons[] = "iomemcons";
static const char __pyx_k_ipaddress[] = "ipaddress";
static const char __pyx_k_itertools[] = "itertools";
static const char __pyx_k_metaclass[] = "__metaclass__";
static const char __pyx_k_netifcons[] = "netifcons";
static const char __pyx_k_pyx_state[] = "__pyx_state";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_role_syms[] = "_role_syms";
static const char __pyx_k_sock_file[] = "sock_file";
static const char __pyx_k_statement[] = "statement";
static const char __pyx_k_sysctl_fs[] = "sysctl_fs";
static const char __pyx_k_sysctl_vm[] = "sysctl_vm";
static const char __pyx_k_type_syms[] = "_type_syms";
static const char __pyx_k_types_0_2[] = " types {{ {0} }}";
static const char __pyx_k_undefined[] = "undefined";
static const char __pyx_k_unlabeled[] = "unlabeled";
static const char __pyx_k_user_syms[] = "_user_syms";
static const char __pyx_k_AnyDefault[] = "AnyDefault";
static const char __pyx_k_BaseTERule[] = "BaseTERule";
static const char __pyx_k_Constraint[] = "Constraint";
static const char __pyx_k_IndexError[] = "IndexError";
static const char __pyx_k_InitialSID[] = "InitialSID";
static const char __pyx_k_NoDefaults[] = "NoDefaults";
static const char __pyx_k_PolicyEnum[] = "PolicyEnum";
static const char __pyx_k_PolicyRule[] = "PolicyRule";
static const char __pyx_k_TERuletype[] = "TERuletype";
static const char __pyx_k_TypeOrAttr[] = "TypeOrAttr";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_allowxperm[] = "allowxperm";
static const char __pyx_k_any_socket[] = "any_socket";
static const char __pyx_k_auditallow[] = "auditallow";
static const char __pyx_k_categories[] = "categories";
static const char __pyx_k_category_0[] = "category {0}";
static const char __pyx_k_common_0_1[] = "common {0}\n{{\n\t{1}\n}}";
static const char __pyx_k_expression[] = "expression";
static const char __pyx_k_ibpkeycons[] = "ibpkeycons";
static const char __pyx_k_inherits_0[] = "inherits {0}\n";
static const char __pyx_k_ioportcons[] = "ioportcons";
static const char __pyx_k_ip_network[] = "ip_network";
static const char __pyx_k_level_decl[] = "level_decl";
static const char __pyx_k_namedtuple[] = "namedtuple";
static const char __pyx_k_neverallow[] = "neverallow";
static const char __pyx_k_next_stype[] = "_next_stype";
static const char __pyx_k_policyfile[] = "policyfile";
static const char __pyx_k_precedence[] = "precedence";
static const char __pyx_k_pyx_result[] = "__pyx_result";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_setdefault[] = "setdefault";
static const char __pyx_k_sysctl_dev[] = "sysctl_dev";
static const char __pyx_k_sysctl_net[] = "sysctl_net";
static const char __pyx_k_tcp_socket[] = "tcp_socket";
static const char __pyx_k_true_rules[] = "true_rules";
static const char __pyx_k_typebounds[] = "typebounds";
static const char __pyx_k_0_06x_1_06x[] = "{0:#06x}-{1:#06x}";
static const char __pyx_k_AVRuleXperm[] = "AVRuleXperm";
static const char __pyx_k_AnyRBACRule[] = "AnyRBACRule";
static const char __pyx_k_Conditional[] = "Conditional";
static const char __pyx_k_IPv6Address[] = "IPv6Address";
static const char __pyx_k_InvalidRole[] = "InvalidRole";
static const char __pyx_k_InvalidType[] = "InvalidType";
static const char __pyx_k_InvalidUser[] = "InvalidUser";
static const char __pyx_k_MLSDisabled[] = "MLSDisabled";
static const char __pyx_k_MLSRuletype[] = "MLSRuletype";
static const char __pyx_k_MemoryError[] = "MemoryError";
static const char __pyx_k_NoStatement[] = "NoStatement";
static const char __pyx_k_PickleError[] = "PickleError";
static const char __pyx_k_Role_expand[] = "Role.expand";
static const char __pyx_k_Sensitivity[] = "Sensitivity";
static const char __pyx_k_Type_expand[] = "Type.expand";
static const char __pyx_k_attribute_0[] = "attribute {0};";
static const char __pyx_k_collections[] = "collections";
static const char __pyx_k_constraints[] = "constraints";
static const char __pyx_k_default_map[] = "default_map";
static const char __pyx_k_false_rules[] = "false_rules";
static const char __pyx_k_file_labels[] = "file_labels";
static const char __pyx_k_fs_use_task[] = "fs_use_task";
static const char __pyx_k_icmp_socket[] = "icmp_socket";
static const char __pyx_k_igmp_packet[] = "igmp_packet";
static const char __pyx_k_initialsids[] = "initialsids";
static const char __pyx_k_policycap_0[] = "policycap {0};";
static const char __pyx_k_scmp_packet[] = "scmp_packet";
static const char __pyx_k_sensitivity[] = "sensitivity";
static const char __pyx_k_sym_to_text[] = "_sym_to_text";
static const char __pyx_k_symbol_type[] = "symbol_type";
static const char __pyx_k_type_change[] = "type_change";
static const char __pyx_k_type_member[] = "type_member";
static const char __pyx_k_0_low_0_high[] = "{0.low} - {0.high}";
static const char __pyx_k_BaseMLSLevel[] = "BaseMLSLevel";
static const char __pyx_k_DefaultRange[] = "DefaultRange";
static const char __pyx_k_DefaultValue[] = "DefaultValue";
static const char __pyx_k_Ibendportcon[] = "Ibendportcon";
static const char __pyx_k_InvalidClass[] = "InvalidClass";
static const char __pyx_k_InvalidLevel[] = "InvalidLevel";
static const char __pyx_k_InvalidRange[] = "InvalidRange";
static const char __pyx_k_Pcidevicecon[] = "Pcidevicecon";
static const char __pyx_k_PolicyObject[] = "PolicyObject";
static const char __pyx_k_PolicySymbol[] = "PolicySymbol";
static const char __pyx_k_PolicyTarget[] = "PolicyTarget";
static const char __pyx_k_PortconRange[] = "PortconRange";
static const char __pyx_k_RBACRuletype[] = "RBACRuletype";
static const char __pyx_k_RuleUseError[] = "RuleUseError";
static const char __pyx_k_RuntimeError[] = "RuntimeError";
static const char __pyx_k_XEN_SIDNAMES[] = "XEN_SIDNAMES";
static const char __pyx_k_conditionals[] = "conditionals";
static const char __pyx_k_default_role[] = "default_role";
static const char __pyx_k_default_type[] = "default_type";
static const char __pyx_k_default_user[] = "default_user";
static const char __pyx_k_defaultvalue[] = "defaultvalue";
static const char __pyx_k_fs_use_trans[] = "fs_use_trans";
static const char __pyx_k_fs_use_xattr[] = "fs_use_xattr";
static const char __pyx_k_iomemcon_0_1[] = "iomemcon {0} {1}";
static const char __pyx_k_ispermissive[] = "ispermissive";
static const char __pyx_k_mlsconstrain[] = "mlsconstrain";
static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
static const char __pyx_k_stringsource[] = "stringsource";
static const char __pyx_k_user_0_roles[] = "user {0} roles ";
static const char __pyx_k_with_netmask[] = "with_netmask";
static const char __pyx_k_AVRule_expand[] = "AVRule.expand";
static const char __pyx_k_AnyConstraint[] = "AnyConstraint";
static const char __pyx_k_Devicetreecon[] = "Devicetreecon";
static const char __pyx_k_FSUseIterator[] = "FSUseIterator";
static const char __pyx_k_FSUseRuletype[] = "FSUseRuletype";
static const char __pyx_k_GenfsFiletype[] = "GenfsFiletype";
static const char __pyx_k_HandleUnknown[] = "HandleUnknown";
static const char __pyx_k_InvalidCommon[] = "InvalidCommon";
static const char __pyx_k_InvalidPolicy[] = "InvalidPolicy";
static const char __pyx_k_IomemconRange[] = "IomemconRange";
static const char __pyx_k_SELinuxPolicy[] = "SELinuxPolicy";
static const char __pyx_k_StopIteration[] = "StopIteration";
static const char __pyx_k_TERule_expand[] = "TERule.expand";
static const char __pyx_k_TruthTableRow[] = "TruthTableRow";
static const char __pyx_k_TypeAttribute[] = "TypeAttribute";
static const char __pyx_k_Validatetrans[] = "Validatetrans";
static const char __pyx_k_default_range[] = "default_range";
static const char __pyx_k_ibendportcons[] = "ibendportcons";
static const char __pyx_k_ioportcon_0_1[] = "ioportcon {0} {1}";
static const char __pyx_k_pcidevicecons[] = "pcidevicecons";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_sensitivities[] = "sensitivities";
static const char __pyx_k_sensitivity_0[] = "sensitivity {0}";
static const char __pyx_k_sysctl_kernel[] = "sysctl_kernel";
static const char __pyx_k_validatetrans[] = "validatetrans";
static const char __pyx_k_AttributeError[] = "AttributeError";
static const char __pyx_k_BaseConstraint[] = "BaseConstraint";
static const char __pyx_k_BoundsRuletype[] = "BoundsRuletype";
static const char __pyx_k_FileNameTERule[] = "FileNameTERule";
static const char __pyx_k_IbpkeyconRange[] = "IbpkeyconRange";
static const char __pyx_k_InvalidBoolean[] = "InvalidBoolean";
static const char __pyx_k_IoportconRange[] = "IoportconRange";
static const char __pyx_k_MLSRule_expand[] = "MLSRule.expand";
static const char __pyx_k_PolicyIterator[] = "PolicyIterator";
static const char __pyx_k_RoleTransition[] = "RoleTransition";
static const char __pyx_k_SymbolUseError[] = "SymbolUseError";
static const char __pyx_k_TERuleIterator[] = "TERuleIterator";
static const char __pyx_k_devicetreecons[] = "devicetreecons";
static const char __pyx_k_dontauditxperm[] = "dontauditxperm";
static const char __pyx_k_iomemcon_0_1_2[] = "iomemcon {0}-{1} {2}";
static const char __pyx_k_ruletype_count[] = "ruletype_count";
static const char __pyx_k_sclass_to_stat[] = "_sclass_to_stat";
static const char __pyx_k_typeattributes[] = "typeattributes";
static const char __pyx_k_0_is_not_a_type[] = "{0} is not a type";
static const char __pyx_k_0_ruletype_0_fs[] = "{0.ruletype}|{0.fs}";
static const char __pyx_k_DefaultRuletype[] = "DefaultRuletype";
static const char __pyx_k_EbitmapIterator[] = "EbitmapIterator";
static const char __pyx_k_HashtabIterator[] = "HashtabIterator";
static const char __pyx_k_InvalidCategory[] = "InvalidCategory";
static const char __pyx_k_InvalidRuleType[] = "InvalidRuleType";
static const char __pyx_k_MLSRuleIterator[] = "MLSRuleIterator";
static const char __pyx_k_NodeconIterator[] = "NodeconIterator";
static const char __pyx_k_PirqconIterator[] = "PirqconIterator";
static const char __pyx_k_PolicyEnum___eq[] = "PolicyEnum.__eq__";
static const char __pyx_k_PortconIterator[] = "PortconIterator";
static const char __pyx_k_PortconProtocol[] = "PortconProtocol";
static const char __pyx_k_SELinuxPolicy_0[] = "<SELinuxPolicy(\"{0}\")>";
static const char __pyx_k_auditallowxperm[] = "auditallowxperm";
static const char __pyx_k_default_factory[] = "default_factory";
static const char __pyx_k_expr_op_to_text[] = "_expr_op_to_text";
static const char __pyx_k_ioportcon_0_1_2[] = "ioportcon {0}-{1} {2}";
static const char __pyx_k_lookup_category[] = "lookup_category";
static const char __pyx_k_neverallowxperm[] = "neverallowxperm";
static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
static const char __pyx_k_role_transition[] = "role_transition";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_sid_0_0_context[] = "sid {0} {0.context}";
static const char __pyx_k_sysctl_modprobe[] = "sysctl_modprobe";
static const char __pyx_k_sysctl_net_unix[] = "sysctl_net_unix";
static const char __pyx_k_type_transition[] = "type_transition";
static const char __pyx_k_GenfsconIterator[] = "GenfsconIterator";
static const char __pyx_k_InvalidFSUseType[] = "InvalidFSUseType";
static const char __pyx_k_InvalidLevelDecl[] = "InvalidLevelDecl";
static const char __pyx_k_IomemconIterator[] = "IomemconIterator";
static const char __pyx_k_NetifconIterator[] = "NetifconIterator";
static const char __pyx_k_NodeconIPVersion[] = "NodeconIPVersion";
static const char __pyx_k_OcontextIterator[] = "OcontextIterator";
static const char __pyx_k_PolicyCapability[] = "PolicyCapability";
static const char __pyx_k_PolicyEnum___str[] = "PolicyEnum.__str__";
static const char __pyx_k_RoleAllow_expand[] = "RoleAllow.expand";
static const char __pyx_k_SELINUX_SIDNAMES[] = "SELINUX_SIDNAMES";
static const char __pyx_k_SELinuxfs_exists[] = "SELinuxfs exists: {}";
static const char __pyx_k_TERuleNoFilename[] = "TERuleNoFilename";
static const char __pyx_k_filetype_to_text[] = "_filetype_to_text";
static const char __pyx_k_mlsvalidatetrans[] = "mlsvalidatetrans";
static const char __pyx_k_netifcon_0_netif[] = "netifcon|{0.netif}";
static const char __pyx_k_range_transition[] = "range_transition";
static const char __pyx_k_DefaultRangeValue[] = "DefaultRangeValue";
static const char __pyx_k_IbpkeyconIterator[] = "IbpkeyconIterator";
static const char __pyx_k_InvalidBoundsType[] = "InvalidBoundsType";
static const char __pyx_k_InvalidInitialSid[] = "InvalidInitialSid";
static const char __pyx_k_InvalidTERuleType[] = "InvalidTERuleType";
static const char __pyx_k_IoportconIterator[] = "IoportconIterator";
static const char __pyx_k_PolicyEnum___hash[] = "PolicyEnum.__hash__";
static const char __pyx_k_PolicyEnum_lookup[] = "PolicyEnum.lookup";
static const char __pyx_k_RoleAllowIterator[] = "RoleAllowIterator";
static const char __pyx_k_WeakKeyDictionary[] = "WeakKeyDictionary";
static const char __pyx_k_expr_type_to_text[] = "_expr_type_to_text";
static const char __pyx_k_pyx_unpickle_Role[] = "__pyx_unpickle_Role";
static const char __pyx_k_pyx_unpickle_Type[] = "__pyx_unpickle_Type";
static const char __pyx_k_pyx_unpickle_User[] = "__pyx_unpickle_User";
static const char __pyx_k_setools_policyrep[] = "setools.policyrep";
static const char __pyx_k_0_ruletype_0_child[] = "{0.ruletype}|{0.child};";
static const char __pyx_k_AVRuleXperm_expand[] = "AVRuleXperm.expand";
static const char __pyx_k_Binary_policy_path[] = "Binary policy path: {}";
static const char __pyx_k_ConstraintExprNode[] = "ConstraintExprNode";
static const char __pyx_k_ConstraintIterator[] = "ConstraintIterator";
static const char __pyx_k_ConstraintRuletype[] = "ConstraintRuletype";
static const char __pyx_k_ConstraintUseError[] = "ConstraintUseError";
static const char __pyx_k_InitialSIDIterator[] = "InitialSIDIterator";
static const char __pyx_k_InvalidDefaultType[] = "InvalidDefaultType";
static const char __pyx_k_InvalidMLSRuleType[] = "InvalidMLSRuleType";
static const char __pyx_k_InvalidSensitivity[] = "InvalidSensitivity";
static const char __pyx_k_Nodecon_IP_Version[] = "Nodecon IP Version";
static const char __pyx_k_Potential_policies[] = "Potential policies: {}";
static const char __pyx_k_RuleNotConditional[] = "RuleNotConditional";
static const char __pyx_k_TypeboundsIterator[] = "TypeboundsIterator";
static const char __pyx_k_WeakKeyDefaultDict[] = "WeakKeyDefaultDict";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_from_default_range[] = "from_default_range";
static const char __pyx_k_lookup_sensitivity[] = "lookup_sensitivity";
static const char __pyx_k_pyx_unpickle_FSUse[] = "__pyx_unpickle_FSUse";
static const char __pyx_k_pyx_unpickle_Level[] = "__pyx_unpickle_Level";
static const char __pyx_k_pyx_unpickle_Range[] = "__pyx_unpickle_Range";
static const char __pyx_k_0_ruletype_0_tclass[] = "{0.ruletype}|{0.tclass}";
static const char __pyx_k_ConditionalIterator[] = "ConditionalIterator";
static const char __pyx_k_ConditionalOperator[] = "ConditionalOperator";
static const char __pyx_k_Current_policy_path[] = "Current policy path: {}";
static const char __pyx_k_InvalidDefaultRange[] = "InvalidDefaultRange";
static const char __pyx_k_InvalidDefaultValue[] = "InvalidDefaultValue";
static const char __pyx_k_InvalidRBACRuleType[] = "InvalidRBACRuleType";
static const char __pyx_k_LowLevelPolicyError[] = "LowLevelPolicyError";
static const char __pyx_k_NotImplementedError[] = "NotImplementedError";
static const char __pyx_k_PolicyEnum___format[] = "PolicyEnum.__format__";
static const char __pyx_k_RoleEbitmapIterator[] = "RoleEbitmapIterator";
static const char __pyx_k_RoleHashtabIterator[] = "RoleHashtabIterator";
static const char __pyx_k_Sepol_version_range[] = "Sepol version range: {}-{}";
static const char __pyx_k_TypeEbitmapIterator[] = "TypeEbitmapIterator";
static const char __pyx_k_TypeHashtabIterator[] = "TypeHashtabIterator";
static const char __pyx_k_UserEbitmapIterator[] = "UserEbitmapIterator";
static const char __pyx_k_UserHashtabIterator[] = "UserHashtabIterator";
static const char __pyx_k_nodecon_1_0_context[] = "nodecon {1} {0.context}";
static const char __pyx_k_pyx_unpickle_AVRule[] = "__pyx_unpickle_AVRule";
static const char __pyx_k_pyx_unpickle_Bounds[] = "__pyx_unpickle_Bounds";
static const char __pyx_k_pyx_unpickle_Common[] = "__pyx_unpickle_Common";
static const char __pyx_k_pyx_unpickle_TERule[] = "__pyx_unpickle_TERule";
static const char __pyx_k_str___locals_lambda[] = "__str__.<locals>.<lambda>";
static const char __pyx_k_0_user_0_role_0_type[] = "{0.user}:{0.role}:{0.type_}";
static const char __pyx_k_ConstraintExpression[] = "ConstraintExpression";
static const char __pyx_k_IbendportconIterator[] = "IbendportconIterator";
static const char __pyx_k_PcideviceconIterator[] = "PcideviceconIterator";
static const char __pyx_k_len___locals_genexpr[] = "__len__.<locals>.genexpr";
static const char __pyx_k_pyx_unpickle_Boolean[] = "__pyx_unpickle_Boolean";
static const char __pyx_k_pyx_unpickle_Context[] = "__pyx_unpickle_Context";
static const char __pyx_k_pyx_unpickle_Default[] = "__pyx_unpickle_Default";
static const char __pyx_k_pyx_unpickle_MLSRule[] = "__pyx_unpickle_MLSRule";
static const char __pyx_k_pyx_unpickle_Nodecon[] = "__pyx_unpickle_Nodecon";
static const char __pyx_k_pyx_unpickle_Pirqcon[] = "__pyx_unpickle_Pirqcon";
static const char __pyx_k_pyx_unpickle_Portcon[] = "__pyx_unpickle_Portcon";
static const char __pyx_k_str___locals_genexpr[] = "__str__.<locals>.genexpr";
static const char __pyx_k_0_is_not_a_valid_role[] = "{0} is not a valid role";
static const char __pyx_k_0_is_not_a_valid_type[] = "{0} is not a valid type";
static const char __pyx_k_0_is_not_a_valid_user[] = "{0} is not a valid user";
static const char __pyx_k_0_is_not_an_attribute[] = "{0} is not an attribute";
static const char __pyx_k_CommonHashtabIterator[] = "CommonHashtabIterator";
static const char __pyx_k_DevicetreeconIterator[] = "DevicetreeconIterator";
static const char __pyx_k_FileNameTERule_expand[] = "FileNameTERule.expand";
static const char __pyx_k_InvalidConstraintType[] = "InvalidConstraintType";
static const char __pyx_k_Rebuilding_attributes[] = "Rebuilding attributes.";
static const char __pyx_k_RoleTransition_expand[] = "RoleTransition.expand";
static const char __pyx_k_SELinuxPolicy_terules[] = "SELinuxPolicy.terules";
static const char __pyx_k_ValidatetransIterator[] = "ValidatetransIterator";
static const char __pyx_k_pyx_unpickle_BaseType[] = "__pyx_unpickle_BaseType";
static const char __pyx_k_pyx_unpickle_Category[] = "__pyx_unpickle_Category";
static const char __pyx_k_pyx_unpickle_Genfscon[] = "__pyx_unpickle_Genfscon";
static const char __pyx_k_pyx_unpickle_IoctlSet[] = "__pyx_unpickle_IoctlSet";
static const char __pyx_k_pyx_unpickle_Iomemcon[] = "__pyx_unpickle_Iomemcon";
static const char __pyx_k_pyx_unpickle_Netifcon[] = "__pyx_unpickle_Netifcon";
static const char __pyx_k_pyx_unpickle_ObjClass[] = "__pyx_unpickle_ObjClass";
static const char __pyx_k_pyx_unpickle_Ocontext[] = "__pyx_unpickle_Ocontext";
static const char __pyx_k_ranges_locals_genexpr[] = "ranges.<locals>.genexpr";
static const char __pyx_k_0_is_not_a_valid_class[] = "{0} is not a valid class";
static const char __pyx_k_BooleanHashtabIterator[] = "BooleanHashtabIterator";
static const char __pyx_k_ConstraintExprIterator[] = "ConstraintExprIterator";
static const char __pyx_k_FileNameTERuleIterator[] = "FileNameTERuleIterator";
static const char __pyx_k_RoleTransitionIterator[] = "RoleTransitionIterator";
static const char __pyx_k_SELinuxPolicy_defaults[] = "SELinuxPolicy.defaults";
static const char __pyx_k_format___locals_lambda[] = "__format__.<locals>.<lambda>";
static const char __pyx_k_pyx_unpickle_Ibpkeycon[] = "__pyx_unpickle_Ibpkeycon";
static const char __pyx_k_pyx_unpickle_Ioportcon[] = "__pyx_unpickle_Ioportcon";
static const char __pyx_k_pyx_unpickle_LevelDecl[] = "__pyx_unpickle_LevelDecl";
static const char __pyx_k_pyx_unpickle_RoleAllow[] = "__pyx_unpickle_RoleAllow";
static const char __pyx_k_0_is_not_a_valid_common[] = "{0} is not a valid common";
static const char __pyx_k_A_portcon_protocol_type[] = "A portcon protocol type.";
static const char __pyx_k_CategoryEbitmapIterator[] = "CategoryEbitmapIterator";
static const char __pyx_k_CategoryHashtabIterator[] = "CategoryHashtabIterator";
static const char __pyx_k_ConditionalExprIterator[] = "ConditionalExprIterator";
static const char __pyx_k_ObjClassHashtabIterator[] = "ObjClassHashtabIterator";
static const char __pyx_k_Unknown_AV_rule_type_0x[] = "Unknown AV rule type 0x{}";
static const char __pyx_k_lookup_boolean_name_sub[] = "lookup_boolean_name_sub";
static const char __pyx_k_pirqcon_0_irq_0_context[] = "pirqcon {0.irq} {0.context}";
static const char __pyx_k_pyx_unpickle_BaseTERule[] = "__pyx_unpickle_BaseTERule";
static const char __pyx_k_pyx_unpickle_Constraint[] = "__pyx_unpickle_Constraint";
static const char __pyx_k_pyx_unpickle_InitialSID[] = "__pyx_unpickle_InitialSID";
static const char __pyx_k_pyx_unpickle_PolicyRule[] = "__pyx_unpickle_PolicyRule";
static const char __pyx_k_0___class_____name___1_0[] = "<{0.__class__.__name__}({1}, \"{0}\")>";
static const char __pyx_k_0_is_not_a_valid_Boolean[] = "{0} is not a valid Boolean";
static const char __pyx_k_0_is_not_a_valid_range_1[] = "{0} is not a valid range ({1}).";
static const char __pyx_k_GenfsconOcontextIterator[] = "GenfsconOcontextIterator";
static const char __pyx_k_LevelDeclHashtabIterator[] = "LevelDeclHashtabIterator";
static const char __pyx_k_Opening_SELinux_policy_0[] = "Opening SELinux policy \"{0}\"";
static const char __pyx_k_PermissionVectorIterator[] = "PermissionVectorIterator";
static const char __pyx_k_PolicyCapabilityIterator[] = "PolicyCapabilityIterator";
static const char __pyx_k_cond_expr_val_to_details[] = "_cond_expr_val_to_details";
static const char __pyx_k_pyx_unpickle_AVRuleXperm[] = "__pyx_unpickle_AVRuleXperm";
static const char __pyx_k_pyx_unpickle_Conditional[] = "__pyx_unpickle_Conditional";
static const char __pyx_k_pyx_unpickle_Sensitivity[] = "__pyx_unpickle_Sensitivity";
static const char __pyx_k_statement_locals_genexpr[] = "statement.<locals>.genexpr";
static const char __pyx_k_0_is_not_a_valid_category[] = "{0} is not a valid category";
static const char __pyx_k_0_ruletype_0_fs_0_context[] = "{0.ruletype} {0.fs} {0.context};";
static const char __pyx_k_Bitmap_overflow_bit_0_06x[] = "Bitmap overflow, bit {0:#06x}";
static const char __pyx_k_ConditionalTERuleIterator[] = "ConditionalTERuleIterator";
static const char __pyx_k_SELinuxPolicy_constraints[] = "SELinuxPolicy.constraints";
static const char __pyx_k_Unsupported_default_value[] = "Unsupported default value: {}";
static const char __pyx_k_WeakKeyDefaultDict___init[] = "WeakKeyDefaultDict.__init__";
static const char __pyx_k_pyx_unpickle_BaseMLSLevel[] = "__pyx_unpickle_BaseMLSLevel";
static const char __pyx_k_pyx_unpickle_DefaultRange[] = "__pyx_unpickle_DefaultRange";
static const char __pyx_k_pyx_unpickle_Ibendportcon[] = "__pyx_unpickle_Ibendportcon";
static const char __pyx_k_pyx_unpickle_Pcidevicecon[] = "__pyx_unpickle_Pcidevicecon";
static const char __pyx_k_pyx_unpickle_PolicyObject[] = "__pyx_unpickle_PolicyObject";
static const char __pyx_k_pyx_unpickle_PolicySymbol[] = "__pyx_unpickle_PolicySymbol";
static const char __pyx_k_0_is_not_1_and_is_not_in_1[] = "{0} is not {1} and is not in {1}";
static const char __pyx_k_0_rule_is_already_expanded[] = "{0} rule is already expanded.";
static const char __pyx_k_ConditionalOperator_lambda[] = "ConditionalOperator.<lambda>";
static const char __pyx_k_Creating_cat_val_to_struct[] = "Creating cat_val_to_struct.";
static const char __pyx_k_SensitivityHashtabIterator[] = "SensitivityHashtabIterator";
static const char __pyx_k_ibendportcon_0_name_0_port[] = "ibendportcon|{0.name}|{0.port}";
static const char __pyx_k_pyx_unpickle_Devicetreecon[] = "__pyx_unpickle_Devicetreecon";
static const char __pyx_k_pyx_unpickle_GenfsFiletype[] = "__pyx_unpickle_GenfsFiletype";
static const char __pyx_k_pyx_unpickle_TypeAttribute[] = "__pyx_unpickle_TypeAttribute";
static const char __pyx_k_pyx_unpickle_Validatetrans[] = "__pyx_unpickle_Validatetrans";
static const char __pyx_k_setools_policyrep_util_pxi[] = "setools/policyrep/util.pxi";
static const char __pyx_k_truth_table_locals_genexpr[] = "truth_table.<locals>.genexpr";
static const char __pyx_k_0_does_not_inherit_a_common[] = "{0} does not inherit a common.";
static const char __pyx_k_0_ruletype_0_parent_0_child[] = "{0.ruletype} {0.parent} {0.child};";
static const char __pyx_k_Unknown_extended_permission[] = "Unknown extended permission: {}";
static const char __pyx_k_User_factory_locals_genexpr[] = "User.factory.<locals>.genexpr";
static const char __pyx_k_pyx_unpickle_BaseConstraint[] = "__pyx_unpickle_BaseConstraint";
static const char __pyx_k_pyx_unpickle_FileNameTERule[] = "__pyx_unpickle_FileNameTERule";
static const char __pyx_k_pyx_unpickle_PolicyIterator[] = "__pyx_unpickle_PolicyIterator";
static const char __pyx_k_pyx_unpickle_RoleTransition[] = "__pyx_unpickle_RoleTransition";
static const char __pyx_k_0_is_not_a_valid_initial_SID[] = "{0} is not a valid initial SID";
static const char __pyx_k_0_is_not_a_valid_sensitivity[] = "{0} is not a valid sensitivity";
static const char __pyx_k_0_ruletype_0_source_0_target[] = "{0.ruletype}|{0.source}|{0.target}";
static const char __pyx_k_Creating_level_val_to_struct[] = "Creating level_val_to_struct.";
static const char __pyx_k_TypeAttributeEbitmapIterator[] = "TypeAttributeEbitmapIterator";
static const char __pyx_k_TypeAttributeHashtabIterator[] = "TypeAttributeHashtabIterator";
static const char __pyx_k_WeakKeyDefaultDict___getitem[] = "WeakKeyDefaultDict.__getitem__";
static const char __pyx_k_WeakKeyDefaultDict___missing[] = "WeakKeyDefaultDict.__missing__";
static const char __pyx_k_0_ruletype_0_tclass_0_default[] = "{0.ruletype} {0.tclass} {0.default};";
static const char __pyx_k_0_user_0_role_0_type__0_range[] = "{0.user}:{0.role}:{0.type_}:{0.range_}";
static const char __pyx_k_AVRule_factory_locals_genexpr[] = "AVRule.factory.<locals>.genexpr";
static const char __pyx_k_Enumeration_of_default_values[] = "Enumeration of default values.";
static const char __pyx_k_Enumeration_of_policy_targets[] = "Enumeration of policy targets.";
static const char __pyx_k_pyx_unpickle_PolicyCapability[] = "__pyx_unpickle_PolicyCapability";
static const char __pyx_k_setools_policyrep_default_pxi[] = "setools/policyrep/default.pxi";
static const char __pyx_k_0_rules_do_not_have_file_names[] = "{0} rules do not have file names";
static const char __pyx_k_0_ruletype_0_source_0_target_0[] = "{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None";
static const char __pyx_k_0_ruletype_0_source_0_target_2[] = "{0.ruletype} {0.source} {0.target};";
static const char __pyx_k_At_least_one_of_user_role_type[] = "At least one of user, role, type_, or range_ must be specified.";
static const char __pyx_k_TypeOrAttributeEbitmapIterator[] = "TypeOrAttributeEbitmapIterator";
static const char __pyx_k_derive_expanded_locals_genexpr[] = "derive_expanded.<locals>.genexpr";
static const char __pyx_k_devicetreecon_0_path_0_context[] = "devicetreecon {0.path} {0.context}";
static const char __pyx_k_or_in_the_type_set_this_is_not[] = "* or ~ in the type set; this is not implemented in SETools.";
static const char __pyx_k_portcon_0_protocol_1_0_context[] = "portcon {0.protocol} {1} {0.context}";
static const char __pyx_k_pyx_unpickle_ConditionalOperat[] = "__pyx_unpickle_ConditionalOperator";
static const char __pyx_k_pyx_unpickle_ConstraintExprNod[] = "__pyx_unpickle_ConstraintExprNode";
static const char __pyx_k_pyx_unpickle_ConstraintExpress[] = "__pyx_unpickle_ConstraintExpression";
static const char __pyx_k_pyx_unpickle_PermissionVectorI[] = "__pyx_unpickle_PermissionVectorIterator";
static const char __pyx_k_0_conditional_0_conditional_blo[] = " [ {0.conditional} ]:{0.conditional_block}";
static const char __pyx_k_0_is_an_attribute_thus_cannot_b[] = "{0} is an attribute, thus cannot be permissive.";
static const char __pyx_k_0_is_an_attribute_thus_does_not[] = "{0} is an attribute, thus does not have attributes.";
static const char __pyx_k_0_is_not_a_valid_level_1_is_not[] = "{0} is not a valid level ({1} is not a valid sensitivity)";
static const char __pyx_k_0_is_not_a_valid_level_level_pa[] = "{0} is not a valid level (level parsing error)";
static const char __pyx_k_0_is_not_a_valid_level_one_or_m[] = "{0} is not a valid level (one or more categories are not associated with the sensitivity)";
static const char __pyx_k_0_is_not_a_valid_range_1_low_is[] = "{0} is not a valid range ({1.low} is not dominated by {1.high})";
static const char __pyx_k_0_is_not_a_valid_type_attribute[] = "{0} is not a valid type attribute";
static const char __pyx_k_0_rules_do_not_have_a_default_t[] = "{0} rules do not have a default type.";
static const char __pyx_k_0_rules_do_not_have_a_permissio[] = "{0} rules do not have a permission set.";
static const char __pyx_k_0_rules_do_not_have_permissions[] = "{0} rules do not have permissions.";
static const char __pyx_k_0_ruletype_0_tclass_0_default_0[] = "{0.ruletype} {0.tclass} {0.default} {0.default_range};";
static const char __pyx_k_0_ruletype_0_tclass_0_expressio[] = "{0.ruletype} {0.tclass} ({0.expression});";
static const char __pyx_k_0_ruletype_0_tclass_1_0_express[] = "{0.ruletype} {0.tclass} {1} ({0.expression}); ";
static const char __pyx_k_A_dictionary_with_a_weak_refere[] = "\n    A dictionary with a weak-referenced key and a default value.\n\n    This is a combination of WeakKeyDictionary and defaultdict\n    classes and has the interfaces of both, with the exception\n    of the constructor.\n\n    WeakKeyDefaultDict(default_factory, [dict])\n    ";
static const char __pyx_k_Base_class_for_policy_enumerati[] = "\n    Base class for policy enumerations.\n\n    Standard Enum behavior except for returning\n    the enum name for the default string representation\n    and basic string format.\n    ";
static const char __pyx_k_DefaultValue_from_default_range[] = "DefaultValue.from_default_range";
static const char __pyx_k_Enumeration_of_constraint_types[] = "Enumeration of constraint types.";
static const char __pyx_k_Error_inserting_into_hash_table[] = "Error inserting into hash table.  Key already exists.";
static const char __pyx_k_Extended_permission_information[] = "Extended permission information is NULL";
static const char __pyx_k_Role_allow_rules_do_not_have_an[] = "Role allow rules do not have an object class.";
static const char __pyx_k_SELinuxPolicy__cache_constraint[] = "SELinuxPolicy._cache_constraint_counts.<locals>.genexpr";
static const char __pyx_k_Synthesizing_missing_attributes[] = "Synthesizing missing attributes.";
static const char __pyx_k_Unsupported_default_range_value[] = "Unsupported default_range value: {}";
static const char __pyx_k_genfscon_0_fs_0_path_0_filetype[] = "genfscon|{0.fs}|{0.path}|{0.filetype}";
static const char __pyx_k_level_0_mls_level_range_0_mls_r[] = " level {0.mls_level} range {0.mls_range};";
static const char __pyx_k_pcidevicecon_0_device_0_context[] = "pcidevicecon {0.device} {0.context}";
static const char __pyx_k_portcon_0_protocol_1_low_1_high[] = "portcon|{0.protocol}|{1.low}|{1.high}";
static const char __pyx_k_0_ruletype_0_source_0_target_0_2[] = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};";
static const char __pyx_k_0_ruletype_0_source_0_target_0_3[] = "{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}";
static const char __pyx_k_0_ruletype_0_source_0_target_0_4[] = "{0.ruletype} {0.source} {0.target}:{0.tclass} ";
static const char __pyx_k_0_ruletype_0_source_0_target_0_5[] = "{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.xperm_type}|{1}|{2}";
static const char __pyx_k_0_ruletype_0_source_0_target_0_6[] = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} ";
static const char __pyx_k_0_ruletype_0_source_0_target_0_7[] = "{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}|{3}";
static const char __pyx_k_0_ruletype_0_source_0_target_0_8[] = "{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.filename}|{1}|{2}";
static const char __pyx_k_0_ruletype_0_source_0_target_0_9[] = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default} {0.filename};";
static const char __pyx_k_An_enumeration_of_MLS_rule_types[] = "An enumeration of MLS rule types.";
static const char __pyx_k_An_enumeration_of_RBAC_rule_type[] = "An enumeration of RBAC rule types.";
static const char __pyx_k_Attempting_to_locate_current_run[] = "Attempting to locate current running policy.";
static const char __pyx_k_ConstraintExprNode_factory_local[] = "ConstraintExprNode.factory.<locals>.genexpr";
static const char __pyx_k_DefaultRangeValue_from_default_r[] = "DefaultRangeValue.from_default_range";
static const char __pyx_k_Enumeration_of_bounds_rule_types[] = "Enumeration of *bounds rule types.";
static const char __pyx_k_Enumeration_of_default_range_val[] = "Enumeration of default range values.";
static const char __pyx_k_Enumeration_of_default_rule_type[] = "Enumeration of default rule types.";
static const char __pyx_k_Enumeration_of_fs_use__rule_type[] = "Enumeration of fs_use_* rule types.";
static const char __pyx_k_Enumeration_of_handle_unknown_se[] = "Enumeration of handle unknown settings.";
static const char __pyx_k_Enumeration_of_types_of_TE_rules[] = "Enumeration of types of TE rules.";
static const char __pyx_k_Genfscon_object_class_does_not_m[] = "Genfscon {} {} object class {} does not match a file object class. Dropping file type.";
static const char __pyx_k_Incompatible_checksums_s_vs_0x18[] = "Incompatible checksums (%s vs 0x181e932 = (child, key, parent, policy, ruletype))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x2b[] = "Incompatible checksums (%s vs 0x2be8a15 = (extended, key, origin, policy, rng, ruletype, source, target, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x2c[] = "Incompatible checksums (%s vs 0x2cdc21b = (_postfix_expression, booleans, key, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x2d[] = "Incompatible checksums (%s vs 0x2dd8c44 = (context, key, pkeys, policy, subnet_prefix))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x38[] = "Incompatible checksums (%s vs 0x3815b7b = (expression, key, perms, policy, ruletype, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x39[] = "Incompatible checksums (%s vs 0x399ea0b = (_infix, _postfix, key, mls, policy, roles, types, users))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x45[] = "Incompatible checksums (%s vs 0x45b5f78 = (addr, context, key, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x4a[] = "Incompatible checksums (%s vs 0x4a7f087 = (context, key, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x4f[] = "Incompatible checksums (%s vs 0x4f19a8e = (_conditional, _conditional_block, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x5d[] = "Incompatible checksums (%s vs 0x5db971a = (key, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x64[] = "Incompatible checksums (%s vs 0x64345df = (key, name, policy, state))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x66[] = "Incompatible checksums (%s vs 0x660366f = (_conditional, _conditional_block, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x67[] = "Incompatible checksums (%s vs 0x676792c = (_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x6a[] = "Incompatible checksums (%s vs 0x6a498fa = (dft, extended, key, origin, policy, ruletype, source, target, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x6d[] = "Incompatible checksums (%s vs 0x6debf30 = (_level, _range, key, name, policy, roles))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x78[] = "Incompatible checksums (%s vs 0x786ca01 = (_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x7c[] = "Incompatible checksums (%s vs 0x7c1bbae = (_aliases, _value, key, name, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x93[] = "Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x97[] = "Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x9a[] = "Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xa5[] = "Incompatible checksums (%s vs 0xa55c637 = (_default, key, policy, ruletype, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xa6[] = "Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xa9[] = "Incompatible checksums (%s vs 0xa9f2ad7 = (context, key, netif, packet, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xaa[] = "Incompatible checksums (%s vs 0xaab4df4 = (_default, default_range, key, policy, ruletype, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xb0[] = "Incompatible checksums (%s vs 0xb00469d = (_aliases, _leveldecl, _value, key, name, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xb4[] = "Incompatible checksums (%s vs 0xb48e627 = (_perm_table, key, name, perms, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xb8[] = "Incompatible checksums (%s vs 0xb87ee88 = (context, irq, key, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xbc[] = "Incompatible checksums (%s vs 0xbc66965 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xc8[] = "Incompatible checksums (%s vs 0xc82ae23 = (curr, perm_max, perm_table, policy, vector))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xc9[] = "Incompatible checksums (%s vs 0xc9b4b53 = (context, key, policy, ports))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xd0[] = "Incompatible checksums (%s vs 0xd045ac9 = (context, key, name, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xd1[] = "Incompatible checksums (%s vs 0xd15903e = (context, key, name, policy, port))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xd4[] = "Incompatible checksums (%s vs 0xd41d8cd = ())";
static const char __pyx_k_Incompatible_checksums_s_vs_0xd5[] = "Incompatible checksums (%s vs 0xd59413d = (context, ip_version, key, network, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xdb[] = "Incompatible checksums (%s vs 0xdb6ffdd = (context, key, policy, ports, protocol))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xdc[] = "Incompatible checksums (%s vs 0xdc51194 = (context, fs, key, policy, ruletype))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xdf[] = "Incompatible checksums (%s vs 0xdf30388 = (_conditional, _conditional_block, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xe9[] = "Incompatible checksums (%s vs 0xe9a2003 = (high, key, low, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xed[] = "Incompatible checksums (%s vs 0xeda7b2a = (evaluate, key, policy, precedence, text, unary))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xf3[] = "Incompatible checksums (%s vs 0xf33319d = (_range, key, policy, role, type_, user))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xf4[] = "Incompatible checksums (%s vs 0xf4af8b5 = (policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xf9[] = "Incompatible checksums (%s vs 0xf920da8 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass, xperm_type))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xfd[] = "Incompatible checksums (%s vs 0xfdfbc8f = (context, key, path, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xfe[] = "Incompatible checksums (%s vs 0xfef56cc = (context, filetype, fs, key, path, policy, tclass))";
static const char __pyx_k_Invalid_policy_A_binary_policy_m[] = "Invalid policy: {}. A binary policy must be specified. (use e.g. policy.{} or sepolicy) Source policies are not supported.";
static const char __pyx_k_Levels_cannot_be_compared_to_lev[] = "Levels cannot be compared to level declarations";
static const char __pyx_k_Negations_in_the_type_set_this_i[] = "Negations in the type set; this is not implemented in SETools.";
static const char __pyx_k_Nodecon_with_network_has_host_bi[] = "Nodecon with network {} {} has host bits set. Analyses may have unexpected results.";
static const char __pyx_k_Role_allow_rules_do_not_have_a_d[] = "Role allow rules do not have a default role.";
static const char __pyx_k_SELinuxPolicy___get___locals_gen[] = "SELinuxPolicy.__get__.<locals>.genexpr";
static const char __pyx_k_Setting_permissive_flags_in_type[] = "Setting permissive flags in type datums.";
static const char __pyx_k_Successfully_opened_SELinux_poli[] = "Successfully opened SELinux policy \"{0}\"";
static const char __pyx_k_Unable_to_locate_an_SELinux_poli[] = "Unable to locate an SELinux policy to load.";
static const char __pyx_k_ibendportcon_0_name_0_port_0_con[] = "ibendportcon {0.name} {0.port} {0.context}";
static const char __pyx_k_ibpkeycon_0_subnet_prefix_0_pkey[] = "ibpkeycon|{0.subnet_prefix}|{0.pkeys.low}|{0.pkeys.high}";
static const char __pyx_k_netifcon_0_netif_0_context_0_pac[] = "netifcon {0.netif} {0.context} {0.packet}";
static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
static const char __pyx_k_portcon_0_protocol_1_2_0_context[] = "portcon {0.protocol} {1}-{2} {0.context}";
static const char __pyx_k_ranges_locals_genexpr_locals_lam[] = "ranges.<locals>.genexpr.<locals>.<lambda>";
static const char __pyx_k_self_bmap_self_node_cannot_be_co[] = "self.bmap,self.node cannot be converted to a Python object for pickling";
static const char __pyx_k_self_curr_self_datum_self_node_s[] = "self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling";
static const char __pyx_k_self_curr_self_head_cannot_be_co[] = "self.curr,self.head cannot be converted to a Python object for pickling";
static const char __pyx_k_self_curr_self_head_self_ocon_ca[] = "self.curr,self.head,self.ocon cannot be converted to a Python object for pickling";
static const char __pyx_k_self_curr_self_node_self_table_c[] = "self.curr,self.node,self.table cannot be converted to a Python object for pickling";
static const char __pyx_k_self_node_self_table_cannot_be_c[] = "self.node,self.table cannot be converted to a Python object for pickling";
static const char __pyx_k_0_is_an_attribute_thus_does_not_2[] = "{0} is an attribute, thus does not have aliases.";
static const char __pyx_k_0_is_not_a_valid_level_1_is_not_2[] = "{0} is not a valid level ({1} is not a valid category range)";
static const char __pyx_k_0_is_not_a_valid_level_1_is_not_3[] = "{0} is not a valid level ({1} is not a valid category)";
static const char __pyx_k_genfscon_0_fs_0_path_0_filetype_2[] = "genfscon {0.fs} {0.path} {0.filetype} {0.context}";
static const char __pyx_k_Incompatible_checksums_s_vs_0x18_2[] = "Incompatible checksums (%s vs 0x18d2e7e = (_aliases, _attrs, ispermissive, key, name, policy, value))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x67_2[] = "Incompatible checksums (%s vs 0x6756798 = (context, device, key, policy))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xa5_2[] = "Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))";
static const char __pyx_k_ibpkeycon_0_subnet_prefix_0_pkey_2[] = "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x} {0.context}";
static const char __pyx_k_ibpkeycon_0_subnet_prefix_0_pkey_3[] = "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x}-{0.pkeys.high:#x} {0.context}";
static PyObject *__pyx_kp_u_;
static PyObject *__pyx_kp_u_0;
static PyObject *__pyx_kp_u_04x;
static PyObject *__pyx_kp_u_0_06x;
static PyObject *__pyx_kp_u_0_06x_1_06x;
static PyObject *__pyx_kp_u_0_1;
static PyObject *__pyx_kp_u_0_1_2;
static PyObject *__pyx_kp_u_0_2;
static PyObject *__pyx_kp_u_0_3;
static PyObject *__pyx_kp_u_0_4;
static PyObject *__pyx_kp_u_0_5;
static PyObject *__pyx_kp_u_0_6;
static PyObject *__pyx_kp_u_0_7;
static PyObject *__pyx_kp_u_0_8;
static PyObject *__pyx_kp_u_0___class_____name___1_0;
static PyObject *__pyx_kp_u_0_conditional_0_conditional_blo;
static PyObject *__pyx_kp_u_0_does_not_inherit_a_common;
static PyObject *__pyx_kp_u_0_is_an_attribute_thus_cannot_b;
static PyObject *__pyx_kp_u_0_is_an_attribute_thus_does_not;
static PyObject *__pyx_kp_u_0_is_an_attribute_thus_does_not_2;
static PyObject *__pyx_kp_u_0_is_not_1_and_is_not_in_1;
static PyObject *__pyx_kp_u_0_is_not_a_type;
static PyObject *__pyx_kp_u_0_is_not_a_valid_Boolean;
static PyObject *__pyx_kp_u_0_is_not_a_valid_category;
static PyObject *__pyx_kp_u_0_is_not_a_valid_class;
static PyObject *__pyx_kp_u_0_is_not_a_valid_common;
static PyObject *__pyx_kp_u_0_is_not_a_valid_initial_SID;
static PyObject *__pyx_kp_u_0_is_not_a_valid_level_1_is_not;
static PyObject *__pyx_kp_u_0_is_not_a_valid_level_1_is_not_2;
static PyObject *__pyx_kp_u_0_is_not_a_valid_level_1_is_not_3;
static PyObject *__pyx_kp_u_0_is_not_a_valid_level_level_pa;
static PyObject *__pyx_kp_u_0_is_not_a_valid_level_one_or_m;
static PyObject *__pyx_kp_u_0_is_not_a_valid_range_1;
static PyObject *__pyx_kp_u_0_is_not_a_valid_range_1_low_is;
static PyObject *__pyx_kp_u_0_is_not_a_valid_role;
static PyObject *__pyx_kp_u_0_is_not_a_valid_sensitivity;
static PyObject *__pyx_kp_u_0_is_not_a_valid_type;
static PyObject *__pyx_kp_u_0_is_not_a_valid_type_attribute;
static PyObject *__pyx_kp_u_0_is_not_a_valid_user;
static PyObject *__pyx_kp_u_0_is_not_an_attribute;
static PyObject *__pyx_kp_u_0_low_0_high;
static PyObject *__pyx_kp_u_0_rule_is_already_expanded;
static PyObject *__pyx_kp_u_0_rules_do_not_have_a_default_t;
static PyObject *__pyx_kp_u_0_rules_do_not_have_a_permissio;
static PyObject *__pyx_kp_u_0_rules_do_not_have_file_names;
static PyObject *__pyx_kp_u_0_rules_do_not_have_permissions;
static PyObject *__pyx_kp_u_0_ruletype_0_child;
static PyObject *__pyx_kp_u_0_ruletype_0_fs;
static PyObject *__pyx_kp_u_0_ruletype_0_fs_0_context;
static PyObject *__pyx_kp_u_0_ruletype_0_parent_0_child;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0_2;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0_3;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0_4;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0_5;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0_6;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0_7;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0_8;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_0_9;
static PyObject *__pyx_kp_u_0_ruletype_0_source_0_target_2;
static PyObject *__pyx_kp_u_0_ruletype_0_tclass;
static PyObject *__pyx_kp_u_0_ruletype_0_tclass_0_default;
static PyObject *__pyx_kp_u_0_ruletype_0_tclass_0_default_0;
static PyObject *__pyx_kp_u_0_ruletype_0_tclass_0_expressio;
static PyObject *__pyx_kp_u_0_ruletype_0_tclass_1_0_express;
static PyObject *__pyx_kp_u_0_user_0_role_0_type;
static PyObject *__pyx_kp_u_0_user_0_role_0_type__0_range;
static PyObject *__pyx_n_s_AVRule;
static PyObject *__pyx_n_s_AVRuleXperm;
static PyObject *__pyx_n_s_AVRuleXperm_expand;
static PyObject *__pyx_n_s_AVRule_expand;
static PyObject *__pyx_n_s_AVRule_factory_locals_genexpr;
static PyObject *__pyx_kp_s_A_dictionary_with_a_weak_refere;
static PyObject *__pyx_kp_s_A_portcon_protocol_type;
static PyObject *__pyx_kp_s_An_enumeration_of_MLS_rule_types;
static PyObject *__pyx_kp_s_An_enumeration_of_RBAC_rule_type;
static PyObject *__pyx_n_s_AnyConstraint;
static PyObject *__pyx_n_u_AnyConstraint;
static PyObject *__pyx_n_s_AnyDefault;
static PyObject *__pyx_n_s_AnyRBACRule;
static PyObject *__pyx_n_s_AnyTERule;
static PyObject *__pyx_n_u_AnyTERule;
static PyObject *__pyx_kp_u_At_least_one_of_user_role_type;
static PyObject *__pyx_kp_u_Attempting_to_locate_current_run;
static PyObject *__pyx_n_s_AttributeError;
static PyObject *__pyx_n_s_BaseConstraint;
static PyObject *__pyx_n_s_BaseMLSLevel;
static PyObject *__pyx_n_s_BaseTERule;
static PyObject *__pyx_n_s_BaseType;
static PyObject *__pyx_kp_s_Base_class_for_policy_enumerati;
static PyObject *__pyx_kp_u_Binary_policy_path;
static PyObject *__pyx_kp_u_Bitmap_overflow_bit_0_06x;
static PyObject *__pyx_n_s_Boolean;
static PyObject *__pyx_n_s_BooleanHashtabIterator;
static PyObject *__pyx_n_s_Bounds;
static PyObject *__pyx_n_s_BoundsRuletype;
static PyObject *__pyx_n_s_Category;
static PyObject *__pyx_n_s_CategoryEbitmapIterator;
static PyObject *__pyx_n_s_CategoryHashtabIterator;
static PyObject *__pyx_n_s_Common;
static PyObject *__pyx_n_s_CommonHashtabIterator;
static PyObject *__pyx_n_s_Conditional;
static PyObject *__pyx_n_s_ConditionalExprIterator;
static PyObject *__pyx_n_s_ConditionalIterator;
static PyObject *__pyx_n_s_ConditionalOperator;
static PyObject *__pyx_n_s_ConditionalOperator_lambda;
static PyObject *__pyx_n_s_ConditionalTERuleIterator;
static PyObject *__pyx_n_s_Constraint;
static PyObject *__pyx_n_s_ConstraintExprIterator;
static PyObject *__pyx_n_s_ConstraintExprNode;
static PyObject *__pyx_n_s_ConstraintExprNode_factory_local;
static PyObject *__pyx_n_s_ConstraintExpression;
static PyObject *__pyx_n_s_ConstraintIterator;
static PyObject *__pyx_n_s_ConstraintRuletype;
static PyObject *__pyx_n_s_ConstraintUseError;
static PyObject *__pyx_n_s_Context;
static PyObject *__pyx_n_s_Counter;
static PyObject *__pyx_kp_u_Creating_cat_val_to_struct;
static PyObject *__pyx_kp_u_Creating_level_val_to_struct;
static PyObject *__pyx_kp_u_Current_policy_path;
static PyObject *__pyx_n_s_Default;
static PyObject *__pyx_n_s_DefaultRange;
static PyObject *__pyx_n_s_DefaultRangeValue;
static PyObject *__pyx_n_s_DefaultRangeValue_from_default_r;
static PyObject *__pyx_n_s_DefaultRuletype;
static PyObject *__pyx_n_s_DefaultValue;
static PyObject *__pyx_n_s_DefaultValue_from_default_range;
static PyObject *__pyx_n_s_Devicetreecon;
static PyObject *__pyx_n_s_DevicetreeconIterator;
static PyObject *__pyx_n_s_EbitmapIterator;
static PyObject *__pyx_n_s_Enum;
static PyObject *__pyx_kp_s_Enumeration_of_bounds_rule_types;
static PyObject *__pyx_kp_s_Enumeration_of_constraint_types;
static PyObject *__pyx_kp_s_Enumeration_of_default_range_val;
static PyObject *__pyx_kp_s_Enumeration_of_default_rule_type;
static PyObject *__pyx_kp_s_Enumeration_of_default_values;
static PyObject *__pyx_kp_s_Enumeration_of_fs_use__rule_type;
static PyObject *__pyx_kp_s_Enumeration_of_handle_unknown_se;
static PyObject *__pyx_kp_s_Enumeration_of_policy_targets;
static PyObject *__pyx_kp_s_Enumeration_of_types_of_TE_rules;
static PyObject *__pyx_kp_u_Error_inserting_into_hash_table;
static PyObject *__pyx_kp_u_Extended_permission_information;
static PyObject *__pyx_n_s_FSUse;
static PyObject *__pyx_n_s_FSUseIterator;
static PyObject *__pyx_n_s_FSUseRuletype;
static PyObject *__pyx_n_s_FileNameTERule;
static PyObject *__pyx_n_s_FileNameTERuleIterator;
static PyObject *__pyx_n_s_FileNameTERule_expand;
static PyObject *__pyx_n_s_GenfsFiletype;
static PyObject *__pyx_n_s_Genfscon;
static PyObject *__pyx_n_s_GenfsconIterator;
static PyObject *__pyx_n_s_GenfsconOcontextIterator;
static PyObject *__pyx_kp_u_Genfscon_object_class_does_not_m;
static PyObject *__pyx_n_s_HandleUnknown;
static PyObject *__pyx_n_s_HashtabIterator;
static PyObject *__pyx_n_s_IPv6Address;
static PyObject *__pyx_n_s_Ibendportcon;
static PyObject *__pyx_n_s_IbendportconIterator;
static PyObject *__pyx_n_s_Ibpkeycon;
static PyObject *__pyx_n_s_IbpkeyconIterator;
static PyObject *__pyx_n_s_IbpkeyconRange;
static PyObject *__pyx_n_u_IbpkeyconRange;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x18;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x18_2;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x2b;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x2c;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x2d;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x38;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x39;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x45;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x4a;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x4f;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x5d;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x64;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x66;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x67;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x67_2;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x6a;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x6d;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x78;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x7c;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x93;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x97;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x9a;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xa5;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xa5_2;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xa6;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xa9;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xaa;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb0;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb4;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb8;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xbc;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xc8;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xc9;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xd0;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xd1;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xd4;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xd5;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xdb;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xdc;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xdf;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xe9;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xed;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xf3;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xf4;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xf9;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xfd;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xfe;
static PyObject *__pyx_n_s_IndexError;
static PyObject *__pyx_n_s_InitialSID;
static PyObject *__pyx_n_s_InitialSIDIterator;
static PyObject *__pyx_n_s_InvalidBoolean;
static PyObject *__pyx_n_s_InvalidBoundsType;
static PyObject *__pyx_n_s_InvalidCategory;
static PyObject *__pyx_n_s_InvalidClass;
static PyObject *__pyx_n_s_InvalidCommon;
static PyObject *__pyx_n_s_InvalidConstraintType;
static PyObject *__pyx_n_s_InvalidDefaultRange;
static PyObject *__pyx_n_s_InvalidDefaultType;
static PyObject *__pyx_n_s_InvalidDefaultValue;
static PyObject *__pyx_n_s_InvalidFSUseType;
static PyObject *__pyx_n_s_InvalidInitialSid;
static PyObject *__pyx_n_s_InvalidLevel;
static PyObject *__pyx_n_s_InvalidLevelDecl;
static PyObject *__pyx_n_s_InvalidMLSRuleType;
static PyObject *__pyx_n_s_InvalidPolicy;
static PyObject *__pyx_n_s_InvalidRBACRuleType;
static PyObject *__pyx_n_s_InvalidRange;
static PyObject *__pyx_n_s_InvalidRole;
static PyObject *__pyx_n_s_InvalidRuleType;
static PyObject *__pyx_n_s_InvalidSensitivity;
static PyObject *__pyx_n_s_InvalidTERuleType;
static PyObject *__pyx_n_s_InvalidType;
static PyObject *__pyx_n_s_InvalidUser;
static PyObject *__pyx_kp_u_Invalid_policy_A_binary_policy_m;
static PyObject *__pyx_n_s_IoctlSet;
static PyObject *__pyx_n_s_Iomemcon;
static PyObject *__pyx_n_s_IomemconIterator;
static PyObject *__pyx_n_s_IomemconRange;
static PyObject *__pyx_n_u_IomemconRange;
static PyObject *__pyx_n_s_Ioportcon;
static PyObject *__pyx_n_s_IoportconIterator;
static PyObject *__pyx_n_s_IoportconRange;
static PyObject *__pyx_n_u_IoportconRange;
static PyObject *__pyx_n_s_KeyError;
static PyObject *__pyx_n_s_Level;
static PyObject *__pyx_n_s_LevelDecl;
static PyObject *__pyx_n_s_LevelDeclHashtabIterator;
static PyObject *__pyx_kp_u_Levels_cannot_be_compared_to_lev;
static PyObject *__pyx_n_s_LowLevelPolicyError;
static PyObject *__pyx_n_s_MLSDisabled;
static PyObject *__pyx_n_s_MLSRule;
static PyObject *__pyx_n_s_MLSRuleIterator;
static PyObject *__pyx_n_s_MLSRule_expand;
static PyObject *__pyx_n_s_MLSRuletype;
static PyObject *__pyx_n_s_MemoryError;
static PyObject *__pyx_kp_u_Negations_in_the_type_set_this_i;
static PyObject *__pyx_n_s_Netifcon;
static PyObject *__pyx_n_s_NetifconIterator;
static PyObject *__pyx_n_s_NoCommon;
static PyObject *__pyx_n_s_NoDefaults;
static PyObject *__pyx_n_s_NoStatement;
static PyObject *__pyx_n_s_Nodecon;
static PyObject *__pyx_n_s_NodeconIPVersion;
static PyObject *__pyx_n_s_NodeconIterator;
static PyObject *__pyx_kp_s_Nodecon_IP_Version;
static PyObject *__pyx_kp_u_Nodecon_with_network_has_host_bi;
static PyObject *__pyx_n_s_NotImplementedError;
static PyObject *__pyx_n_s_OSError;
static PyObject *__pyx_n_s_ObjClass;
static PyObject *__pyx_n_s_ObjClassHashtabIterator;
static PyObject *__pyx_n_s_Ocontext;
static PyObject *__pyx_n_s_OcontextIterator;
static PyObject *__pyx_kp_u_Opening_SELinux_policy_0;
static PyObject *__pyx_n_s_Pcidevicecon;
static PyObject *__pyx_n_s_PcideviceconIterator;
static PyObject *__pyx_n_s_PermissionVectorIterator;
static PyObject *__pyx_n_s_PickleError;
static PyObject *__pyx_n_s_Pirqcon;
static PyObject *__pyx_n_s_PirqconIterator;
static PyObject *__pyx_n_s_PolicyCapability;
static PyObject *__pyx_n_s_PolicyCapabilityIterator;
static PyObject *__pyx_n_s_PolicyEnum;
static PyObject *__pyx_n_s_PolicyEnum___eq;
static PyObject *__pyx_n_s_PolicyEnum___format;
static PyObject *__pyx_n_s_PolicyEnum___hash;
static PyObject *__pyx_n_s_PolicyEnum___str;
static PyObject *__pyx_n_s_PolicyEnum_lookup;
static PyObject *__pyx_n_s_PolicyIterator;
static PyObject *__pyx_n_s_PolicyObject;
static PyObject *__pyx_n_s_PolicyRule;
static PyObject *__pyx_n_s_PolicySymbol;
static PyObject *__pyx_n_s_PolicyTarget;
static PyObject *__pyx_n_s_Portcon;
static PyObject *__pyx_n_s_PortconIterator;
static PyObject *__pyx_n_s_PortconProtocol;
static PyObject *__pyx_n_s_PortconRange;
static PyObject *__pyx_n_u_PortconRange;
static PyObject *__pyx_kp_u_Potential_policies;
static PyObject *__pyx_n_s_RBACRuletype;
static PyObject *__pyx_n_s_Range;
static PyObject *__pyx_kp_u_Rebuilding_attributes;
static PyObject *__pyx_n_s_Role;
static PyObject *__pyx_n_s_RoleAllow;
static PyObject *__pyx_n_s_RoleAllowIterator;
static PyObject *__pyx_n_s_RoleAllow_expand;
static PyObject *__pyx_n_s_RoleEbitmapIterator;
static PyObject *__pyx_n_s_RoleHashtabIterator;
static PyObject *__pyx_n_s_RoleTransition;
static PyObject *__pyx_n_s_RoleTransitionIterator;
static PyObject *__pyx_n_s_RoleTransition_expand;
static PyObject *__pyx_kp_u_Role_allow_rules_do_not_have_a_d;
static PyObject *__pyx_kp_u_Role_allow_rules_do_not_have_an;
static PyObject *__pyx_n_s_Role_expand;
static PyObject *__pyx_n_s_RuleNotConditional;
static PyObject *__pyx_n_s_RuleUseError;
static PyObject *__pyx_n_s_RuntimeError;
static PyObject *__pyx_n_s_SELINUX_SIDNAMES;
static PyObject *__pyx_n_s_SELinuxPolicy;
static PyObject *__pyx_kp_u_SELinuxPolicy_0;
static PyObject *__pyx_n_s_SELinuxPolicy___get___locals_gen;
static PyObject *__pyx_n_s_SELinuxPolicy__cache_constraint;
static PyObject *__pyx_n_s_SELinuxPolicy_constraints;
static PyObject *__pyx_n_s_SELinuxPolicy_defaults;
static PyObject *__pyx_n_s_SELinuxPolicy_terules;
static PyObject *__pyx_kp_u_SELinuxfs_exists;
static PyObject *__pyx_n_s_Sensitivity;
static PyObject *__pyx_n_s_SensitivityHashtabIterator;
static PyObject *__pyx_kp_u_Sepol_version_range;
static PyObject *__pyx_kp_u_Setting_permissive_flags_in_type;
static PyObject *__pyx_n_s_StopIteration;
static PyObject *__pyx_kp_u_Successfully_opened_SELinux_poli;
static PyObject *__pyx_n_s_SymbolUseError;
static PyObject *__pyx_kp_u_Synthesizing_missing_attributes;
static PyObject *__pyx_n_s_TERule;
static PyObject *__pyx_n_s_TERuleIterator;
static PyObject *__pyx_n_s_TERuleNoFilename;
static PyObject *__pyx_n_s_TERule_expand;
static PyObject *__pyx_n_s_TERuletype;
static PyObject *__pyx_n_s_TruthTableRow;
static PyObject *__pyx_n_u_TruthTableRow;
static PyObject *__pyx_n_s_Type;
static PyObject *__pyx_n_s_TypeAttribute;
static PyObject *__pyx_n_s_TypeAttributeEbitmapIterator;
static PyObject *__pyx_n_s_TypeAttributeHashtabIterator;
static PyObject *__pyx_n_s_TypeEbitmapIterator;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_n_s_TypeHashtabIterator;
static PyObject *__pyx_n_s_TypeOrAttr;
static PyObject *__pyx_n_u_TypeOrAttr;
static PyObject *__pyx_n_s_TypeOrAttributeEbitmapIterator;
static PyObject *__pyx_n_s_TypeVar;
static PyObject *__pyx_n_s_Type_expand;
static PyObject *__pyx_n_s_TypeboundsIterator;
static PyObject *__pyx_kp_u_Unable_to_locate_an_SELinux_poli;
static PyObject *__pyx_n_s_Union;
static PyObject *__pyx_kp_u_Unknown_AV_rule_type_0x;
static PyObject *__pyx_kp_u_Unknown_extended_permission;
static PyObject *__pyx_kp_u_Unsupported_default_range_value;
static PyObject *__pyx_kp_u_Unsupported_default_value;
static PyObject *__pyx_n_s_User;
static PyObject *__pyx_n_s_UserEbitmapIterator;
static PyObject *__pyx_n_s_UserHashtabIterator;
static PyObject *__pyx_n_s_User_factory_locals_genexpr;
static PyObject *__pyx_n_s_Validatetrans;
static PyObject *__pyx_n_s_ValidatetransIterator;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_n_s_WeakKeyDefaultDict;
static PyObject *__pyx_n_s_WeakKeyDefaultDict___getitem;
static PyObject *__pyx_n_s_WeakKeyDefaultDict___init;
static PyObject *__pyx_n_s_WeakKeyDefaultDict___missing;
static PyObject *__pyx_n_s_WeakKeyDictionary;
static PyObject *__pyx_n_s_XEN_SIDNAMES;
static PyObject *__pyx_kp_u__12;
static PyObject *__pyx_kp_u__13;
static PyObject *__pyx_kp_u__133;
static PyObject *__pyx_kp_u__134;
static PyObject *__pyx_kp_u__135;
static PyObject *__pyx_kp_u__136;
static PyObject *__pyx_kp_u__142;
static PyObject *__pyx_kp_u__2;
static PyObject *__pyx_kp_u__3;
static PyObject *__pyx_kp_u__32;
static PyObject *__pyx_kp_u__33;
static PyObject *__pyx_kp_u__34;
static PyObject *__pyx_kp_u__35;
static PyObject *__pyx_kp_u__36;
static PyObject *__pyx_kp_u__37;
static PyObject *__pyx_kp_u__48;
static PyObject *__pyx_kp_u__60;
static PyObject *__pyx_kp_u__84;
static PyObject *__pyx_kp_u_alias_0;
static PyObject *__pyx_kp_u_alias_0_2;
static PyObject *__pyx_n_s_aliases;
static PyObject *__pyx_n_s_allow;
static PyObject *__pyx_n_s_allowxperm;
static PyObject *__pyx_n_u_and;
static PyObject *__pyx_n_u_any_socket;
static PyObject *__pyx_n_s_args;
static PyObject *__pyx_kp_u_attribute_0;
static PyObject *__pyx_n_s_auditallow;
static PyObject *__pyx_n_s_auditallowxperm;
static PyObject *__pyx_kp_u_b;
static PyObject *__pyx_n_u_blk_file;
static PyObject *__pyx_kp_u_bool_0_1;
static PyObject *__pyx_n_s_bools;
static PyObject *__pyx_n_s_bound;
static PyObject *__pyx_n_s_c;
static PyObject *__pyx_kp_u_c_2;
static PyObject *__pyx_n_s_categories;
static PyObject *__pyx_kp_u_category_0;
static PyObject *__pyx_n_s_chain;
static PyObject *__pyx_n_s_child;
static PyObject *__pyx_n_u_chr_file;
static PyObject *__pyx_kp_u_class_0;
static PyObject *__pyx_n_s_classes;
static PyObject *__pyx_n_s_cline_in_traceback;
static PyObject *__pyx_n_s_close;
static PyObject *__pyx_n_s_cls;
static PyObject *__pyx_n_s_collections;
static PyObject *__pyx_n_s_common;
static PyObject *__pyx_kp_u_common_0_1;
static PyObject *__pyx_n_s_commons;
static PyObject *__pyx_n_s_cond_expr_val_to_details;
static PyObject *__pyx_n_s_conditionals;
static PyObject *__pyx_n_s_constrain;
static PyObject *__pyx_n_s_constraints;
static PyObject *__pyx_n_s_count;
static PyObject *__pyx_kp_u_d;
static PyObject *__pyx_n_s_dccp;
static PyObject *__pyx_n_s_debug;
static PyObject *__pyx_n_s_default;
static PyObject *__pyx_n_s_default_factory;
static PyObject *__pyx_n_s_default_map;
static PyObject *__pyx_n_s_default_range;
static PyObject *__pyx_n_s_default_role;
static PyObject *__pyx_n_s_default_type;
static PyObject *__pyx_n_s_default_user;
static PyObject *__pyx_n_s_defaults;
static PyObject *__pyx_n_s_defaultvalue;
static PyObject *__pyx_n_s_deny;
static PyObject *__pyx_n_s_deref;
static PyObject *__pyx_n_s_derive_expanded_locals_genexpr;
static PyObject *__pyx_n_u_device;
static PyObject *__pyx_kp_u_devicetreecon_0_path_0_context;
static PyObject *__pyx_n_s_devicetreecons;
static PyObject *__pyx_n_u_devnull;
static PyObject *__pyx_n_s_dict;
static PyObject *__pyx_n_u_dir;
static PyObject *__pyx_n_s_doc;
static PyObject *__pyx_n_u_dom;
static PyObject *__pyx_n_u_dom0;
static PyObject *__pyx_n_u_domDM;
static PyObject *__pyx_n_u_domU;
static PyObject *__pyx_n_u_domby;
static PyObject *__pyx_n_u_domio;
static PyObject *__pyx_n_u_domxen;
static PyObject *__pyx_n_s_dontaudit;
static PyObject *__pyx_n_s_dontauditxperm;
static PyObject *__pyx_n_s_e;
static PyObject *__pyx_n_s_enum;
static PyObject *__pyx_n_s_eq;
static PyObject *__pyx_n_s_errno;
static PyObject *__pyx_n_s_evaluate;
static PyObject *__pyx_n_s_exception;
static PyObject *__pyx_n_s_expand;
static PyObject *__pyx_n_s_expr_op_to_text;
static PyObject *__pyx_n_s_expr_type_to_text;
static PyObject *__pyx_n_s_expression;
static PyObject *__pyx_n_s_false_rules;
static PyObject *__pyx_n_u_fifo_file;
static PyObject *__pyx_n_u_file;
static PyObject *__pyx_n_u_file_labels;
static PyObject *__pyx_n_s_filetype_to_text;
static PyObject *__pyx_n_s_format;
static PyObject *__pyx_n_s_format_2;
static PyObject *__pyx_n_s_format___locals_lambda;
static PyObject *__pyx_n_s_from_default_range;
static PyObject *__pyx_n_u_fs;
static PyObject *__pyx_n_s_fs_use_task;
static PyObject *__pyx_n_s_fs_use_trans;
static PyObject *__pyx_n_s_fs_use_xattr;
static PyObject *__pyx_n_s_fs_uses;
static PyObject *__pyx_n_s_genexpr;
static PyObject *__pyx_kp_u_genfscon_0_fs_0_path_0_filetype;
static PyObject *__pyx_kp_u_genfscon_0_fs_0_path_0_filetype_2;
static PyObject *__pyx_n_s_genfscons;
static PyObject *__pyx_n_s_get;
static PyObject *__pyx_n_s_getLogger;
static PyObject *__pyx_n_s_getitem;
static PyObject *__pyx_n_s_getstate;
static PyObject *__pyx_n_s_glblub;
static PyObject *__pyx_n_s_groupby;
static PyObject *__pyx_n_u_h1;
static PyObject *__pyx_n_u_h2;
static PyObject *__pyx_n_s_hash;
static PyObject *__pyx_n_s_high;
static PyObject *__pyx_n_u_high;
static PyObject *__pyx_kp_u_ibendportcon_0_name_0_port;
static PyObject *__pyx_kp_u_ibendportcon_0_name_0_port_0_con;
static PyObject *__pyx_n_s_ibendportcons;
static PyObject *__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey;
static PyObject *__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey_2;
static PyObject *__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey_3;
static PyObject *__pyx_n_s_ibpkeycons;
static PyObject *__pyx_n_u_icmp_socket;
static PyObject *__pyx_n_s_id;
static PyObject *__pyx_n_u_igmp_packet;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_n_u_incomp;
static PyObject *__pyx_n_s_infix;
static PyObject *__pyx_n_s_info;
static PyObject *__pyx_kp_u_inherits_0;
static PyObject *__pyx_n_s_init;
static PyObject *__pyx_n_u_init_2;
static PyObject *__pyx_n_s_initialsids;
static PyObject *__pyx_n_u_ioctl;
static PyObject *__pyx_n_u_iomem;
static PyObject *__pyx_kp_u_iomemcon_0_1;
static PyObject *__pyx_kp_u_iomemcon_0_1_2;
static PyObject *__pyx_n_s_iomemcons;
static PyObject *__pyx_n_u_ioport;
static PyObject *__pyx_kp_u_ioportcon_0_1;
static PyObject *__pyx_kp_u_ioportcon_0_1_2;
static PyObject *__pyx_n_s_ioportcons;
static PyObject *__pyx_n_s_ip_network;
static PyObject *__pyx_n_s_ipaddress;
static PyObject *__pyx_n_s_ipv4;
static PyObject *__pyx_n_s_ipv6;
static PyObject *__pyx_n_u_irq;
static PyObject *__pyx_n_s_ispermissive;
static PyObject *__pyx_n_s_itertools;
static PyObject *__pyx_n_s_k;
static PyObject *__pyx_n_u_kernel;
static PyObject *__pyx_n_s_key;
static PyObject *__pyx_n_u_kmod;
static PyObject *__pyx_kp_u_l;
static PyObject *__pyx_n_u_l1;
static PyObject *__pyx_n_u_l2;
static PyObject *__pyx_n_s_len___locals_genexpr;
static PyObject *__pyx_kp_u_level_0;
static PyObject *__pyx_kp_u_level_0_mls_level_range_0_mls_r;
static PyObject *__pyx_n_s_level_decl;
static PyObject *__pyx_n_s_levels;
static PyObject *__pyx_n_u_libsepol;
static PyObject *__pyx_n_u_lnk_file;
static PyObject *__pyx_n_s_logging;
static PyObject *__pyx_n_s_lookup;
static PyObject *__pyx_n_s_lookup_boolean_name_sub;
static PyObject *__pyx_n_s_lookup_category;
static PyObject *__pyx_n_s_lookup_sensitivity;
static PyObject *__pyx_n_s_low;
static PyObject *__pyx_n_u_low;
static PyObject *__pyx_n_s_low_high;
static PyObject *__pyx_n_s_lower;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_metaclass;
static PyObject *__pyx_n_s_missing;
static PyObject *__pyx_n_s_mlsconstrain;
static PyObject *__pyx_n_s_mlsrules;
static PyObject *__pyx_n_s_mlsvalidatetrans;
static PyObject *__pyx_n_s_module;
static PyObject *__pyx_n_s_name;
static PyObject *__pyx_n_s_name_2;
static PyObject *__pyx_n_s_name_3;
static PyObject *__pyx_n_s_namedtuple;
static PyObject *__pyx_n_s_names;
static PyObject *__pyx_n_u_names;
static PyObject *__pyx_n_u_netif;
static PyObject *__pyx_kp_u_netifcon_0_netif;
static PyObject *__pyx_kp_u_netifcon_0_netif_0_context_0_pac;
static PyObject *__pyx_n_s_netifcons;
static PyObject *__pyx_n_u_netmsg;
static PyObject *__pyx_n_s_neverallow;
static PyObject *__pyx_n_s_neverallowxperm;
static PyObject *__pyx_n_s_new;
static PyObject *__pyx_n_s_new_name;
static PyObject *__pyx_n_s_next;
static PyObject *__pyx_n_s_next_stype;
static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
static PyObject *__pyx_n_u_node;
static PyObject *__pyx_kp_u_nodecon;
static PyObject *__pyx_kp_u_nodecon_1_0_context;
static PyObject *__pyx_n_s_nodecons;
static PyObject *__pyx_n_u_not;
static PyObject *__pyx_n_u_object_r;
static PyObject *__pyx_n_u_or;
static PyObject *__pyx_kp_u_or_in_the_type_set_this_is_not;
static PyObject *__pyx_n_s_other;
static PyObject *__pyx_kp_u_p;
static PyObject *__pyx_n_s_parent;
static PyObject *__pyx_kp_u_pcidevicecon_0_device_0_context;
static PyObject *__pyx_n_s_pcidevicecons;
static PyObject *__pyx_n_s_perms;
static PyObject *__pyx_n_s_pickle;
static PyObject *__pyx_kp_u_pirqcon_0_irq_0_context;
static PyObject *__pyx_n_s_pirqcons;
static PyObject *__pyx_n_s_polcaps;
static PyObject *__pyx_n_s_policy;
static PyObject *__pyx_n_u_policy;
static PyObject *__pyx_kp_u_policycap_0;
static PyObject *__pyx_n_s_policyfile;
static PyObject *__pyx_n_s_pop;
static PyObject *__pyx_n_u_port;
static PyObject *__pyx_kp_u_portcon_0_protocol_1_0_context;
static PyObject *__pyx_kp_u_portcon_0_protocol_1_2_0_context;
static PyObject *__pyx_kp_u_portcon_0_protocol_1_low_1_high;
static PyObject *__pyx_n_s_portcons;
static PyObject *__pyx_n_s_precedence;
static PyObject *__pyx_n_s_prepare;
static PyObject *__pyx_n_s_product;
static PyObject *__pyx_n_s_pyx_PickleError;
static PyObject *__pyx_n_s_pyx_checksum;
static PyObject *__pyx_n_s_pyx_result;
static PyObject *__pyx_n_s_pyx_state;
static PyObject *__pyx_n_s_pyx_type;
static PyObject *__pyx_n_s_pyx_unpickle_AVRule;
static PyObject *__pyx_n_s_pyx_unpickle_AVRuleXperm;
static PyObject *__pyx_n_s_pyx_unpickle_BaseConstraint;
static PyObject *__pyx_n_s_pyx_unpickle_BaseMLSLevel;
static PyObject *__pyx_n_s_pyx_unpickle_BaseTERule;
static PyObject *__pyx_n_s_pyx_unpickle_BaseType;
static PyObject *__pyx_n_s_pyx_unpickle_Boolean;
static PyObject *__pyx_n_s_pyx_unpickle_Bounds;
static PyObject *__pyx_n_s_pyx_unpickle_Category;
static PyObject *__pyx_n_s_pyx_unpickle_Common;
static PyObject *__pyx_n_s_pyx_unpickle_Conditional;
static PyObject *__pyx_n_s_pyx_unpickle_ConditionalOperat;
static PyObject *__pyx_n_s_pyx_unpickle_Constraint;
static PyObject *__pyx_n_s_pyx_unpickle_ConstraintExprNod;
static PyObject *__pyx_n_s_pyx_unpickle_ConstraintExpress;
static PyObject *__pyx_n_s_pyx_unpickle_Context;
static PyObject *__pyx_n_s_pyx_unpickle_Default;
static PyObject *__pyx_n_s_pyx_unpickle_DefaultRange;
static PyObject *__pyx_n_s_pyx_unpickle_Devicetreecon;
static PyObject *__pyx_n_s_pyx_unpickle_FSUse;
static PyObject *__pyx_n_s_pyx_unpickle_FileNameTERule;
static PyObject *__pyx_n_s_pyx_unpickle_GenfsFiletype;
static PyObject *__pyx_n_s_pyx_unpickle_Genfscon;
static PyObject *__pyx_n_s_pyx_unpickle_Ibendportcon;
static PyObject *__pyx_n_s_pyx_unpickle_Ibpkeycon;
static PyObject *__pyx_n_s_pyx_unpickle_InitialSID;
static PyObject *__pyx_n_s_pyx_unpickle_IoctlSet;
static PyObject *__pyx_n_s_pyx_unpickle_Iomemcon;
static PyObject *__pyx_n_s_pyx_unpickle_Ioportcon;
static PyObject *__pyx_n_s_pyx_unpickle_Level;
static PyObject *__pyx_n_s_pyx_unpickle_LevelDecl;
static PyObject *__pyx_n_s_pyx_unpickle_MLSRule;
static PyObject *__pyx_n_s_pyx_unpickle_Netifcon;
static PyObject *__pyx_n_s_pyx_unpickle_Nodecon;
static PyObject *__pyx_n_s_pyx_unpickle_ObjClass;
static PyObject *__pyx_n_s_pyx_unpickle_Ocontext;
static PyObject *__pyx_n_s_pyx_unpickle_Pcidevicecon;
static PyObject *__pyx_n_s_pyx_unpickle_PermissionVectorI;
static PyObject *__pyx_n_s_pyx_unpickle_Pirqcon;
static PyObject *__pyx_n_s_pyx_unpickle_PolicyCapability;
static PyObject *__pyx_n_s_pyx_unpickle_PolicyIterator;
static PyObject *__pyx_n_s_pyx_unpickle_PolicyObject;
static PyObject *__pyx_n_s_pyx_unpickle_PolicyRule;
static PyObject *__pyx_n_s_pyx_unpickle_PolicySymbol;
static PyObject *__pyx_n_s_pyx_unpickle_Portcon;
static PyObject *__pyx_n_s_pyx_unpickle_Range;
static PyObject *__pyx_n_s_pyx_unpickle_Role;
static PyObject *__pyx_n_s_pyx_unpickle_RoleAllow;
static PyObject *__pyx_n_s_pyx_unpickle_RoleTransition;
static PyObject *__pyx_n_s_pyx_unpickle_Sensitivity;
static PyObject *__pyx_n_s_pyx_unpickle_TERule;
static PyObject *__pyx_n_s_pyx_unpickle_Type;
static PyObject *__pyx_n_s_pyx_unpickle_TypeAttribute;
static PyObject *__pyx_n_s_pyx_unpickle_User;
static PyObject *__pyx_n_s_pyx_unpickle_Validatetrans;
static PyObject *__pyx_n_s_pyx_vtable;
static PyObject *__pyx_n_s_qualname;
static PyObject *__pyx_n_u_r1;
static PyObject *__pyx_n_u_r2;
static PyObject *__pyx_n_u_r3;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_range_2;
static PyObject *__pyx_n_s_range_transition;
static PyObject *__pyx_n_s_ranges;
static PyObject *__pyx_n_s_ranges_locals_genexpr;
static PyObject *__pyx_n_s_ranges_locals_genexpr_locals_lam;
static PyObject *__pyx_n_s_reduce;
static PyObject *__pyx_n_s_reduce_cython;
static PyObject *__pyx_n_s_reduce_ex;
static PyObject *__pyx_n_s_reject;
static PyObject *__pyx_n_s_repeat;
static PyObject *__pyx_n_s_replace;
static PyObject *__pyx_n_s_reset;
static PyObject *__pyx_n_u_result;
static PyObject *__pyx_kp_u_role_0;
static PyObject *__pyx_n_s_role_syms;
static PyObject *__pyx_n_s_role_transition;
static PyObject *__pyx_n_s_roles;
static PyObject *__pyx_n_s_ruletype;
static PyObject *__pyx_n_s_ruletype_count;
static PyObject *__pyx_kp_u_s;
static PyObject *__pyx_n_s_sclass_to_stat;
static PyObject *__pyx_n_u_scmp_packet;
static PyObject *__pyx_n_s_sctp;
static PyObject *__pyx_n_u_security;
static PyObject *__pyx_n_s_self;
static PyObject *__pyx_kp_s_self_bmap_self_node_cannot_be_co;
static PyObject *__pyx_kp_s_self_curr_self_datum_self_node_s;
static PyObject *__pyx_kp_s_self_curr_self_head_cannot_be_co;
static PyObject *__pyx_kp_s_self_curr_self_head_self_ocon_ca;
static PyObject *__pyx_kp_s_self_curr_self_node_self_table_c;
static PyObject *__pyx_kp_s_self_node_self_table_cannot_be_c;
static PyObject *__pyx_n_s_selinux;
static PyObject *__pyx_n_s_send;
static PyObject *__pyx_n_s_sensitivities;
static PyObject *__pyx_n_s_sensitivity;
static PyObject *__pyx_kp_u_sensitivity_0;
static PyObject *__pyx_n_s_setdefault;
static PyObject *__pyx_n_s_setitem;
static PyObject *__pyx_n_s_setools_policyrep;
static PyObject *__pyx_kp_s_setools_policyrep_default_pxi;
static PyObject *__pyx_kp_s_setools_policyrep_util_pxi;
static PyObject *__pyx_n_s_setstate;
static PyObject *__pyx_n_s_setstate_cython;
static PyObject *__pyx_kp_u_sid_0_0_context;
static PyObject *__pyx_n_u_sock_file;
static PyObject *__pyx_n_s_sorted;
static PyObject *__pyx_n_s_source;
static PyObject *__pyx_n_s_spec;
static PyObject *__pyx_n_s_state;
static PyObject *__pyx_n_s_statement;
static PyObject *__pyx_n_s_statement_locals_genexpr;
static PyObject *__pyx_n_s_str;
static PyObject *__pyx_n_s_str___locals_genexpr;
static PyObject *__pyx_n_s_str___locals_lambda;
static PyObject *__pyx_n_s_strict;
static PyObject *__pyx_kp_s_stringsource;
static PyObject *__pyx_n_s_strip;
static PyObject *__pyx_n_s_sum;
static PyObject *__pyx_n_s_super;
static PyObject *__pyx_n_s_sym_to_text;
static PyObject *__pyx_n_s_symbol_type;
static PyObject *__pyx_n_u_symbol_type;
static PyObject *__pyx_n_u_sysctl;
static PyObject *__pyx_n_u_sysctl_dev;
static PyObject *__pyx_n_u_sysctl_fs;
static PyObject *__pyx_n_u_sysctl_kernel;
static PyObject *__pyx_n_u_sysctl_modprobe;
static PyObject *__pyx_n_u_sysctl_net;
static PyObject *__pyx_n_u_sysctl_net_unix;
static PyObject *__pyx_n_u_sysctl_vm;
static PyObject *__pyx_n_u_t1;
static PyObject *__pyx_n_u_t2;
static PyObject *__pyx_n_u_t3;
static PyObject *__pyx_n_s_target;
static PyObject *__pyx_n_s_tclass;
static PyObject *__pyx_n_s_tcp;
static PyObject *__pyx_n_u_tcp_socket;
static PyObject *__pyx_n_s_terules;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_throw;
static PyObject *__pyx_n_s_true_rules;
static PyObject *__pyx_n_s_truth_table_locals_genexpr;
static PyObject *__pyx_kp_u_type_0;
static PyObject *__pyx_n_s_type_change;
static PyObject *__pyx_n_s_type_member;
static PyObject *__pyx_n_s_type_syms;
static PyObject *__pyx_n_s_type_transition;
static PyObject *__pyx_n_s_typeattributes;
static PyObject *__pyx_n_s_typebounds;
static PyObject *__pyx_n_s_types;
static PyObject *__pyx_kp_u_types_0;
static PyObject *__pyx_kp_u_types_0_2;
static PyObject *__pyx_n_s_typing;
static PyObject *__pyx_n_u_u1;
static PyObject *__pyx_n_u_u2;
static PyObject *__pyx_n_u_u3;
static PyObject *__pyx_n_s_udp;
static PyObject *__pyx_n_s_unary;
static PyObject *__pyx_n_u_undefined;
static PyObject *__pyx_n_u_unlabeled;
static PyObject *__pyx_n_s_update;
static PyObject *__pyx_kp_u_user_0_roles;
static PyObject *__pyx_n_s_user_syms;
static PyObject *__pyx_n_s_users;
static PyObject *__pyx_n_s_validatetrans;
static PyObject *__pyx_n_s_value;
static PyObject *__pyx_n_s_value_2;
static PyObject *__pyx_n_s_values;
static PyObject *__pyx_n_u_values;
static PyObject *__pyx_n_s_warn;
static PyObject *__pyx_n_s_warning;
static PyObject *__pyx_n_s_warnings;
static PyObject *__pyx_n_s_weakref;
static PyObject *__pyx_n_s_with_netmask;
static PyObject *__pyx_n_s_x;
static PyObject *__pyx_n_s_xen;
static PyObject *__pyx_n_u_xen;
static PyObject *__pyx_n_s_y;
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum___str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_2__format__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_spec); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_4__eq__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_6__hash__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_8lookup(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_default_factory, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_4__missing__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_lookup_boolean_name_sub(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_statement(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_5state___get__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_11Conditional___contains__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_2__str__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_11Conditional_4__hash__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_6__eq__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_8evaluate(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_10expression(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_12false_rules(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_14statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_16true_rules(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_11truth_table_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_18truth_table(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_8booleans___get__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_20__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_22__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda3(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda6(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator___str__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_2statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_10precedence___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_5unary___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_8evaluate___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_19ConditionalIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_6Bounds___hash__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_2__eq__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_4__lt__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_6statement(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_6parent___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_5child___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_18TypeboundsIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_5perms___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_6tclass___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_10expression___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint___reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_2__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_statement(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_5perms___get__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_5perms___get__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_statement(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___3genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression___str__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_2__getitem__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v_idx); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_4__iter__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_6__eq__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_8infix(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_10statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_3mls___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5users___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5roles___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5types___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_12__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_14__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_3genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_6genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_9genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode___iter__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static int __pyx_pf_7setools_9policyrep_18ConstraintExprNode_2__contains__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v_item); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_18ConstraintExprNode_4__len__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_6__getitem__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v_idx); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_5names___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_11symbol_type___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_8statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator___next__(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_18ConstraintIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator___next__(struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator___next__(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context___str__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_6range____get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_2statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_4user___get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_4role___get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_5type____get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Context_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultValue_from_default_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_range_); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17DefaultRangeValue_from_default_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_range_); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default___eq__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_7Default_2__hash__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_4__lt__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_7default___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_6statement(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_6tclass___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Default_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange___eq__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_12DefaultRange_2__hash__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_4__lt__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_6statement(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_13default_range___get__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_5FSUse___hash__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_2__lt__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_4statement(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_2fs___get__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype___str__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_8Genfscon___hash__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_2__lt__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_4statement(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_2fs___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_8filetype___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_6tclass___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_4path___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator___next__(struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator___iter__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_2__next__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_16GenfsconIterator_4__len__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator___next__(struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID___str__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_2statement(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_4name___get__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator___next__(struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_8Category___hash__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_2__lt__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_4aliases(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_6statement(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_6_value___get__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Category_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_11Sensitivity___hash__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_2__ge__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_4__gt__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_6__le__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_8__lt__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_10aliases(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_12level_decl(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_14statement(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_6_value___get__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_16__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_18__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda13(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_112__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda14(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel___str__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_2categories(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_11sensitivity___get__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_9LevelDecl___hash__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_2__eq__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_4__ge__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_6__gt__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_8__le__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_10__lt__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_12statement(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_14__reduce_cython__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_16__setstate_cython__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_5Level___hash__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_2__eq__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_4__ge__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_6__gt__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_8__le__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_10__lt__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_12__xor__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_14statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_16__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Level_18__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range___str__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_5Range_2__hash__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_4__eq__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static int __pyx_pf_7setools_9policyrep_5Range_6__contains__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_8statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_3low___get__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_4high___get__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_5Range_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_7MLSRule___hash__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_2__lt__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_7default___get__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_4expand(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_7statement(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_6tclass___get__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator___next__(struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_12Ibendportcon___hash__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4statement(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4name___get__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4port___get__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_9Ibpkeycon___hash__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_2__lt__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_4statement(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_13subnet_prefix___get__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_5pkeys___get__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_8Netifcon___hash__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_4statement(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_5netif___get__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_6packet___get__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_7Nodecon___hash__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_2__lt__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_4statement(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_10ip_version___get__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_7network___get__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_7Portcon___hash__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_4statement(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_5ports___get__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_8protocol___get__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator___next__(struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator___next__(struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator___next__(struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator___next__(struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator___next__(struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_6Common___contains__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Common_2statement(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Common_5perms___get__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Common_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6Common_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_8ObjClass___contains__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_6common___get__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_2constraints(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_4defaults(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_6statement(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_8validatetrans(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_5perms___get__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator___next__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_2__len__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_4reset(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_12PolicyObject___hash__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_2__copy__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_4__deepcopy__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_6__eq__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_8__ne__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_10__lt__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_12__str__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_14__repr__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_16statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_6policy___get__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_18__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_20__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol___str__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_4name___get__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext_7context___get__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext___reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext_2__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator___iter__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_2__next__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_14PolicyIterator_4__len__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_6reset(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_15EbitmapIterator_2__len__(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_4reset(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_15HashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator___next__(struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_16OcontextIterator_2__len__(struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability___eq__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_16PolicyCapability_2__hash__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_4statement(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator___next__(struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_9RoleAllow___hash__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_2__lt__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_6tclass___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_7default___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_4expand(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_7statement(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_14RoleTransition___hash__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_2__lt__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_7default___get__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_4expand(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_7statement(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_6tclass___get__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_17RoleAllowIterator_2__len__(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_4reset(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_2__len__(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_4reset(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_15dominated_roles___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_expand(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_3types(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_9statement_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_5statement(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_7__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Role_9__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_11conditional___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_17conditional_block___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_enabled(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_2expand(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6source___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6target___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6origin___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8extended___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_13SELinuxPolicy___cinit__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_policyfile); /* proto */
static void __pyx_pf_7setools_9policyrep_13SELinuxPolicy_2__dealloc__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_4__repr__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_6__str__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_8__copy__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10__deepcopy__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11allow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16auditallow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13boolean_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11class_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12common_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17conditional_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16constraint_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12fs_use_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14genfscon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17initialsids_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14netifcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16neverallow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12polcap_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13portcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16role_allow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21role_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10role_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_change_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10type_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_member_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21type_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16typebounds_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10user_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14lookup_category(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16lookup_class(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18lookup_common(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20lookup_initialsid(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22lookup_level(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_level); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_26lookup_range(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_range_); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_28lookup_role(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_30lookup_type(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_36lookup_user(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_38bools(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_40bounds(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_42categories(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_44classes(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_46commons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_48defaults(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_51levels(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_53polcaps(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_55roles(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_57sensitivities(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_59types(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_61typeattributes(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_63users(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_65conditionals(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_67mlsrules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_69rbacrules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_71terules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_74constraints(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_77fs_uses(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_79genfscons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_81ibendportcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_85initialsids(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_87netifcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_89nodecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_91portcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_93devicetreecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_95iomemcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_97ioportcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_101pirqcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_4path___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14handle_unknown___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15target_platform___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_7version___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_3mls___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_103__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_105__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_8filename___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_11conditional___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_17conditional_block___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_enabled(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_6tclass___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_7factory_genexpr(PyObject *__pyx_self); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_6AVRule___hash__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_2__lt__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_7default___get__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_15derive_expanded_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_4derive_expanded(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_source, struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_target, PyObject *__pyx_v_perms); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_6expand(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_9statement(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_5perms___get__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_11__reduce_cython__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_13__setstate_cython__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_114__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda26(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet___format__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self, PyObject *__pyx_v_spec); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_2__str__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_4__repr__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_116__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_lambda_funcdef_lambda28(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_6ranges_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_6ranges(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_11AVRuleXperm___hash__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_2__lt__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_7default___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_4expand(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_7statement(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_5perms___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_10xperm_type___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_6TERule___hash__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_2__lt__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_5perms___get__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_7default___get__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_4expand(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_7statement(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6TERule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static Py_hash_t __pyx_pf_7setools_9policyrep_14FileNameTERule___hash__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_2__lt__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_5perms___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_7default___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_4expand(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_7statement(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_8filename___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator___next__(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_14TERuleIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_4ruletype_count(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator__next_stype(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_2__next__(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_7__len___genexpr(PyObject *__pyx_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_4__len__(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_expand(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_2attributes(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_4aliases(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_expand(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_3attributes(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_5aliases(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_7statement(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_12ispermissive___get__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4Type_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7setools_9policyrep_13TypeAttribute___contains__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_2__iter__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_13TypeAttribute_4__len__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_6expand(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_8attributes(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_10aliases(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_12ispermissive___get__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_12statement(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_14__reduce_cython__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_16__setstate_cython__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self); /* proto */
static Py_ssize_t __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_7factory_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_9mls_level___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_9mls_range___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_9statement_genexpr(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_statement(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_5roles___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4User_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_statement(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_4path___get__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_statement(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_4addr___get__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_statement(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_5ports___get__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_statement(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_6device___get__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_statement(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_3irq___get__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator___next__(struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator___next__(struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator___next__(struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator___next__(struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator___next__(struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_2__pyx_unpickle_Boolean(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_4__pyx_unpickle_Conditional(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_6__pyx_unpickle_ConditionalOperator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_8__pyx_unpickle_Bounds(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_10__pyx_unpickle_BaseConstraint(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_12__pyx_unpickle_Constraint(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_14__pyx_unpickle_Validatetrans(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_16__pyx_unpickle_ConstraintExpression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_18__pyx_unpickle_ConstraintExprNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_20__pyx_unpickle_Context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_22__pyx_unpickle_Default(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_24__pyx_unpickle_DefaultRange(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_26__pyx_unpickle_FSUse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_28__pyx_unpickle_GenfsFiletype(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_30__pyx_unpickle_Genfscon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_32__pyx_unpickle_InitialSID(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_34__pyx_unpickle_Category(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_36__pyx_unpickle_Sensitivity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_38__pyx_unpickle_BaseMLSLevel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_40__pyx_unpickle_LevelDecl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_42__pyx_unpickle_Level(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_44__pyx_unpickle_Range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_46__pyx_unpickle_MLSRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_48__pyx_unpickle_Ibendportcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_50__pyx_unpickle_Ibpkeycon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_52__pyx_unpickle_Netifcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_54__pyx_unpickle_Nodecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_56__pyx_unpickle_Portcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_58__pyx_unpickle_Common(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_60__pyx_unpickle_ObjClass(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_62__pyx_unpickle_PermissionVectorIterator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_64__pyx_unpickle_PolicyObject(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_66__pyx_unpickle_PolicySymbol(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_68__pyx_unpickle_Ocontext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_70__pyx_unpickle_PolicyIterator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_72__pyx_unpickle_PolicyCapability(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_74__pyx_unpickle_RoleAllow(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_76__pyx_unpickle_RoleTransition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_78__pyx_unpickle_Role(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_80__pyx_unpickle_PolicyRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_82__pyx_unpickle_BaseTERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_84__pyx_unpickle_AVRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_86__pyx_unpickle_IoctlSet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_88__pyx_unpickle_AVRuleXperm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_90__pyx_unpickle_TERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_92__pyx_unpickle_FileNameTERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_94__pyx_unpickle_BaseType(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_96__pyx_unpickle_Type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_98__pyx_unpickle_TypeAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_100__pyx_unpickle_User(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_102__pyx_unpickle_Devicetreecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_104__pyx_unpickle_Iomemcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_106__pyx_unpickle_Ioportcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_108__pyx_unpickle_Pcidevicecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7setools_9policyrep_110__pyx_unpickle_Pirqcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyObject(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicySymbol(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Boolean(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Conditional(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalOperator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_HashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BooleanHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalExprIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Bounds(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeboundsIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BaseConstraint(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Constraint(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Validatetrans(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExpression(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExprNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ValidatetransIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExprIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Context(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Default(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_DefaultRange(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Ocontext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_FSUse(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsFiletype(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Genfscon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_OcontextIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_FSUseIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsconOcontextIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_InitialSID(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_InitialSIDIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Category(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Sensitivity(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BaseMLSLevel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_LevelDecl(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Level(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Range(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_CategoryHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_SensitivityHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_LevelDeclHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_EbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_CategoryEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyRule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_MLSRule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_MLSRuleIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Ibendportcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Ibpkeycon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Netifcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Nodecon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Portcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IbendportconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IbpkeyconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_NetifconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_NodeconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PortconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Common(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ObjClass(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_CommonHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ObjClassHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PermissionVectorIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyCapability(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyCapabilityIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleAllow(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleTransition(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleAllowIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleTransitionIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Role(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_RoleEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_SELinuxPolicy(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BaseTERule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_AVRule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IoctlSet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_AVRuleXperm(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TERule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_FileNameTERule(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalTERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_FileNameTERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_BaseType(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Type(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttribute(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttributeHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttributeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_TypeOrAttributeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_User(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_UserHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_UserEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Devicetreecon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Iomemcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Ioportcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Pcidevicecon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_Pirqcon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_DevicetreeconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IomemconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_IoportconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PcideviceconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep_PirqconIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct__truth_table(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2___str__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_factory(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_statement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28___get__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_defaults(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_terules(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_constraints(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_factory(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_36_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_37_derive_expanded(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_38_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_39_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_40_ranges(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_41_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_42_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_43_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_44_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_45___len__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_46_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_47_expand(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_48_factory(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_49_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_50_statement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_51_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, &__pyx_n_s_get, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_setdefault = {0, &__pyx_n_s_setdefault, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values = {0, &__pyx_n_s_values, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyList_Type_pop = {0, &__pyx_n_s_pop, 0, 0, 0};
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_2;
static PyObject *__pyx_int_3;
static PyObject *__pyx_int_4;
static PyObject *__pyx_int_5;
static PyObject *__pyx_int_25291058;
static PyObject *__pyx_int_26029694;
static PyObject *__pyx_int_46041621;
static PyObject *__pyx_int_47039003;
static PyObject *__pyx_int_48073796;
static PyObject *__pyx_int_58809211;
static PyObject *__pyx_int_60418571;
static PyObject *__pyx_int_73097080;
static PyObject *__pyx_int_78114951;
static PyObject *__pyx_int_82942606;
static PyObject *__pyx_int_98277146;
static PyObject *__pyx_int_105072095;
static PyObject *__pyx_int_106968687;
static PyObject *__pyx_int_108357528;
static PyObject *__pyx_int_108427564;
static PyObject *__pyx_int_111450362;
static PyObject *__pyx_int_115261232;
static PyObject *__pyx_int_126274049;
static PyObject *__pyx_int_130137006;
static PyObject *__pyx_int_154850352;
static PyObject *__pyx_int_159260084;
static PyObject *__pyx_int_162073369;
static PyObject *__pyx_int_173393463;
static PyObject *__pyx_int_173396620;
static PyObject *__pyx_int_174173316;
static PyObject *__pyx_int_178203351;
static PyObject *__pyx_int_178998772;
static PyObject *__pyx_int_184567453;
static PyObject *__pyx_int_189326887;
static PyObject *__pyx_int_193457800;
static PyObject *__pyx_int_197552485;
static PyObject *__pyx_int_209890851;
static PyObject *__pyx_int_211503955;
static PyObject *__pyx_int_218389193;
static PyObject *__pyx_int_219516990;
static PyObject *__pyx_int_222419149;
static PyObject *__pyx_int_223953213;
static PyObject *__pyx_int_230096861;
static PyObject *__pyx_int_231018900;
static PyObject *__pyx_int_234029960;
static PyObject *__pyx_int_244981763;
static PyObject *__pyx_int_249199402;
static PyObject *__pyx_int_255013277;
static PyObject *__pyx_int_256571573;
static PyObject *__pyx_int_261229992;
static PyObject *__pyx_int_266321039;
static PyObject *__pyx_int_267343564;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__5;
static PyObject *__pyx_tuple__6;
static PyObject *__pyx_tuple__7;
static PyObject *__pyx_tuple__8;
static PyObject *__pyx_tuple__9;
static PyObject *__pyx_tuple__10;
static PyObject *__pyx_tuple__11;
static PyObject *__pyx_tuple__14;
static PyObject *__pyx_tuple__15;
static PyObject *__pyx_tuple__16;
static PyObject *__pyx_tuple__17;
static PyObject *__pyx_tuple__18;
static PyObject *__pyx_tuple__19;
static PyObject *__pyx_tuple__20;
static PyObject *__pyx_tuple__21;
static PyObject *__pyx_tuple__22;
static PyObject *__pyx_tuple__23;
static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__25;
static PyObject *__pyx_tuple__26;
static PyObject *__pyx_tuple__27;
static PyObject *__pyx_tuple__28;
static PyObject *__pyx_tuple__29;
static PyObject *__pyx_tuple__30;
static PyObject *__pyx_tuple__31;
static PyObject *__pyx_tuple__38;
static PyObject *__pyx_tuple__39;
static PyObject *__pyx_tuple__40;
static PyObject *__pyx_tuple__41;
static PyObject *__pyx_tuple__42;
static PyObject *__pyx_tuple__43;
static PyObject *__pyx_tuple__44;
static PyObject *__pyx_tuple__45;
static PyObject *__pyx_tuple__46;
static PyObject *__pyx_tuple__47;
static PyObject *__pyx_tuple__49;
static PyObject *__pyx_tuple__50;
static PyObject *__pyx_tuple__51;
static PyObject *__pyx_tuple__52;
static PyObject *__pyx_tuple__53;
static PyObject *__pyx_tuple__54;
static PyObject *__pyx_tuple__55;
static PyObject *__pyx_tuple__56;
static PyObject *__pyx_tuple__57;
static PyObject *__pyx_tuple__58;
static PyObject *__pyx_tuple__59;
static PyObject *__pyx_tuple__61;
static PyObject *__pyx_tuple__62;
static PyObject *__pyx_tuple__63;
static PyObject *__pyx_tuple__64;
static PyObject *__pyx_tuple__65;
static PyObject *__pyx_tuple__66;
static PyObject *__pyx_tuple__67;
static PyObject *__pyx_tuple__68;
static PyObject *__pyx_tuple__69;
static PyObject *__pyx_tuple__70;
static PyObject *__pyx_tuple__71;
static PyObject *__pyx_tuple__72;
static PyObject *__pyx_tuple__73;
static PyObject *__pyx_tuple__74;
static PyObject *__pyx_tuple__75;
static PyObject *__pyx_tuple__76;
static PyObject *__pyx_tuple__77;
static PyObject *__pyx_tuple__78;
static PyObject *__pyx_tuple__79;
static PyObject *__pyx_tuple__80;
static PyObject *__pyx_tuple__81;
static PyObject *__pyx_tuple__82;
static PyObject *__pyx_tuple__83;
static PyObject *__pyx_tuple__85;
static PyObject *__pyx_tuple__86;
static PyObject *__pyx_tuple__87;
static PyObject *__pyx_tuple__88;
static PyObject *__pyx_tuple__89;
static PyObject *__pyx_tuple__90;
static PyObject *__pyx_tuple__91;
static PyObject *__pyx_tuple__92;
static PyObject *__pyx_tuple__93;
static PyObject *__pyx_tuple__94;
static PyObject *__pyx_tuple__95;
static PyObject *__pyx_tuple__96;
static PyObject *__pyx_tuple__97;
static PyObject *__pyx_tuple__98;
static PyObject *__pyx_tuple__99;
static PyObject *__pyx_tuple__100;
static PyObject *__pyx_tuple__101;
static PyObject *__pyx_tuple__102;
static PyObject *__pyx_tuple__103;
static PyObject *__pyx_tuple__104;
static PyObject *__pyx_tuple__105;
static PyObject *__pyx_tuple__106;
static PyObject *__pyx_tuple__107;
static PyObject *__pyx_tuple__108;
static PyObject *__pyx_tuple__109;
static PyObject *__pyx_tuple__110;
static PyObject *__pyx_tuple__111;
static PyObject *__pyx_tuple__112;
static PyObject *__pyx_tuple__113;
static PyObject *__pyx_tuple__114;
static PyObject *__pyx_tuple__115;
static PyObject *__pyx_tuple__117;
static PyObject *__pyx_tuple__119;
static PyObject *__pyx_tuple__121;
static PyObject *__pyx_tuple__123;
static PyObject *__pyx_tuple__125;
static PyObject *__pyx_tuple__127;
static PyObject *__pyx_tuple__129;
static PyObject *__pyx_tuple__131;
static PyObject *__pyx_tuple__137;
static PyObject *__pyx_tuple__138;
static PyObject *__pyx_tuple__140;
static PyObject *__pyx_tuple__143;
static PyObject *__pyx_tuple__144;
static PyObject *__pyx_tuple__145;
static PyObject *__pyx_tuple__146;
static PyObject *__pyx_tuple__147;
static PyObject *__pyx_tuple__149;
static PyObject *__pyx_tuple__151;
static PyObject *__pyx_tuple__153;
static PyObject *__pyx_tuple__155;
static PyObject *__pyx_tuple__157;
static PyObject *__pyx_tuple__159;
static PyObject *__pyx_tuple__161;
static PyObject *__pyx_tuple__163;
static PyObject *__pyx_tuple__165;
static PyObject *__pyx_tuple__167;
static PyObject *__pyx_tuple__169;
static PyObject *__pyx_tuple__171;
static PyObject *__pyx_tuple__173;
static PyObject *__pyx_tuple__175;
static PyObject *__pyx_tuple__177;
static PyObject *__pyx_tuple__179;
static PyObject *__pyx_tuple__181;
static PyObject *__pyx_tuple__183;
static PyObject *__pyx_tuple__185;
static PyObject *__pyx_tuple__187;
static PyObject *__pyx_tuple__189;
static PyObject *__pyx_tuple__191;
static PyObject *__pyx_tuple__193;
static PyObject *__pyx_tuple__195;
static PyObject *__pyx_tuple__197;
static PyObject *__pyx_tuple__199;
static PyObject *__pyx_tuple__201;
static PyObject *__pyx_tuple__203;
static PyObject *__pyx_tuple__205;
static PyObject *__pyx_tuple__207;
static PyObject *__pyx_tuple__209;
static PyObject *__pyx_tuple__211;
static PyObject *__pyx_tuple__213;
static PyObject *__pyx_tuple__215;
static PyObject *__pyx_tuple__217;
static PyObject *__pyx_tuple__219;
static PyObject *__pyx_tuple__221;
static PyObject *__pyx_tuple__223;
static PyObject *__pyx_tuple__225;
static PyObject *__pyx_tuple__227;
static PyObject *__pyx_tuple__229;
static PyObject *__pyx_tuple__231;
static PyObject *__pyx_tuple__233;
static PyObject *__pyx_tuple__235;
static PyObject *__pyx_tuple__237;
static PyObject *__pyx_tuple__239;
static PyObject *__pyx_tuple__241;
static PyObject *__pyx_tuple__243;
static PyObject *__pyx_tuple__245;
static PyObject *__pyx_tuple__247;
static PyObject *__pyx_tuple__249;
static PyObject *__pyx_tuple__251;
static PyObject *__pyx_tuple__253;
static PyObject *__pyx_tuple__255;
static PyObject *__pyx_codeobj__116;
static PyObject *__pyx_codeobj__118;
static PyObject *__pyx_codeobj__120;
static PyObject *__pyx_codeobj__122;
static PyObject *__pyx_codeobj__124;
static PyObject *__pyx_codeobj__126;
static PyObject *__pyx_codeobj__128;
static PyObject *__pyx_codeobj__130;
static PyObject *__pyx_codeobj__132;
static PyObject *__pyx_codeobj__139;
static PyObject *__pyx_codeobj__141;
static PyObject *__pyx_codeobj__148;
static PyObject *__pyx_codeobj__150;
static PyObject *__pyx_codeobj__152;
static PyObject *__pyx_codeobj__154;
static PyObject *__pyx_codeobj__156;
static PyObject *__pyx_codeobj__158;
static PyObject *__pyx_codeobj__160;
static PyObject *__pyx_codeobj__162;
static PyObject *__pyx_codeobj__164;
static PyObject *__pyx_codeobj__166;
static PyObject *__pyx_codeobj__168;
static PyObject *__pyx_codeobj__170;
static PyObject *__pyx_codeobj__172;
static PyObject *__pyx_codeobj__174;
static PyObject *__pyx_codeobj__176;
static PyObject *__pyx_codeobj__178;
static PyObject *__pyx_codeobj__180;
static PyObject *__pyx_codeobj__182;
static PyObject *__pyx_codeobj__184;
static PyObject *__pyx_codeobj__186;
static PyObject *__pyx_codeobj__188;
static PyObject *__pyx_codeobj__190;
static PyObject *__pyx_codeobj__192;
static PyObject *__pyx_codeobj__194;
static PyObject *__pyx_codeobj__196;
static PyObject *__pyx_codeobj__198;
static PyObject *__pyx_codeobj__200;
static PyObject *__pyx_codeobj__202;
static PyObject *__pyx_codeobj__204;
static PyObject *__pyx_codeobj__206;
static PyObject *__pyx_codeobj__208;
static PyObject *__pyx_codeobj__210;
static PyObject *__pyx_codeobj__212;
static PyObject *__pyx_codeobj__214;
static PyObject *__pyx_codeobj__216;
static PyObject *__pyx_codeobj__218;
static PyObject *__pyx_codeobj__220;
static PyObject *__pyx_codeobj__222;
static PyObject *__pyx_codeobj__224;
static PyObject *__pyx_codeobj__226;
static PyObject *__pyx_codeobj__228;
static PyObject *__pyx_codeobj__230;
static PyObject *__pyx_codeobj__232;
static PyObject *__pyx_codeobj__234;
static PyObject *__pyx_codeobj__236;
static PyObject *__pyx_codeobj__238;
static PyObject *__pyx_codeobj__240;
static PyObject *__pyx_codeobj__242;
static PyObject *__pyx_codeobj__244;
static PyObject *__pyx_codeobj__246;
static PyObject *__pyx_codeobj__248;
static PyObject *__pyx_codeobj__250;
static PyObject *__pyx_codeobj__252;
static PyObject *__pyx_codeobj__254;
static PyObject *__pyx_codeobj__256;
/* Late includes */

/* "setools/policyrep/util.pxi":33
 *     """
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_1__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_1__str__ = {"__str__", (PyCFunction)__pyx_pw_7setools_9policyrep_10PolicyEnum_1__str__, METH_O, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_1__str__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum___str__(__pyx_self, ((PyObject *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum___str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/util.pxi":34
 * 
 *     def __str__(self):
 *         return self.name             # <<<<<<<<<<<<<<
 * 
 *     def __format__(self, spec):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":33
 *     """
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":36
 *         return self.name
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         if not spec:
 *             return self.name
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_3__format__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_3__format__ = {"__format__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyEnum_3__format__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_3__format__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_spec = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__format__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_spec,0};
    PyObject* values[2] = {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  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_self)) != 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_spec)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__format__", 1, 2, 2, 1); __PYX_ERR(0, 36, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__format__") < 0)) __PYX_ERR(0, 36, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_spec = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__format__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 36, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__format__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum_2__format__(__pyx_self, __pyx_v_self, __pyx_v_spec);

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_2__format__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_spec) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__format__", 0);

  /* "setools/policyrep/util.pxi":37
 * 
 *     def __format__(self, spec):
 *         if not spec:             # <<<<<<<<<<<<<<
 *             return self.name
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_spec); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 37, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/util.pxi":38
 *     def __format__(self, spec):
 *         if not spec:
 *             return self.name             # <<<<<<<<<<<<<<
 *         else:
 *             return super(PolicyEnum, self).__format__(spec)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 38, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/util.pxi":37
 * 
 *     def __format__(self, spec):
 *         if not spec:             # <<<<<<<<<<<<<<
 *             return self.name
 *         else:
 */
  }

  /* "setools/policyrep/util.pxi":40
 *             return self.name
 *         else:
 *             return super(PolicyEnum, self).__format__(spec)             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_self);
    __Pyx_GIVEREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_self);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 40, __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_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 40, __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_v_spec) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_spec);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/util.pxi":36
 *         return self.name
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         if not spec:
 *             return self.name
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__format__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":42
 *             return super(PolicyEnum, self).__format__(spec)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_5__eq__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_5__eq__ = {"__eq__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyEnum_5__eq__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_5__eq__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_other = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_other,0};
    PyObject* values[2] = {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  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_self)) != 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_other)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, 1); __PYX_ERR(0, 42, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__eq__") < 0)) __PYX_ERR(0, 42, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_other = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__eq__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 42, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum_4__eq__(__pyx_self, __pyx_v_self, __pyx_v_other);

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_4__eq__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/util.pxi":43
 * 
 *     def __eq__(self, other):
 *         return super(PolicyEnum, self).__eq__(other)             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_eq); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 43, __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_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_other) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_other);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":42
 *             return super(PolicyEnum, self).__format__(spec)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":45
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_7__hash__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_7__hash__ = {"__hash__", (PyCFunction)__pyx_pw_7setools_9policyrep_10PolicyEnum_7__hash__, METH_O, 0};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_7__hash__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum_6__hash__(__pyx_self, ((PyObject *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_6__hash__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/util.pxi":46
 * 
 *     def __hash__(self):
 *         return hash(self.name)             # <<<<<<<<<<<<<<
 * 
 *     @classmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_FromHash_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":45
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":49
 * 
 *     @classmethod
 *     def lookup(cls, value):             # <<<<<<<<<<<<<<
 *         """Look up an enumeration by name or value."""
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_9lookup(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_10PolicyEnum_8lookup[] = "Look up an enumeration by name or value.";
static PyMethodDef __pyx_mdef_7setools_9policyrep_10PolicyEnum_9lookup = {"lookup", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyEnum_9lookup, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10PolicyEnum_8lookup};
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyEnum_9lookup(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_cls = 0;
  PyObject *__pyx_v_value = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cls,&__pyx_n_s_value,0};
    PyObject* values[2] = {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  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_cls)) != 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_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("lookup", 1, 2, 2, 1); __PYX_ERR(0, 49, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup") < 0)) __PYX_ERR(0, 49, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_cls = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 49, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyEnum_8lookup(__pyx_self, __pyx_v_cls, __pyx_v_value);

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyEnum_8lookup(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup", 0);

  /* "setools/policyrep/util.pxi":52
 *         """Look up an enumeration by name or value."""
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(value)
 *         except ValueError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/util.pxi":53
 * 
 *         try:
 *             return cls(value)             # <<<<<<<<<<<<<<
 *         except ValueError:
 *             return cls[value]
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_cls);
      __pyx_t_5 = __pyx_v_cls; __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 53, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/util.pxi":52
 *         """Look up an enumeration by name or value."""
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(value)
 *         except ValueError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/util.pxi":54
 *         try:
 *             return cls(value)
 *         except ValueError:             # <<<<<<<<<<<<<<
 *             return cls[value]
 * 
 */
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError);
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.PolicyEnum.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 54, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);

      /* "setools/policyrep/util.pxi":55
 *             return cls(value)
 *         except ValueError:
 *             return cls[value]             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_cls, __pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 55, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/util.pxi":52
 *         """Look up an enumeration by name or value."""
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(value)
 *         except ValueError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/util.pxi":49
 * 
 *     @classmethod
 *     def lookup(cls, value):             # <<<<<<<<<<<<<<
 *         """Look up an enumeration by name or value."""
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.PolicyEnum.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":70
 *     """
 * 
 *     def __init__(self, default_factory, *args):             # <<<<<<<<<<<<<<
 *         self.default_factory = default_factory
 *         super().__init__(args)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_default_factory = 0;
  PyObject *__pyx_v_args = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (PyTuple_GET_SIZE(__pyx_args) > 2) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 2, PyTuple_GET_SIZE(__pyx_args));
    if (unlikely(!__pyx_v_args)) {
      __Pyx_RefNannyFinishContext();
      return NULL;
    }
    __Pyx_GOTREF(__pyx_v_args);
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_default_factory,0};
    PyObject* values[2] = {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) {
        default:
        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;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 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_default_factory)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 2, 1); __PYX_ERR(0, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t used_pos_args = (pos_args < 2) ? pos_args : 2;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "__init__") < 0)) __PYX_ERR(0, 70, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) < 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_default_factory = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict___init__(__pyx_self, __pyx_v_self, __pyx_v_default_factory, __pyx_v_args);

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

static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_default_factory, PyObject *__pyx_v_args) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "setools/policyrep/util.pxi":71
 * 
 *     def __init__(self, default_factory, *args):
 *         self.default_factory = default_factory             # <<<<<<<<<<<<<<
 *         super().__init__(args)
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_default_factory, __pyx_v_default_factory) < 0) __PYX_ERR(0, 71, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":72
 *     def __init__(self, default_factory, *args):
 *         self.default_factory = default_factory
 *         super().__init__(args)             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, key):
 */
  __pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self);
  if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 72, __pyx_L1_error) }
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __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_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_args) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_args);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":70
 *     """
 * 
 *     def __init__(self, default_factory, *args):             # <<<<<<<<<<<<<<
 *         self.default_factory = default_factory
 *         super().__init__(args)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":74
 *         super().__init__(args)
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         try:
 *             return super().__getitem__(key)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__ = {"__getitem__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
    PyObject* values[2] = {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  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_self)) != 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_key)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, 1); __PYX_ERR(0, 74, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getitem__") < 0)) __PYX_ERR(0, 74, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 74, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_2__getitem__(__pyx_self, __pyx_v_self, __pyx_v_key);

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

static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "setools/policyrep/util.pxi":75
 * 
 *     def __getitem__(self, key):
 *         try:             # <<<<<<<<<<<<<<
 *             return super().__getitem__(key)
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/util.pxi":76
 *     def __getitem__(self, key):
 *         try:
 *             return super().__getitem__(key)             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             return self.__missing__(key)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_CyFunction_GetClassObj(__pyx_self);
      if (!__pyx_t_5) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 76, __pyx_L3_error) }
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
      __Pyx_INCREF(__pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_self);
      __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_getitem); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_key);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 76, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/util.pxi":75
 * 
 *     def __getitem__(self, key):
 *         try:             # <<<<<<<<<<<<<<
 *             return super().__getitem__(key)
 *         except KeyError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/util.pxi":77
 *         try:
 *             return super().__getitem__(key)
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             return self.__missing__(key)
 * 
 */
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(0, 77, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_5);

      /* "setools/policyrep/util.pxi":78
 *             return super().__getitem__(key)
 *         except KeyError:
 *             return self.__missing__(key)             # <<<<<<<<<<<<<<
 * 
 *     def __missing__(self, key):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_missing); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 78, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      __pyx_t_8 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_key);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 78, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/util.pxi":75
 * 
 *     def __getitem__(self, key):
 *         try:             # <<<<<<<<<<<<<<
 *             return super().__getitem__(key)
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/util.pxi":74
 *         super().__init__(args)
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         try:
 *             return super().__getitem__(key)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":80
 *             return self.__missing__(key)
 * 
 *     def __missing__(self, key):             # <<<<<<<<<<<<<<
 *         if self.default_factory is None:
 *             raise KeyError(key)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__ = {"__missing__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__missing__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
    PyObject* values[2] = {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  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_self)) != 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_key)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__missing__", 1, 2, 2, 1); __PYX_ERR(0, 80, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__missing__") < 0)) __PYX_ERR(0, 80, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_key = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__missing__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 80, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__missing__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_4__missing__(__pyx_self, __pyx_v_self, __pyx_v_key);

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

static PyObject *__pyx_pf_7setools_9policyrep_18WeakKeyDefaultDict_4__missing__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
  PyObject *__pyx_v_defaultvalue = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__missing__", 0);

  /* "setools/policyrep/util.pxi":81
 * 
 *     def __missing__(self, key):
 *         if self.default_factory is None:             # <<<<<<<<<<<<<<
 *             raise KeyError(key)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_default_factory); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (unlikely(__pyx_t_3)) {

    /* "setools/policyrep/util.pxi":82
 *     def __missing__(self, key):
 *         if self.default_factory is None:
 *             raise KeyError(key)             # <<<<<<<<<<<<<<
 * 
 *         defaultvalue = self.default_factory()
 */
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_KeyError, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 82, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":81
 * 
 *     def __missing__(self, key):
 *         if self.default_factory is None:             # <<<<<<<<<<<<<<
 *             raise KeyError(key)
 * 
 */
  }

  /* "setools/policyrep/util.pxi":84
 *             raise KeyError(key)
 * 
 *         defaultvalue = self.default_factory()             # <<<<<<<<<<<<<<
 *         self.__setitem__(key, defaultvalue)
 *         return defaultvalue
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_default_factory); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 84, __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_1 = (__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_1)) __PYX_ERR(0, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_defaultvalue = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":85
 * 
 *         defaultvalue = self.default_factory()
 *         self.__setitem__(key, defaultvalue)             # <<<<<<<<<<<<<<
 *         return defaultvalue
 * 
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_setitem); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  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_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_key, __pyx_v_defaultvalue};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_key, __pyx_v_defaultvalue};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_INCREF(__pyx_v_key);
    __Pyx_GIVEREF(__pyx_v_key);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_key);
    __Pyx_INCREF(__pyx_v_defaultvalue);
    __Pyx_GIVEREF(__pyx_v_defaultvalue);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_defaultvalue);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":86
 *         defaultvalue = self.default_factory()
 *         self.__setitem__(key, defaultvalue)
 *         return defaultvalue             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_defaultvalue);
  __pyx_r = __pyx_v_defaultvalue;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":80
 *             return self.__missing__(key)
 * 
 *     def __missing__(self, key):             # <<<<<<<<<<<<<<
 *         if self.default_factory is None:
 *             raise KeyError(key)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.WeakKeyDefaultDict.__missing__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_defaultvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":92
 * # Functions
 * #
 * cdef void sepol_logging_callback(void *varg, sepol.sepol_handle_t * sh, const char *fmt, ...):             # <<<<<<<<<<<<<<
 *     """Python logging for sepol log callback."""
 *     cdef:
 */

static void __pyx_f_7setools_9policyrep_sepol_logging_callback(CYTHON_UNUSED void *__pyx_v_varg, CYTHON_UNUSED sepol_handle_t *__pyx_v_sh, char const *__pyx_v_fmt, ...) {
  va_list __pyx_v_args;
  char *__pyx_v_msg;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sepol_logging_callback", 0);

  /* "setools/policyrep/util.pxi":98
 *         char *msg
 * 
 *     va_start(args, fmt)             # <<<<<<<<<<<<<<
 *     if vasprintf(&msg, fmt, args) < 0:
 *         raise MemoryError
 */
  va_start(__pyx_v_args, __pyx_v_fmt);

  /* "setools/policyrep/util.pxi":99
 * 
 *     va_start(args, fmt)
 *     if vasprintf(&msg, fmt, args) < 0:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 *     va_end(args)
 */
  __pyx_t_1 = ((vasprintf((&__pyx_v_msg), __pyx_v_fmt, __pyx_v_args) < 0) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":100
 *     va_start(args, fmt)
 *     if vasprintf(&msg, fmt, args) < 0:
 *         raise MemoryError             # <<<<<<<<<<<<<<
 *     va_end(args)
 * 
 */
    PyErr_NoMemory(); __PYX_ERR(0, 100, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":99
 * 
 *     va_start(args, fmt)
 *     if vasprintf(&msg, fmt, args) < 0:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 *     va_end(args)
 */
  }

  /* "setools/policyrep/util.pxi":101
 *     if vasprintf(&msg, fmt, args) < 0:
 *         raise MemoryError
 *     va_end(args)             # <<<<<<<<<<<<<<
 * 
 *     logging.getLogger("libsepol").debug(msg)
 */
  va_end(__pyx_v_args);

  /* "setools/policyrep/util.pxi":103
 *     va_end(args)
 * 
 *     logging.getLogger("libsepol").debug(msg)             # <<<<<<<<<<<<<<
 *     free(msg)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_logging); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 103, __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 && unlikely(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_n_u_libsepol) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_u_libsepol);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 103, __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_debug); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyStr_FromString(__pyx_v_msg); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __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_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":104
 * 
 *     logging.getLogger("libsepol").debug(msg)
 *     free(msg)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  free(__pyx_v_msg);

  /* "setools/policyrep/util.pxi":92
 * # Functions
 * #
 * cdef void sepol_logging_callback(void *varg, sepol.sepol_handle_t * sh, const char *fmt, ...):             # <<<<<<<<<<<<<<
 *     """Python logging for sepol log callback."""
 *     cdef:
 */

  /* function exit code */
  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_WriteUnraisable("setools.policyrep.sepol_logging_callback", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "setools/policyrep/util.pxi":107
 * 
 * 
 * cdef void ebitmap_set_bit(sepol.ebitmap_t * e, unsigned int bit, int value):             # <<<<<<<<<<<<<<
 *     """
 *     Set a specific bit value in an ebitmap.
 */

static void __pyx_f_7setools_9policyrep_ebitmap_set_bit(ebitmap_t *__pyx_v_e, unsigned int __pyx_v_bit, int __pyx_v_value) {
  ebitmap_node_t *__pyx_v_n;
  ebitmap_node_t *__pyx_v_prev;
  ebitmap_node_t *__pyx_v_new;
  uint32_t __pyx_v_startbit;
  uint32_t __pyx_v_highbit;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  ebitmap_node_t *__pyx_t_8;
  int __pyx_t_9;
  struct ebitmap_node *__pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ebitmap_set_bit", 0);

  /* "setools/policyrep/util.pxi":118
 *         sepol.ebitmap_node_t *prev
 *         sepol.ebitmap_node_t *new
 *         uint32_t startbit = bit & ~(sepol.MAPSIZE - 1)             # <<<<<<<<<<<<<<
 *         uint32_t highbit = startbit + sepol.MAPSIZE
 * 
 */
  __pyx_v_startbit = (__pyx_v_bit & (~(MAPSIZE - 1)));

  /* "setools/policyrep/util.pxi":119
 *         sepol.ebitmap_node_t *new
 *         uint32_t startbit = bit & ~(sepol.MAPSIZE - 1)
 *         uint32_t highbit = startbit + sepol.MAPSIZE             # <<<<<<<<<<<<<<
 * 
 *     if highbit == 0:
 */
  __pyx_v_highbit = (__pyx_v_startbit + MAPSIZE);

  /* "setools/policyrep/util.pxi":121
 *         uint32_t highbit = startbit + sepol.MAPSIZE
 * 
 *     if highbit == 0:             # <<<<<<<<<<<<<<
 *         raise LowLevelPolicyError("Bitmap overflow, bit {0:#06x}".format(bit))
 * 
 */
  __pyx_t_1 = ((__pyx_v_highbit == 0) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":122
 * 
 *     if highbit == 0:
 *         raise LowLevelPolicyError("Bitmap overflow, bit {0:#06x}".format(bit))             # <<<<<<<<<<<<<<
 * 
 *     prev = NULL
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Bitmap_overflow_bit_0_06x, __pyx_n_s_format_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_bit); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 122, __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 && 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_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 122, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 122, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":121
 *         uint32_t highbit = startbit + sepol.MAPSIZE
 * 
 *     if highbit == 0:             # <<<<<<<<<<<<<<
 *         raise LowLevelPolicyError("Bitmap overflow, bit {0:#06x}".format(bit))
 * 
 */
  }

  /* "setools/policyrep/util.pxi":124
 *         raise LowLevelPolicyError("Bitmap overflow, bit {0:#06x}".format(bit))
 * 
 *     prev = NULL             # <<<<<<<<<<<<<<
 *     n = e.node;
 *     while n and n.startbit <= bit:
 */
  __pyx_v_prev = NULL;

  /* "setools/policyrep/util.pxi":125
 * 
 *     prev = NULL
 *     n = e.node;             # <<<<<<<<<<<<<<
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 */
  __pyx_t_8 = __pyx_v_e->node;
  __pyx_v_n = __pyx_t_8;

  /* "setools/policyrep/util.pxi":126
 *     prev = NULL
 *     n = e.node;
 *     while n and n.startbit <= bit:             # <<<<<<<<<<<<<<
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 *             if value:
 */
  while (1) {
    __pyx_t_9 = (__pyx_v_n != 0);
    if (__pyx_t_9) {
    } else {
      __pyx_t_1 = __pyx_t_9;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_9 = ((__pyx_v_n->startbit <= __pyx_v_bit) != 0);
    __pyx_t_1 = __pyx_t_9;
    __pyx_L6_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/util.pxi":127
 *     n = e.node;
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:             # <<<<<<<<<<<<<<
 *             if value:
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
 */
    __pyx_t_1 = (((__pyx_v_n->startbit + MAPSIZE) > __pyx_v_bit) != 0);
    if (__pyx_t_1) {

      /* "setools/policyrep/util.pxi":128
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 *             if value:             # <<<<<<<<<<<<<<
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
 *             else:
 */
      __pyx_t_1 = (__pyx_v_value != 0);
      if (__pyx_t_1) {

        /* "setools/policyrep/util.pxi":129
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 *             if value:
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)             # <<<<<<<<<<<<<<
 *             else:
 *                 n.map &= ~(sepol.MAPBIT << (bit - n.startbit))
 */
        __pyx_v_n->map = (__pyx_v_n->map | (MAPBIT << (__pyx_v_bit - __pyx_v_n->startbit)));

        /* "setools/policyrep/util.pxi":128
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:
 *             if value:             # <<<<<<<<<<<<<<
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
 *             else:
 */
        goto __pyx_L9;
      }

      /* "setools/policyrep/util.pxi":131
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
 *             else:
 *                 n.map &= ~(sepol.MAPBIT << (bit - n.startbit))             # <<<<<<<<<<<<<<
 *                 if not n.map:
 *                     # drop this node from the bitmap
 */
      /*else*/ {
        __pyx_v_n->map = (__pyx_v_n->map & (~(MAPBIT << (__pyx_v_bit - __pyx_v_n->startbit))));

        /* "setools/policyrep/util.pxi":132
 *             else:
 *                 n.map &= ~(sepol.MAPBIT << (bit - n.startbit))
 *                 if not n.map:             # <<<<<<<<<<<<<<
 *                     # drop this node from the bitmap
 * 
 */
        __pyx_t_1 = ((!(__pyx_v_n->map != 0)) != 0);
        if (__pyx_t_1) {

          /* "setools/policyrep/util.pxi":135
 *                     # drop this node from the bitmap
 * 
 *                     if not n.next:             # <<<<<<<<<<<<<<
 *                         # this was the highest map
 *                         # within the bitmap
 */
          __pyx_t_1 = ((!(__pyx_v_n->next != 0)) != 0);
          if (__pyx_t_1) {

            /* "setools/policyrep/util.pxi":138
 *                         # this was the highest map
 *                         # within the bitmap
 *                         if prev:             # <<<<<<<<<<<<<<
 *                                 e.highbit = prev.startbit + sepol.MAPSIZE
 *                         else:
 */
            __pyx_t_1 = (__pyx_v_prev != 0);
            if (__pyx_t_1) {

              /* "setools/policyrep/util.pxi":139
 *                         # within the bitmap
 *                         if prev:
 *                                 e.highbit = prev.startbit + sepol.MAPSIZE             # <<<<<<<<<<<<<<
 *                         else:
 *                                 e.highbit = 0
 */
              __pyx_v_e->highbit = (__pyx_v_prev->startbit + MAPSIZE);

              /* "setools/policyrep/util.pxi":138
 *                         # this was the highest map
 *                         # within the bitmap
 *                         if prev:             # <<<<<<<<<<<<<<
 *                                 e.highbit = prev.startbit + sepol.MAPSIZE
 *                         else:
 */
              goto __pyx_L12;
            }

            /* "setools/policyrep/util.pxi":141
 *                                 e.highbit = prev.startbit + sepol.MAPSIZE
 *                         else:
 *                                 e.highbit = 0             # <<<<<<<<<<<<<<
 * 
 *                     if prev:
 */
            /*else*/ {
              __pyx_v_e->highbit = 0;
            }
            __pyx_L12:;

            /* "setools/policyrep/util.pxi":135
 *                     # drop this node from the bitmap
 * 
 *                     if not n.next:             # <<<<<<<<<<<<<<
 *                         # this was the highest map
 *                         # within the bitmap
 */
          }

          /* "setools/policyrep/util.pxi":143
 *                                 e.highbit = 0
 * 
 *                     if prev:             # <<<<<<<<<<<<<<
 *                         prev.next = n.next
 *                     else:
 */
          __pyx_t_1 = (__pyx_v_prev != 0);
          if (__pyx_t_1) {

            /* "setools/policyrep/util.pxi":144
 * 
 *                     if prev:
 *                         prev.next = n.next             # <<<<<<<<<<<<<<
 *                     else:
 *                         e.node = n.next
 */
            __pyx_t_10 = __pyx_v_n->next;
            __pyx_v_prev->next = __pyx_t_10;

            /* "setools/policyrep/util.pxi":143
 *                                 e.highbit = 0
 * 
 *                     if prev:             # <<<<<<<<<<<<<<
 *                         prev.next = n.next
 *                     else:
 */
            goto __pyx_L13;
          }

          /* "setools/policyrep/util.pxi":146
 *                         prev.next = n.next
 *                     else:
 *                         e.node = n.next             # <<<<<<<<<<<<<<
 * 
 *                     free(n)
 */
          /*else*/ {
            __pyx_t_10 = __pyx_v_n->next;
            __pyx_v_e->node = __pyx_t_10;
          }
          __pyx_L13:;

          /* "setools/policyrep/util.pxi":148
 *                         e.node = n.next
 * 
 *                     free(n)             # <<<<<<<<<<<<<<
 * 
 *             return
 */
          free(__pyx_v_n);

          /* "setools/policyrep/util.pxi":132
 *             else:
 *                 n.map &= ~(sepol.MAPBIT << (bit - n.startbit))
 *                 if not n.map:             # <<<<<<<<<<<<<<
 *                     # drop this node from the bitmap
 * 
 */
        }
      }
      __pyx_L9:;

      /* "setools/policyrep/util.pxi":150
 *                     free(n)
 * 
 *             return             # <<<<<<<<<<<<<<
 * 
 *         prev = n
 */
      goto __pyx_L0;

      /* "setools/policyrep/util.pxi":127
 *     n = e.node;
 *     while n and n.startbit <= bit:
 *         if (n.startbit + sepol.MAPSIZE) > bit:             # <<<<<<<<<<<<<<
 *             if value:
 *                 n.map |= sepol.MAPBIT << (bit - n.startbit)
 */
    }

    /* "setools/policyrep/util.pxi":152
 *             return
 * 
 *         prev = n             # <<<<<<<<<<<<<<
 *         n = n.next
 * 
 */
    __pyx_v_prev = __pyx_v_n;

    /* "setools/policyrep/util.pxi":153
 * 
 *         prev = n
 *         n = n.next             # <<<<<<<<<<<<<<
 * 
 *     if not value:
 */
    __pyx_t_10 = __pyx_v_n->next;
    __pyx_v_n = __pyx_t_10;
  }

  /* "setools/policyrep/util.pxi":155
 *         n = n.next
 * 
 *     if not value:             # <<<<<<<<<<<<<<
 *         return
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_value != 0)) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/util.pxi":156
 * 
 *     if not value:
 *         return             # <<<<<<<<<<<<<<
 * 
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))
 */
    goto __pyx_L0;

    /* "setools/policyrep/util.pxi":155
 *         n = n.next
 * 
 *     if not value:             # <<<<<<<<<<<<<<
 *         return
 * 
 */
  }

  /* "setools/policyrep/util.pxi":158
 *         return
 * 
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))             # <<<<<<<<<<<<<<
 *     if new == NULL:
 *         raise MemoryError
 */
  __pyx_v_new = ((ebitmap_node_t *)calloc(1, (sizeof(ebitmap_node_t))));

  /* "setools/policyrep/util.pxi":159
 * 
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))
 *     if new == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 * 
 */
  __pyx_t_1 = ((__pyx_v_new == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":160
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))
 *     if new == NULL:
 *         raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *     new.startbit = startbit;
 */
    PyErr_NoMemory(); __PYX_ERR(0, 160, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":159
 * 
 *     new = <sepol.ebitmap_node_t*>calloc(1, sizeof(sepol.ebitmap_node_t))
 *     if new == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/util.pxi":162
 *         raise MemoryError
 * 
 *     new.startbit = startbit;             # <<<<<<<<<<<<<<
 *     new.map = sepol.MAPBIT << (bit - new.startbit)
 * 
 */
  __pyx_v_new->startbit = __pyx_v_startbit;

  /* "setools/policyrep/util.pxi":163
 * 
 *     new.startbit = startbit;
 *     new.map = sepol.MAPBIT << (bit - new.startbit)             # <<<<<<<<<<<<<<
 * 
 *     if not n:
 */
  __pyx_v_new->map = (MAPBIT << (__pyx_v_bit - __pyx_v_new->startbit));

  /* "setools/policyrep/util.pxi":165
 *     new.map = sepol.MAPBIT << (bit - new.startbit)
 * 
 *     if not n:             # <<<<<<<<<<<<<<
 *         # this node will be the highest map within the bitmap
 *         e.highbit = highbit
 */
  __pyx_t_1 = ((!(__pyx_v_n != 0)) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/util.pxi":167
 *     if not n:
 *         # this node will be the highest map within the bitmap
 *         e.highbit = highbit             # <<<<<<<<<<<<<<
 * 
 *     if prev:
 */
    __pyx_v_e->highbit = __pyx_v_highbit;

    /* "setools/policyrep/util.pxi":165
 *     new.map = sepol.MAPBIT << (bit - new.startbit)
 * 
 *     if not n:             # <<<<<<<<<<<<<<
 *         # this node will be the highest map within the bitmap
 *         e.highbit = highbit
 */
  }

  /* "setools/policyrep/util.pxi":169
 *         e.highbit = highbit
 * 
 *     if prev:             # <<<<<<<<<<<<<<
 *         new.next = prev.next
 *         prev.next = new
 */
  __pyx_t_1 = (__pyx_v_prev != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/util.pxi":170
 * 
 *     if prev:
 *         new.next = prev.next             # <<<<<<<<<<<<<<
 *         prev.next = new
 *     else:
 */
    __pyx_t_10 = __pyx_v_prev->next;
    __pyx_v_new->next = __pyx_t_10;

    /* "setools/policyrep/util.pxi":171
 *     if prev:
 *         new.next = prev.next
 *         prev.next = new             # <<<<<<<<<<<<<<
 *     else:
 *         new.next = e.node
 */
    __pyx_v_prev->next = __pyx_v_new;

    /* "setools/policyrep/util.pxi":169
 *         e.highbit = highbit
 * 
 *     if prev:             # <<<<<<<<<<<<<<
 *         new.next = prev.next
 *         prev.next = new
 */
    goto __pyx_L17;
  }

  /* "setools/policyrep/util.pxi":173
 *         prev.next = new
 *     else:
 *         new.next = e.node             # <<<<<<<<<<<<<<
 *         e.node = new
 * 
 */
  /*else*/ {
    __pyx_t_8 = __pyx_v_e->node;
    __pyx_v_new->next = __pyx_t_8;

    /* "setools/policyrep/util.pxi":174
 *     else:
 *         new.next = e.node
 *         e.node = new             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_v_e->node = __pyx_v_new;
  }
  __pyx_L17:;

  /* "setools/policyrep/util.pxi":107
 * 
 * 
 * cdef void ebitmap_set_bit(sepol.ebitmap_t * e, unsigned int bit, int value):             # <<<<<<<<<<<<<<
 *     """
 *     Set a specific bit value in an ebitmap.
 */

  /* function exit code */
  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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_WriteUnraisable("setools.policyrep.ebitmap_set_bit", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "setools/policyrep/util.pxi":177
 * 
 * 
 * cdef int hashtab_insert(sepol.hashtab_t h, sepol.hashtab_key_t key, sepol.hashtab_datum_t datum):             # <<<<<<<<<<<<<<
 *     """
 *     Insert a node into a hash table.
 */

static int __pyx_f_7setools_9policyrep_hashtab_insert(hashtab_t __pyx_v_h, hashtab_key_t __pyx_v_key, hashtab_datum_t __pyx_v_datum) {
  int __pyx_v_hvalue;
  hashtab_ptr_t __pyx_v_prev;
  hashtab_ptr_t __pyx_v_cur;
  hashtab_ptr_t __pyx_v_newnode;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  struct hashtab_node *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hashtab_insert", 0);

  /* "setools/policyrep/util.pxi":188
 *         sepol.hashtab_ptr_t prev, cur, newnode
 * 
 *     hvalue = h.hash_value(h, key)             # <<<<<<<<<<<<<<
 *     prev = NULL
 *     cur = h.htable[hvalue]
 */
  __pyx_v_hvalue = __pyx_v_h->hash_value(__pyx_v_h, __pyx_v_key);

  /* "setools/policyrep/util.pxi":189
 * 
 *     hvalue = h.hash_value(h, key)
 *     prev = NULL             # <<<<<<<<<<<<<<
 *     cur = h.htable[hvalue]
 *     while cur and h.keycmp(h, key, cur.key) > 0:
 */
  __pyx_v_prev = NULL;

  /* "setools/policyrep/util.pxi":190
 *     hvalue = h.hash_value(h, key)
 *     prev = NULL
 *     cur = h.htable[hvalue]             # <<<<<<<<<<<<<<
 *     while cur and h.keycmp(h, key, cur.key) > 0:
 *         prev = cur
 */
  __pyx_v_cur = (__pyx_v_h->htable[__pyx_v_hvalue]);

  /* "setools/policyrep/util.pxi":191
 *     prev = NULL
 *     cur = h.htable[hvalue]
 *     while cur and h.keycmp(h, key, cur.key) > 0:             # <<<<<<<<<<<<<<
 *         prev = cur
 *         cur = cur.next
 */
  while (1) {
    __pyx_t_2 = (__pyx_v_cur != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_h->keycmp(__pyx_v_h, __pyx_v_key, __pyx_v_cur->key) > 0) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/util.pxi":192
 *     cur = h.htable[hvalue]
 *     while cur and h.keycmp(h, key, cur.key) > 0:
 *         prev = cur             # <<<<<<<<<<<<<<
 *         cur = cur.next
 * 
 */
    __pyx_v_prev = __pyx_v_cur;

    /* "setools/policyrep/util.pxi":193
 *     while cur and h.keycmp(h, key, cur.key) > 0:
 *         prev = cur
 *         cur = cur.next             # <<<<<<<<<<<<<<
 * 
 *     if cur and h.keycmp(h, key, cur.key) == 0:
 */
    __pyx_t_3 = __pyx_v_cur->next;
    __pyx_v_cur = __pyx_t_3;
  }

  /* "setools/policyrep/util.pxi":195
 *         cur = cur.next
 * 
 *     if cur and h.keycmp(h, key, cur.key) == 0:             # <<<<<<<<<<<<<<
 *         raise LowLevelPolicyError("Error inserting into hash table.  Key already exists.")
 * 
 */
  __pyx_t_2 = (__pyx_v_cur != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_h->keycmp(__pyx_v_h, __pyx_v_key, __pyx_v_cur->key) == 0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L8_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":196
 * 
 *     if cur and h.keycmp(h, key, cur.key) == 0:
 *         raise LowLevelPolicyError("Error inserting into hash table.  Key already exists.")             # <<<<<<<<<<<<<<
 * 
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_u_Error_inserting_into_hash_table) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_u_Error_inserting_into_hash_table);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 196, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 196, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":195
 *         cur = cur.next
 * 
 *     if cur and h.keycmp(h, key, cur.key) == 0:             # <<<<<<<<<<<<<<
 *         raise LowLevelPolicyError("Error inserting into hash table.  Key already exists.")
 * 
 */
  }

  /* "setools/policyrep/util.pxi":198
 *         raise LowLevelPolicyError("Error inserting into hash table.  Key already exists.")
 * 
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))             # <<<<<<<<<<<<<<
 *     if newnode == NULL:
 *         raise MemoryError
 */
  __pyx_v_newnode = ((hashtab_ptr_t)calloc(1, (sizeof(hashtab_node_t))));

  /* "setools/policyrep/util.pxi":199
 * 
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))
 *     if newnode == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 * 
 */
  __pyx_t_1 = ((__pyx_v_newnode == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/util.pxi":200
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))
 *     if newnode == NULL:
 *         raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *     newnode.key = key;
 */
    PyErr_NoMemory(); __PYX_ERR(0, 200, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":199
 * 
 *     newnode = <sepol.hashtab_ptr_t> calloc(1, sizeof(sepol.hashtab_node_t))
 *     if newnode == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/util.pxi":202
 *         raise MemoryError
 * 
 *     newnode.key = key;             # <<<<<<<<<<<<<<
 *     newnode.datum = datum;
 *     if prev:
 */
  __pyx_v_newnode->key = __pyx_v_key;

  /* "setools/policyrep/util.pxi":203
 * 
 *     newnode.key = key;
 *     newnode.datum = datum;             # <<<<<<<<<<<<<<
 *     if prev:
 *         newnode.next = prev.next
 */
  __pyx_v_newnode->datum = __pyx_v_datum;

  /* "setools/policyrep/util.pxi":204
 *     newnode.key = key;
 *     newnode.datum = datum;
 *     if prev:             # <<<<<<<<<<<<<<
 *         newnode.next = prev.next
 *         prev.next = newnode
 */
  __pyx_t_1 = (__pyx_v_prev != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/util.pxi":205
 *     newnode.datum = datum;
 *     if prev:
 *         newnode.next = prev.next             # <<<<<<<<<<<<<<
 *         prev.next = newnode
 *     else:
 */
    __pyx_t_3 = __pyx_v_prev->next;
    __pyx_v_newnode->next = __pyx_t_3;

    /* "setools/policyrep/util.pxi":206
 *     if prev:
 *         newnode.next = prev.next
 *         prev.next = newnode             # <<<<<<<<<<<<<<
 *     else:
 *         newnode.next = h.htable[hvalue]
 */
    __pyx_v_prev->next = __pyx_v_newnode;

    /* "setools/policyrep/util.pxi":204
 *     newnode.key = key;
 *     newnode.datum = datum;
 *     if prev:             # <<<<<<<<<<<<<<
 *         newnode.next = prev.next
 *         prev.next = newnode
 */
    goto __pyx_L11;
  }

  /* "setools/policyrep/util.pxi":208
 *         prev.next = newnode
 *     else:
 *         newnode.next = h.htable[hvalue]             # <<<<<<<<<<<<<<
 *         h.htable[hvalue] = newnode
 * 
 */
  /*else*/ {
    __pyx_v_newnode->next = (__pyx_v_h->htable[__pyx_v_hvalue]);

    /* "setools/policyrep/util.pxi":209
 *     else:
 *         newnode.next = h.htable[hvalue]
 *         h.htable[hvalue] = newnode             # <<<<<<<<<<<<<<
 * 
 *     h.nel += 1
 */
    (__pyx_v_h->htable[__pyx_v_hvalue]) = __pyx_v_newnode;
  }
  __pyx_L11:;

  /* "setools/policyrep/util.pxi":211
 *         h.htable[hvalue] = newnode
 * 
 *     h.nel += 1             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_h->nel = (__pyx_v_h->nel + 1);

  /* "setools/policyrep/util.pxi":177
 * 
 * 
 * cdef int hashtab_insert(sepol.hashtab_t h, sepol.hashtab_key_t key, sepol.hashtab_datum_t datum):             # <<<<<<<<<<<<<<
 *     """
 *     Insert a node into a hash table.
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_WriteUnraisable("setools.policyrep.hashtab_insert", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":214
 * 
 * 
 * cdef flatten_list(input_list):             # <<<<<<<<<<<<<<
 *     """
 *     Flatten a list with nested lists.
 */

static PyObject *__pyx_f_7setools_9policyrep_flatten_list(PyObject *__pyx_v_input_list) {
  PyObject *__pyx_v_ret = 0;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("flatten_list", 0);

  /* "setools/policyrep/util.pxi":224
 *     [A, B, D, E, C]
 *     """
 *     cdef list ret = []             # <<<<<<<<<<<<<<
 * 
 *     for i in input_list:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ret = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":226
 *     cdef list ret = []
 * 
 *     for i in input_list:             # <<<<<<<<<<<<<<
 *         if isinstance(i, list):
 *             ret.extend(flatten_list(i))
 */
  if (likely(PyList_CheckExact(__pyx_v_input_list)) || PyTuple_CheckExact(__pyx_v_input_list)) {
    __pyx_t_1 = __pyx_v_input_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 226, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 226, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 226, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 226, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 226, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      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, 226, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "setools/policyrep/util.pxi":227
 * 
 *     for i in input_list:
 *         if isinstance(i, list):             # <<<<<<<<<<<<<<
 *             ret.extend(flatten_list(i))
 *         else:
 */
    __pyx_t_5 = PyList_Check(__pyx_v_i); 
    __pyx_t_6 = (__pyx_t_5 != 0);
    if (__pyx_t_6) {

      /* "setools/policyrep/util.pxi":228
 *     for i in input_list:
 *         if isinstance(i, list):
 *             ret.extend(flatten_list(i))             # <<<<<<<<<<<<<<
 *         else:
 *             ret.append(i)
 */
      __pyx_t_4 = __pyx_f_7setools_9policyrep_flatten_list(__pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_PyList_Extend(__pyx_v_ret, __pyx_t_4); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 228, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "setools/policyrep/util.pxi":227
 * 
 *     for i in input_list:
 *         if isinstance(i, list):             # <<<<<<<<<<<<<<
 *             ret.extend(flatten_list(i))
 *         else:
 */
      goto __pyx_L5;
    }

    /* "setools/policyrep/util.pxi":230
 *             ret.extend(flatten_list(i))
 *         else:
 *             ret.append(i)             # <<<<<<<<<<<<<<
 * 
 *     return ret
 */
    /*else*/ {
      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_v_i); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 230, __pyx_L1_error)
    }
    __pyx_L5:;

    /* "setools/policyrep/util.pxi":226
 *     cdef list ret = []
 * 
 *     for i in input_list:             # <<<<<<<<<<<<<<
 *         if isinstance(i, list):
 *             ret.extend(flatten_list(i))
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":232
 *             ret.append(i)
 * 
 *     return ret             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":214
 * 
 * 
 * cdef flatten_list(input_list):             # <<<<<<<<<<<<<<
 *     """
 *     Flatten a list with nested lists.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.flatten_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/util.pxi":235
 * 
 * 
 * def lookup_boolean_name_sub(name):             # <<<<<<<<<<<<<<
 *     """
 *     Read the /etc/selinux/TYPE/booleans.subs_dist file looking
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_1lookup_boolean_name_sub(PyObject *__pyx_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_7setools_9policyrep_lookup_boolean_name_sub[] = "\n    Read the /etc/selinux/TYPE/booleans.subs_dist file looking\n    for a record with 'name'.\n    Return the translated name if a corresponding substitution exists,\n    otherwise return the original name.\n    ";
static PyMethodDef __pyx_mdef_7setools_9policyrep_1lookup_boolean_name_sub = {"lookup_boolean_name_sub", (PyCFunction)__pyx_pw_7setools_9policyrep_1lookup_boolean_name_sub, METH_O, __pyx_doc_7setools_9policyrep_lookup_boolean_name_sub};
static PyObject *__pyx_pw_7setools_9policyrep_1lookup_boolean_name_sub(PyObject *__pyx_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_boolean_name_sub (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_lookup_boolean_name_sub(__pyx_self, ((PyObject *)__pyx_v_name));

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

static PyObject *__pyx_pf_7setools_9policyrep_lookup_boolean_name_sub(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) {
  char *__pyx_v__name;
  PyObject *__pyx_v_new_name = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  char const *__pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_boolean_name_sub", 0);

  /* "setools/policyrep/util.pxi":243
 *     """
 *     cdef:
 *         char *_name = selinux.selinux_boolean_sub(name)             # <<<<<<<<<<<<<<
 *         str new_name = name
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L1_error)
  __pyx_v__name = selinux_boolean_sub(__pyx_t_1);

  /* "setools/policyrep/util.pxi":244
 *     cdef:
 *         char *_name = selinux.selinux_boolean_sub(name)
 *         str new_name = name             # <<<<<<<<<<<<<<
 * 
 *     if _name == NULL:
 */
  if (!(likely(PyUnicode_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_name)->tp_name), 0))) __PYX_ERR(0, 244, __pyx_L1_error)
  __pyx_t_2 = __pyx_v_name;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_new_name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/util.pxi":246
 *         str new_name = name
 * 
 *     if _name == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 *     # cast "char *" to "str" and free
 */
  __pyx_t_3 = ((__pyx_v__name == NULL) != 0);
  if (unlikely(__pyx_t_3)) {

    /* "setools/policyrep/util.pxi":247
 * 
 *     if _name == NULL:
 *         raise MemoryError             # <<<<<<<<<<<<<<
 *     # cast "char *" to "str" and free
 *     try:
 */
    PyErr_NoMemory(); __PYX_ERR(0, 247, __pyx_L1_error)

    /* "setools/policyrep/util.pxi":246
 *         str new_name = name
 * 
 *     if _name == NULL:             # <<<<<<<<<<<<<<
 *         raise MemoryError
 *     # cast "char *" to "str" and free
 */
  }

  /* "setools/policyrep/util.pxi":249
 *         raise MemoryError
 *     # cast "char *" to "str" and free
 *     try:             # <<<<<<<<<<<<<<
 *         new_name = _name
 *     finally:
 */
  /*try:*/ {

    /* "setools/policyrep/util.pxi":250
 *     # cast "char *" to "str" and free
 *     try:
 *         new_name = _name             # <<<<<<<<<<<<<<
 *     finally:
 *         free(_name)
 */
    __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v__name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_new_name, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;
  }

  /* "setools/policyrep/util.pxi":252
 *         new_name = _name
 *     finally:
 *         free(_name)             # <<<<<<<<<<<<<<
 * 
 *     return new_name
 */
  /*finally:*/ {
    /*normal exit:*/{
      free(__pyx_v__name);
      goto __pyx_L6;
    }
    __pyx_L5_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename;
      {
        free(__pyx_v__name);
      }
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_10);
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
      __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6;
      goto __pyx_L1_error;
    }
    __pyx_L6:;
  }

  /* "setools/policyrep/util.pxi":254
 *         free(_name)
 * 
 *     return new_name             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_new_name);
  __pyx_r = __pyx_v_new_name;
  goto __pyx_L0;

  /* "setools/policyrep/util.pxi":235
 * 
 * 
 * def lookup_boolean_name_sub(name):             # <<<<<<<<<<<<<<
 *     """
 *     Read the /etc/selinux/TYPE/booleans.subs_dist file looking
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.lookup_boolean_name_sub", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_new_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":35
 * 
 *     @staticmethod
 *     cdef inline Boolean factory(SELinuxPolicy policy, sepol.cond_bool_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Boolean objects."""
 *         cdef Boolean b = Boolean.__new__(Boolean)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_f_7setools_9policyrep_7Boolean_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_bool_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_b = 0;
  struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":37
 *     cdef inline Boolean factory(SELinuxPolicy policy, sepol.cond_bool_datum_t *symbol):
 *         """Factory function for creating Boolean objects."""
 *         cdef Boolean b = Boolean.__new__(Boolean)             # <<<<<<<<<<<<<<
 *         b.policy = policy
 *         b.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Boolean(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Boolean), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 37, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_b = ((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":38
 *         """Factory function for creating Boolean objects."""
 *         cdef Boolean b = Boolean.__new__(Boolean)
 *         b.policy = policy             # <<<<<<<<<<<<<<
 *         b.key = <uintptr_t>symbol
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_b->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_b->__pyx_base.__pyx_base.policy));
  __pyx_v_b->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":39
 *         cdef Boolean b = Boolean.__new__(Boolean)
 *         b.policy = policy
 *         b.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)
 *         b.state = <bint>symbol.state
 */
  __pyx_v_b->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/boolcond.pxi":40
 *         b.policy = policy
 *         b.key = <uintptr_t>symbol
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *         b.state = <bint>symbol.state
 *         return b
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_b->__pyx_base.name);
  __Pyx_DECREF(__pyx_v_b->__pyx_base.name);
  __pyx_v_b->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":41
 *         b.key = <uintptr_t>symbol
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)
 *         b.state = <bint>symbol.state             # <<<<<<<<<<<<<<
 *         return b
 * 
 */
  __pyx_v_b->state = (__pyx_v_symbol->state != 0);

  /* "setools/policyrep/boolcond.pxi":42
 *         b.name = policy.boolean_value_to_name(symbol.s.value - 1)
 *         b.state = <bint>symbol.state
 *         return b             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_b));
  __pyx_r = __pyx_v_b;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":35
 * 
 *     @staticmethod
 *     cdef inline Boolean factory(SELinuxPolicy policy, sepol.cond_bool_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Boolean objects."""
 *         cdef Boolean b = Boolean.__new__(Boolean)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Boolean.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_b);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":44
 *         return b
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """The policy statement."""
 *         return "bool {0} {1};".format(self.name, str(self.state).lower())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_7Boolean_statement[] = "The policy statement.";
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Boolean_statement(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_statement(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/boolcond.pxi":46
 *     def statement(self):
 *         """The policy statement."""
 *         return "bool {0} {1};".format(self.name, str(self.state).lower())             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_bool_0_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_self->state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 46, __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_lower); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 46, __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_3 = (__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_3)) __PYX_ERR(1, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  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_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_self->__pyx_base.name, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 46, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __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_v_self->__pyx_base.name, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 46, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 46, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
    __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_self->__pyx_base.name);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 46, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":44
 *         return b
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """The policy statement."""
 *         return "bool {0} {1};".format(self.name, str(self.state).lower())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Boolean.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":32
 *     """A Boolean."""
 * 
 *     cdef readonly bint state             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_5state_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_5state_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Boolean_5state___get__(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_5state___get__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->state); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 32, __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("setools.policyrep.Boolean.state.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Boolean_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy, self.state)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->state); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy, self.state)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy, self.state)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy, self.state)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    __pyx_t_5 = __pyx_t_4;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Boolean); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_105072095);
    __Pyx_GIVEREF(__pyx_int_105072095);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_105072095);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, None), state
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Boolean); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_105072095);
    __Pyx_GIVEREF(__pyx_int_105072095);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_105072095);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Boolean.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Boolean_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Boolean_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Boolean_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Boolean__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Boolean, (type(self), 0x64345df, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Boolean__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Boolean.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":58
 * 
 *     @staticmethod
 *     cdef inline Conditional factory(SELinuxPolicy policy, sepol.cond_node_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Conditional objects."""
 *         cdef:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_f_7setools_9policyrep_11Conditional_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_node_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_c = 0;
  PyObject *__pyx_v_booleans = 0;
  PyObject *__pyx_v_n = NULL;
  struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":64
 *             list booleans
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/boolcond.pxi":65
 * 
 *         try:
 *             return _cond_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             c = Conditional.__new__(Conditional)
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__cond_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 65, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 65, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(1, 65, __pyx_L3_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/boolcond.pxi":64
 *             list booleans
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/boolcond.pxi":66
 *         try:
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             c = Conditional.__new__(Conditional)
 *             _cond_cache[policy][<uintptr_t>symbol] = c
 */
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.Conditional.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(1, 66, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_7);

      /* "setools/policyrep/boolcond.pxi":67
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             c = Conditional.__new__(Conditional)             # <<<<<<<<<<<<<<
 *             _cond_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy
 */
      __pyx_t_8 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Conditional(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Conditional), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 67, __pyx_L5_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/boolcond.pxi":68
 *         except KeyError:
 *             c = Conditional.__new__(Conditional)
 *             _cond_cache[policy][<uintptr_t>symbol] = c             # <<<<<<<<<<<<<<
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 */
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__cond_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 68, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_8, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_c), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(1, 68, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/boolcond.pxi":69
 *             c = Conditional.__new__(Conditional)
 *             _cond_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             c.key = <uintptr_t>symbol
 *             c._postfix_expression = []
 */
      __Pyx_INCREF(((PyObject *)__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.policy));
      __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/boolcond.pxi":70
 *             _cond_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             c._postfix_expression = []
 *             booleans = []
 */
      __pyx_v_c->__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/boolcond.pxi":71
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 *             c._postfix_expression = []             # <<<<<<<<<<<<<<
 *             booleans = []
 * 
 */
      __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 71, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->_postfix_expression);
      __Pyx_DECREF(__pyx_v_c->_postfix_expression);
      __pyx_v_c->_postfix_expression = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/boolcond.pxi":72
 *             c.key = <uintptr_t>symbol
 *             c._postfix_expression = []
 *             booleans = []             # <<<<<<<<<<<<<<
 * 
 *             # Build expression list and boolean attribute
 */
      __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 72, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_v_booleans = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/boolcond.pxi":75
 * 
 *             # Build expression list and boolean attribute
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):             # <<<<<<<<<<<<<<
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):
 */
      __pyx_t_8 = __pyx_f_7setools_9policyrep_23ConditionalExprIterator_factory(__pyx_v_policy, ((cond_expr_t *)__pyx_v_symbol->expr)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 75, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_9 = __pyx_t_8; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 75, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 75, __pyx_L5_except_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_9))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(1, 75, __pyx_L5_except_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 75, __pyx_L5_except_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(1, 75, __pyx_L5_except_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 75, __pyx_L5_except_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_11(__pyx_t_9);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(1, 75, __pyx_L5_except_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_8);
        __pyx_t_8 = 0;

        /* "setools/policyrep/boolcond.pxi":76
 *             # Build expression list and boolean attribute
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):
 *                 c._postfix_expression.append(n)             # <<<<<<<<<<<<<<
 *                 if isinstance(n, Boolean):
 *                     booleans.append(n)
 */
        if (unlikely(__pyx_v_c->_postfix_expression == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(1, 76, __pyx_L5_except_error)
        }
        __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_c->_postfix_expression, __pyx_v_n); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(1, 76, __pyx_L5_except_error)

        /* "setools/policyrep/boolcond.pxi":77
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):             # <<<<<<<<<<<<<<
 *                     booleans.append(n)
 * 
 */
        __pyx_t_13 = __Pyx_TypeCheck(__pyx_v_n, __pyx_ptype_7setools_9policyrep_Boolean); 
        __pyx_t_14 = (__pyx_t_13 != 0);
        if (__pyx_t_14) {

          /* "setools/policyrep/boolcond.pxi":78
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):
 *                     booleans.append(n)             # <<<<<<<<<<<<<<
 * 
 *             c.booleans = frozenset(booleans)
 */
          __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_booleans, __pyx_v_n); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(1, 78, __pyx_L5_except_error)

          /* "setools/policyrep/boolcond.pxi":77
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):             # <<<<<<<<<<<<<<
 *                     booleans.append(n)
 * 
 */
        }

        /* "setools/policyrep/boolcond.pxi":75
 * 
 *             # Build expression list and boolean attribute
 *             for n in ConditionalExprIterator.factory(policy, <sepol.cond_expr_t *>symbol.expr):             # <<<<<<<<<<<<<<
 *                 c._postfix_expression.append(n)
 *                 if isinstance(n, Boolean):
 */
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "setools/policyrep/boolcond.pxi":80
 *                     booleans.append(n)
 * 
 *             c.booleans = frozenset(booleans)             # <<<<<<<<<<<<<<
 *             return c
 * 
 */
      __pyx_t_9 = __Pyx_PyFrozenSet_New(__pyx_v_booleans); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 80, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_GOTREF(__pyx_v_c->booleans);
      __Pyx_DECREF(__pyx_v_c->booleans);
      __pyx_v_c->booleans = ((PyObject*)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/boolcond.pxi":81
 * 
 *             c.booleans = frozenset(booleans)
 *             return c             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_c));
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/boolcond.pxi":64
 *             list booleans
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cond_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/boolcond.pxi":58
 * 
 *     @staticmethod
 *     cdef inline Conditional factory(SELinuxPolicy policy, sepol.cond_node_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Conditional objects."""
 *         cdef:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.Conditional.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_booleans);
  __Pyx_XDECREF(__pyx_v_n);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":83
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return other in self.booleans
 * 
 */

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_11Conditional_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_11Conditional_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional___contains__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static int __pyx_pf_7setools_9policyrep_11Conditional___contains__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/boolcond.pxi":84
 * 
 *     def __contains__(self, other):
 *         return other in self.booleans             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_v_self->booleans, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 84, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":83
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return other in self.booleans
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Conditional.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":86
 *         return other in self.booleans
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         # sepol representation is in postfix notation.  This code
 *         # converts it to infix notation.  Parentheses are added
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_3__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_3__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_2__str__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_2__str__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_v_stack = NULL;
  PyObject *__pyx_v_prev_op_precedence = NULL;
  PyObject *__pyx_v_expr_node = NULL;
  PyObject *__pyx_v_operand = NULL;
  PyObject *__pyx_v_operator = NULL;
  PyObject *__pyx_v_op_precedence = NULL;
  PyObject *__pyx_v_subexpr = NULL;
  PyObject *__pyx_v_operand1 = NULL;
  PyObject *__pyx_v_operand2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/boolcond.pxi":93
 *         # highest precedence (NOT) so if there is a single binary
 *         # operator, no parentheses are output
 *         stack = []             # <<<<<<<<<<<<<<
 *         prev_op_precedence = 5
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stack = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":94
 *         # operator, no parentheses are output
 *         stack = []
 *         prev_op_precedence = 5             # <<<<<<<<<<<<<<
 * 
 *         for expr_node in self.expression():
 */
  __Pyx_INCREF(__pyx_int_5);
  __pyx_v_prev_op_precedence = __pyx_int_5;

  /* "setools/policyrep/boolcond.pxi":96
 *         prev_op_precedence = 5
 * 
 *         for expr_node in self.expression():             # <<<<<<<<<<<<<<
 *             if isinstance(expr_node, Boolean):
 *                 # append the boolean name
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_expression); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 96, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 96, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 96, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 96, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 96, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 96, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_expr_node, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/boolcond.pxi":97
 * 
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):             # <<<<<<<<<<<<<<
 *                 # append the boolean name
 *                 stack.append(str(expr_node))
 */
    __pyx_t_6 = __Pyx_TypeCheck(__pyx_v_expr_node, __pyx_ptype_7setools_9policyrep_Boolean); 
    __pyx_t_7 = (__pyx_t_6 != 0);
    if (__pyx_t_7) {

      /* "setools/policyrep/boolcond.pxi":99
 *             if isinstance(expr_node, Boolean):
 *                 # append the boolean name
 *                 stack.append(str(expr_node))             # <<<<<<<<<<<<<<
 *             elif expr_node.unary:
 *                 operand = stack.pop()
 */
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_expr_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 99, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":97
 * 
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):             # <<<<<<<<<<<<<<
 *                 # append the boolean name
 *                 stack.append(str(expr_node))
 */
      goto __pyx_L5;
    }

    /* "setools/policyrep/boolcond.pxi":100
 *                 # append the boolean name
 *                 stack.append(str(expr_node))
 *             elif expr_node.unary:             # <<<<<<<<<<<<<<
 *                 operand = stack.pop()
 *                 operator = str(expr_node)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_node, __pyx_n_s_unary); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 100, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_7) {

      /* "setools/policyrep/boolcond.pxi":101
 *                 stack.append(str(expr_node))
 *             elif expr_node.unary:
 *                 operand = stack.pop()             # <<<<<<<<<<<<<<
 *                 operator = str(expr_node)
 *                 op_precedence = expr_node.precedence
 */
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":102
 *             elif expr_node.unary:
 *                 operand = stack.pop()
 *                 operator = str(expr_node)             # <<<<<<<<<<<<<<
 *                 op_precedence = expr_node.precedence
 * 
 */
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_expr_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 102, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operator, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":103
 *                 operand = stack.pop()
 *                 operator = str(expr_node)
 *                 op_precedence = expr_node.precedence             # <<<<<<<<<<<<<<
 * 
 *                 # NOT is the highest precedence, so only need
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_node, __pyx_n_s_precedence); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 103, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_op_precedence, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":107
 *                 # NOT is the highest precedence, so only need
 *                 # parentheses if the operand is a subexpression
 *                 if isinstance(operand, list):             # <<<<<<<<<<<<<<
 *                     subexpr = [operator, "(", operand, ")"]
 *                 else:
 */
      __pyx_t_7 = PyList_Check(__pyx_v_operand); 
      __pyx_t_6 = (__pyx_t_7 != 0);
      if (__pyx_t_6) {

        /* "setools/policyrep/boolcond.pxi":108
 *                 # parentheses if the operand is a subexpression
 *                 if isinstance(operand, list):
 *                     subexpr = [operator, "(", operand, ")"]             # <<<<<<<<<<<<<<
 *                 else:
 *                     subexpr = [operator, operand]
 */
        __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_operator);
        __Pyx_GIVEREF(__pyx_v_operator);
        PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_operator);
        __Pyx_INCREF(__pyx_kp_u_);
        __Pyx_GIVEREF(__pyx_kp_u_);
        PyList_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u_);
        __Pyx_INCREF(__pyx_v_operand);
        __Pyx_GIVEREF(__pyx_v_operand);
        PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_operand);
        __Pyx_INCREF(__pyx_kp_u__2);
        __Pyx_GIVEREF(__pyx_kp_u__2);
        PyList_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__2);
        __Pyx_XDECREF_SET(__pyx_v_subexpr, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;

        /* "setools/policyrep/boolcond.pxi":107
 *                 # NOT is the highest precedence, so only need
 *                 # parentheses if the operand is a subexpression
 *                 if isinstance(operand, list):             # <<<<<<<<<<<<<<
 *                     subexpr = [operator, "(", operand, ")"]
 *                 else:
 */
        goto __pyx_L6;
      }

      /* "setools/policyrep/boolcond.pxi":110
 *                     subexpr = [operator, "(", operand, ")"]
 *                 else:
 *                     subexpr = [operator, operand]             # <<<<<<<<<<<<<<
 * 
 *                 stack.append(subexpr)
 */
      /*else*/ {
        __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_operator);
        __Pyx_GIVEREF(__pyx_v_operator);
        PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_operator);
        __Pyx_INCREF(__pyx_v_operand);
        __Pyx_GIVEREF(__pyx_v_operand);
        PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_operand);
        __Pyx_XDECREF_SET(__pyx_v_subexpr, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
      }
      __pyx_L6:;

      /* "setools/policyrep/boolcond.pxi":112
 *                     subexpr = [operator, operand]
 * 
 *                 stack.append(subexpr)             # <<<<<<<<<<<<<<
 *                 prev_op_precedence = op_precedence
 *             else:
 */
      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_v_subexpr); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 112, __pyx_L1_error)

      /* "setools/policyrep/boolcond.pxi":113
 * 
 *                 stack.append(subexpr)
 *                 prev_op_precedence = op_precedence             # <<<<<<<<<<<<<<
 *             else:
 *                 operand1 = stack.pop()
 */
      __Pyx_INCREF(__pyx_v_op_precedence);
      __Pyx_DECREF_SET(__pyx_v_prev_op_precedence, __pyx_v_op_precedence);

      /* "setools/policyrep/boolcond.pxi":100
 *                 # append the boolean name
 *                 stack.append(str(expr_node))
 *             elif expr_node.unary:             # <<<<<<<<<<<<<<
 *                 operand = stack.pop()
 *                 operator = str(expr_node)
 */
      goto __pyx_L5;
    }

    /* "setools/policyrep/boolcond.pxi":115
 *                 prev_op_precedence = op_precedence
 *             else:
 *                 operand1 = stack.pop()             # <<<<<<<<<<<<<<
 *                 operand2 = stack.pop()
 *                 operator = str(expr_node)
 */
    /*else*/ {
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 115, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand1, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":116
 *             else:
 *                 operand1 = stack.pop()
 *                 operand2 = stack.pop()             # <<<<<<<<<<<<<<
 *                 operator = str(expr_node)
 *                 op_precedence = expr_node.precedence
 */
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand2, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":117
 *                 operand1 = stack.pop()
 *                 operand2 = stack.pop()
 *                 operator = str(expr_node)             # <<<<<<<<<<<<<<
 *                 op_precedence = expr_node.precedence
 * 
 */
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_expr_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 117, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operator, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":118
 *                 operand2 = stack.pop()
 *                 operator = str(expr_node)
 *                 op_precedence = expr_node.precedence             # <<<<<<<<<<<<<<
 * 
 *                 if prev_op_precedence > op_precedence:
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_node, __pyx_n_s_precedence); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 118, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_op_precedence, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":120
 *                 op_precedence = expr_node.precedence
 * 
 *                 if prev_op_precedence > op_precedence:             # <<<<<<<<<<<<<<
 *                     # if previous operator is of higher precedence
 *                     # no parentheses are needed.
 */
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_prev_op_precedence, __pyx_v_op_precedence, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 120, __pyx_L1_error)
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 120, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_6) {

        /* "setools/policyrep/boolcond.pxi":123
 *                     # if previous operator is of higher precedence
 *                     # no parentheses are needed.
 *                     subexpr = [operand1, operator, operand2]             # <<<<<<<<<<<<<<
 *                 else:
 *                     subexpr = ["(", operand1, operator, operand2, ")"]
 */
        __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_operand1);
        __Pyx_GIVEREF(__pyx_v_operand1);
        PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_operand1);
        __Pyx_INCREF(__pyx_v_operator);
        __Pyx_GIVEREF(__pyx_v_operator);
        PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_operator);
        __Pyx_INCREF(__pyx_v_operand2);
        __Pyx_GIVEREF(__pyx_v_operand2);
        PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_operand2);
        __Pyx_XDECREF_SET(__pyx_v_subexpr, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;

        /* "setools/policyrep/boolcond.pxi":120
 *                 op_precedence = expr_node.precedence
 * 
 *                 if prev_op_precedence > op_precedence:             # <<<<<<<<<<<<<<
 *                     # if previous operator is of higher precedence
 *                     # no parentheses are needed.
 */
        goto __pyx_L7;
      }

      /* "setools/policyrep/boolcond.pxi":125
 *                     subexpr = [operand1, operator, operand2]
 *                 else:
 *                     subexpr = ["(", operand1, operator, operand2, ")"]             # <<<<<<<<<<<<<<
 * 
 *                 stack.append(subexpr)
 */
      /*else*/ {
        __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 125, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_kp_u_);
        __Pyx_GIVEREF(__pyx_kp_u_);
        PyList_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_);
        __Pyx_INCREF(__pyx_v_operand1);
        __Pyx_GIVEREF(__pyx_v_operand1);
        PyList_SET_ITEM(__pyx_t_1, 1, __pyx_v_operand1);
        __Pyx_INCREF(__pyx_v_operator);
        __Pyx_GIVEREF(__pyx_v_operator);
        PyList_SET_ITEM(__pyx_t_1, 2, __pyx_v_operator);
        __Pyx_INCREF(__pyx_v_operand2);
        __Pyx_GIVEREF(__pyx_v_operand2);
        PyList_SET_ITEM(__pyx_t_1, 3, __pyx_v_operand2);
        __Pyx_INCREF(__pyx_kp_u__2);
        __Pyx_GIVEREF(__pyx_kp_u__2);
        PyList_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u__2);
        __Pyx_XDECREF_SET(__pyx_v_subexpr, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
      }
      __pyx_L7:;

      /* "setools/policyrep/boolcond.pxi":127
 *                     subexpr = ["(", operand1, operator, operand2, ")"]
 * 
 *                 stack.append(subexpr)             # <<<<<<<<<<<<<<
 *                 prev_op_precedence = op_precedence
 * 
 */
      __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_v_subexpr); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 127, __pyx_L1_error)

      /* "setools/policyrep/boolcond.pxi":128
 * 
 *                 stack.append(subexpr)
 *                 prev_op_precedence = op_precedence             # <<<<<<<<<<<<<<
 * 
 *         return ' '.join(flatten_list(stack))
 */
      __Pyx_INCREF(__pyx_v_op_precedence);
      __Pyx_DECREF_SET(__pyx_v_prev_op_precedence, __pyx_v_op_precedence);
    }
    __pyx_L5:;

    /* "setools/policyrep/boolcond.pxi":96
 *         prev_op_precedence = 5
 * 
 *         for expr_node in self.expression():             # <<<<<<<<<<<<<<
 *             if isinstance(expr_node, Boolean):
 *                 # append the boolean name
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":130
 *                 prev_op_precedence = op_precedence
 * 
 *         return ' '.join(flatten_list(stack))             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_flatten_list(__pyx_v_stack); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":86
 *         return other in self.booleans
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         # sepol representation is in postfix notation.  This code
 *         # converts it to infix notation.  Parentheses are added
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stack);
  __Pyx_XDECREF(__pyx_v_prev_op_precedence);
  __Pyx_XDECREF(__pyx_v_expr_node);
  __Pyx_XDECREF(__pyx_v_operand);
  __Pyx_XDECREF(__pyx_v_operator);
  __Pyx_XDECREF(__pyx_v_op_precedence);
  __Pyx_XDECREF(__pyx_v_subexpr);
  __Pyx_XDECREF(__pyx_v_operand1);
  __Pyx_XDECREF(__pyx_v_operand2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":132
 *         return ' '.join(flatten_list(stack))
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.key)
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_11Conditional_5__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_11Conditional_5__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_4__hash__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_11Conditional_4__hash__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/boolcond.pxi":133
 * 
 *     def __hash__(self):
 *         return hash(self.key)             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(1, 133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":132
 *         return ' '.join(flatten_list(stack))
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.key)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":135
 *         return hash(self.key)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self._eq(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_6__eq__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_6__eq__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/boolcond.pxi":136
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self._eq(other)
 *         except TypeError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/boolcond.pxi":137
 *     def __eq__(self, other):
 *         try:
 *             return self._eq(other)             # <<<<<<<<<<<<<<
 *         except TypeError:
 *             return str(self) == str(other)
 */
      __Pyx_XDECREF(__pyx_r);
      if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_7setools_9policyrep_PolicyObject))))) __PYX_ERR(1, 137, __pyx_L3_error)
      __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_f_7setools_9policyrep_12PolicyObject__eq(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_other))); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 137, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/boolcond.pxi":136
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self._eq(other)
 *         except TypeError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "setools/policyrep/boolcond.pxi":138
 *         try:
 *             return self._eq(other)
 *         except TypeError:             # <<<<<<<<<<<<<<
 *             return str(self) == str(other)
 * 
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError);
    if (__pyx_t_5) {
      __Pyx_AddTraceback("setools.policyrep.Conditional.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 138, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      /* "setools/policyrep/boolcond.pxi":139
 *             return self._eq(other)
 *         except TypeError:
 *             return str(self) == str(other)             # <<<<<<<<<<<<<<
 * 
 *     def evaluate(self, **kwargs):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 139, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 139, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_t_9, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(1, 139, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyBool_FromLong(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 139, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/boolcond.pxi":136
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self._eq(other)
 *         except TypeError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/boolcond.pxi":135
 *         return hash(self.key)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self._eq(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":141
 *             return str(self) == str(other)
 * 
 *     def evaluate(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Evaluate the expression with the stated boolean values.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_9evaluate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_11Conditional_8evaluate[] = "\n        Evaluate the expression with the stated boolean values.\n\n        Keyword Parameters: bool_name=True|False\n        Each keyword parameter name corresponds to a Boolean name\n        in the expression and the state to use in the evaluation.\n        If a Boolean value is not set, its default value is used.\n        Extra values are ignored.\n\n        Return:     bool\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_9evaluate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_kwargs = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("evaluate (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("evaluate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
  if (__pyx_kwds && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "evaluate", 1))) return NULL;
  __pyx_v_kwargs = (__pyx_kwds) ? PyDict_Copy(__pyx_kwds) : PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
  __Pyx_GOTREF(__pyx_v_kwargs);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_8evaluate(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self), __pyx_v_kwargs);

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_8evaluate(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_v_stack = 0;
  PyObject *__pyx_v_bool_values = 0;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_operator = 0;
  PyObject *__pyx_v_expr_node = NULL;
  PyObject *__pyx_v_operand = NULL;
  PyObject *__pyx_v_operand1 = NULL;
  PyObject *__pyx_v_operand2 = NULL;
  PyObject *__pyx_7genexpr__pyx_v_b = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("evaluate", 0);

  /* "setools/policyrep/boolcond.pxi":154
 *         """
 *         cdef:
 *             list stack = []             # <<<<<<<<<<<<<<
 *             dict bool_values = {b.name: kwargs.get(b.name, b.state) for b in self.booleans}
 *             ConditionalOperator operator
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_stack = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":155
 *         cdef:
 *             list stack = []
 *             dict bool_values = {b.name: kwargs.get(b.name, b.state) for b in self.booleans}             # <<<<<<<<<<<<<<
 *             ConditionalOperator operator
 * 
 */
  { /* enter inner scope */
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 155, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = 0;
    __pyx_t_6 = __Pyx_set_iterator(__pyx_v_self->booleans, 0, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 155, __pyx_L5_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2);
    __pyx_t_2 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_7 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, __pyx_t_5);
      if (unlikely(__pyx_t_7 == 0)) break;
      if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(1, 155, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_b, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_b, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 155, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_b, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 155, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_b, __pyx_n_s_state); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 155, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 155, __pyx_L5_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_t_6, (PyObject*)__pyx_t_10))) __PYX_ERR(1, 155, __pyx_L5_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_7genexpr__pyx_v_b); __pyx_7genexpr__pyx_v_b = 0;
    goto __pyx_L8_exit_scope;
    __pyx_L5_error:;
    __Pyx_XDECREF(__pyx_7genexpr__pyx_v_b); __pyx_7genexpr__pyx_v_b = 0;
    goto __pyx_L1_error;
    __pyx_L8_exit_scope:;
  } /* exit inner scope */
  __pyx_v_bool_values = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":158
 *             ConditionalOperator operator
 * 
 *         for expr_node in self.expression():             # <<<<<<<<<<<<<<
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_expression); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_11 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 158, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 158, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 158, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_11(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 158, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_expr_node, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/boolcond.pxi":159
 * 
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):             # <<<<<<<<<<<<<<
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:
 */
    __pyx_t_12 = __Pyx_TypeCheck(__pyx_v_expr_node, __pyx_ptype_7setools_9policyrep_Boolean); 
    __pyx_t_13 = (__pyx_t_12 != 0);
    if (__pyx_t_13) {

      /* "setools/policyrep/boolcond.pxi":160
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])             # <<<<<<<<<<<<<<
 *             elif expr_node.unary:
 *                 operand = stack.pop()
 */
      __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_bool_values, __pyx_v_expr_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 160, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(1, 160, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 160, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(1, 160, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":159
 * 
 *         for expr_node in self.expression():
 *             if isinstance(expr_node, Boolean):             # <<<<<<<<<<<<<<
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:
 */
      goto __pyx_L11;
    }

    /* "setools/policyrep/boolcond.pxi":161
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:             # <<<<<<<<<<<<<<
 *                 operand = stack.pop()
 *                 operator = expr_node
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_expr_node, __pyx_n_s_unary); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 161, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(1, 161, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_13) {

      /* "setools/policyrep/boolcond.pxi":162
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:
 *                 operand = stack.pop()             # <<<<<<<<<<<<<<
 *                 operator = expr_node
 *                 stack.append(operator.evaluate(operand))
 */
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 162, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":163
 *             elif expr_node.unary:
 *                 operand = stack.pop()
 *                 operator = expr_node             # <<<<<<<<<<<<<<
 *                 stack.append(operator.evaluate(operand))
 *             else:
 */
      if (!(likely(((__pyx_v_expr_node) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_expr_node, __pyx_ptype_7setools_9policyrep_ConditionalOperator))))) __PYX_ERR(1, 163, __pyx_L1_error)
      __pyx_t_1 = __pyx_v_expr_node;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operator, ((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":164
 *                 operand = stack.pop()
 *                 operator = expr_node
 *                 stack.append(operator.evaluate(operand))             # <<<<<<<<<<<<<<
 *             else:
 *                 operand1 = stack.pop()
 */
      __Pyx_INCREF(__pyx_v_operator->evaluate);
      __pyx_t_10 = __pyx_v_operator->evaluate; __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
        }
      }
      __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_6, __pyx_v_operand) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_operand);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(1, 164, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":161
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])
 *             elif expr_node.unary:             # <<<<<<<<<<<<<<
 *                 operand = stack.pop()
 *                 operator = expr_node
 */
      goto __pyx_L11;
    }

    /* "setools/policyrep/boolcond.pxi":166
 *                 stack.append(operator.evaluate(operand))
 *             else:
 *                 operand1 = stack.pop()             # <<<<<<<<<<<<<<
 *                 operand2 = stack.pop()
 *                 operator = expr_node
 */
    /*else*/ {
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 166, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand1, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":167
 *             else:
 *                 operand1 = stack.pop()
 *                 operand2 = stack.pop()             # <<<<<<<<<<<<<<
 *                 operator = expr_node
 *                 stack.append(operator.evaluate(operand1, operand2))
 */
      __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 167, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operand2, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":168
 *                 operand1 = stack.pop()
 *                 operand2 = stack.pop()
 *                 operator = expr_node             # <<<<<<<<<<<<<<
 *                 stack.append(operator.evaluate(operand1, operand2))
 * 
 */
      if (!(likely(((__pyx_v_expr_node) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_expr_node, __pyx_ptype_7setools_9policyrep_ConditionalOperator))))) __PYX_ERR(1, 168, __pyx_L1_error)
      __pyx_t_1 = __pyx_v_expr_node;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_operator, ((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_t_1));
      __pyx_t_1 = 0;

      /* "setools/policyrep/boolcond.pxi":169
 *                 operand2 = stack.pop()
 *                 operator = expr_node
 *                 stack.append(operator.evaluate(operand1, operand2))             # <<<<<<<<<<<<<<
 * 
 *         return stack[0]
 */
      __Pyx_INCREF(__pyx_v_operator->evaluate);
      __pyx_t_10 = __pyx_v_operator->evaluate; __pyx_t_6 = NULL;
      __pyx_t_5 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
          __pyx_t_5 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_operand1, __pyx_v_operand2};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 169, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_operand1, __pyx_v_operand2};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 169, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_9 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (__pyx_t_6) {
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
        }
        __Pyx_INCREF(__pyx_v_operand1);
        __Pyx_GIVEREF(__pyx_v_operand1);
        PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_5, __pyx_v_operand1);
        __Pyx_INCREF(__pyx_v_operand2);
        __Pyx_GIVEREF(__pyx_v_operand2);
        PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_5, __pyx_v_operand2);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(1, 169, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L11:;

    /* "setools/policyrep/boolcond.pxi":158
 *             ConditionalOperator operator
 * 
 *         for expr_node in self.expression():             # <<<<<<<<<<<<<<
 *             if isinstance(expr_node, Boolean):
 *                 stack.append(<bint>bool_values[expr_node])
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":171
 *                 stack.append(operator.evaluate(operand1, operand2))
 * 
 *         return stack[0]             # <<<<<<<<<<<<<<
 * 
 *     def expression(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_stack, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":141
 *             return str(self) == str(other)
 * 
 *     def evaluate(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Evaluate the expression with the stated boolean values.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.Conditional.evaluate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stack);
  __Pyx_XDECREF(__pyx_v_bool_values);
  __Pyx_XDECREF((PyObject *)__pyx_v_operator);
  __Pyx_XDECREF(__pyx_v_expr_node);
  __Pyx_XDECREF(__pyx_v_operand);
  __Pyx_XDECREF(__pyx_v_operand1);
  __Pyx_XDECREF(__pyx_v_operand2);
  __Pyx_XDECREF(__pyx_7genexpr__pyx_v_b);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":173
 *         return stack[0]
 * 
 *     def expression(self):             # <<<<<<<<<<<<<<
 *         """Iterator over The conditional expression."""
 *         return iter(self._postfix_expression)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_11expression(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_11Conditional_10expression[] = "Iterator over The conditional expression.";
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_11expression(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expression (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_10expression(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_10expression(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expression", 0);

  /* "setools/policyrep/boolcond.pxi":175
 *     def expression(self):
 *         """Iterator over The conditional expression."""
 *         return iter(self._postfix_expression)             # <<<<<<<<<<<<<<
 * 
 *     def false_rules(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_postfix_expression;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":173
 *         return stack[0]
 * 
 *     def expression(self):             # <<<<<<<<<<<<<<
 *         """Iterator over The conditional expression."""
 *         return iter(self._postfix_expression)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Conditional.expression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":177
 *         return iter(self._postfix_expression)
 * 
 *     def false_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_13false_rules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_11Conditional_12false_rules[] = "An iterator over the rules in the false (else) block of the conditional.";
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_13false_rules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("false_rules (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_12false_rules(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_12false_rules(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  cond_node_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("false_rules", 0);

  /* "setools/policyrep/boolcond.pxi":179
 *     def false_rules(self):
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key             # <<<<<<<<<<<<<<
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)
 * 
 */
  __pyx_v_symbol = ((cond_node_t *)__pyx_v_self->__pyx_base.key);

  /* "setools/policyrep/boolcond.pxi":180
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_symbol->false_list, ((PyObject *)__pyx_v_self), Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":177
 *         return iter(self._postfix_expression)
 * 
 *     def false_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the false (else) block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Conditional.false_rules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":182
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_15statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_15statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_14statement(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_14statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/boolcond.pxi":183
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 *     def true_rules(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 183, __pyx_L1_error)

  /* "setools/policyrep/boolcond.pxi":182
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.false_list, self, False)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Conditional.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":185
 *         raise NoStatement
 * 
 *     def true_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_17true_rules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_11Conditional_16true_rules[] = "An iterator over the rules in the true block of the conditional.";
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_17true_rules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("true_rules (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_16true_rules(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_16true_rules(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  cond_node_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("true_rules", 0);

  /* "setools/policyrep/boolcond.pxi":187
 *     def true_rules(self):
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key             # <<<<<<<<<<<<<<
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 */
  __pyx_v_symbol = ((cond_node_t *)__pyx_v_self->__pyx_base.key);

  /* "setools/policyrep/boolcond.pxi":188
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)             # <<<<<<<<<<<<<<
 * 
 *     def truth_table(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_symbol->true_list, ((PyObject *)__pyx_v_self), Py_True); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":185
 *         raise NoStatement
 * 
 *     def true_rules(self):             # <<<<<<<<<<<<<<
 *         """An iterator over the rules in the true block of the conditional."""
 *         cdef sepol.cond_node_t *symbol = <sepol.cond_node_t *>self.key
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Conditional.true_rules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":190
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 *     def truth_table(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generate a truth table for this expression.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_19truth_table(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_11Conditional_18truth_table[] = "\n        Generate a truth table for this expression.\n\n        Return:     list\n\n        List item:\n        tuple:      values, result\n\n        Tuple item:\n        values:     Dictionary keyed on Boolean names\n                    with each value being T/F.\n        result:     Evaluation result for the expression\n                    given the values.\n\n        Example return for \"a || b\"\n        [({\"a\": True, \"b\": True}, True),\n         ({\"a\": True, \"b\": False}, True),\n         ({\"a\": False, \"b\": True}, True),\n         ({\"a\": False, \"b\": False}, False)]\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_19truth_table(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("truth_table (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_18truth_table(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_11Conditional_11truth_table_2generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/boolcond.pxi":211
 *          ({"a": False, "b": False}, False)]
 *         """
 *         bools = sorted(str(b) for b in self.booleans)             # <<<<<<<<<<<<<<
 * 
 *         truth_table = []
 */

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_11truth_table_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(1, 211, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_11Conditional_11truth_table_2generator12, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_truth_table_locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(1, 211, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Conditional.truth_table.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_11Conditional_11truth_table_2generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 211, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(1, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  __pyx_t_2 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(1, 211, __pyx_L1_error) }
  __pyx_t_5 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->booleans, 0, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(1, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_b);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_b, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_cur_scope->__pyx_v_b); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 211, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":190
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 *     def truth_table(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generate a truth table for this expression.
 */

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_18truth_table(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *__pyx_cur_scope;
  PyObject *__pyx_v_bools = NULL;
  PyObject *__pyx_v_truth_table = NULL;
  PyObject *__pyx_v_truth_list = NULL;
  PyObject *__pyx_v_row = NULL;
  PyObject *__pyx_v_values = NULL;
  Py_ssize_t __pyx_8genexpr2__pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("truth_table", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct__truth_table(__pyx_ptype_7setools_9policyrep___pyx_scope_struct__truth_table, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(1, 190, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/boolcond.pxi":211
 *          ({"a": False, "b": False}, False)]
 *         """
 *         bools = sorted(str(b) for b in self.booleans)             # <<<<<<<<<<<<<<
 * 
 *         truth_table = []
 */
  __pyx_t_2 = __pyx_pf_7setools_9policyrep_11Conditional_11truth_table_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Generator_Next(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_4 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 211, __pyx_L1_error)
  __pyx_v_bools = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":213
 *         bools = sorted(str(b) for b in self.booleans)
 * 
 *         truth_table = []             # <<<<<<<<<<<<<<
 * 
 *         # create a list of all combinations of T/F for each Boolean
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_truth_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":216
 * 
 *         # create a list of all combinations of T/F for each Boolean
 *         truth_list = list(itertools.product([True, False], repeat=len(bools)))             # <<<<<<<<<<<<<<
 * 
 *         for row in truth_list:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_itertools); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_product); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_True);
  __Pyx_GIVEREF(Py_True);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_True);
  __Pyx_INCREF(Py_False);
  __Pyx_GIVEREF(Py_False);
  PyList_SET_ITEM(__pyx_t_1, 1, Py_False);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(__pyx_v_bools == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 216, __pyx_L1_error)
  }
  __pyx_t_5 = PyList_GET_SIZE(__pyx_v_bools); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 216, __pyx_L1_error)
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_repeat, __pyx_t_6) < 0) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PySequence_List(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_truth_list = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":218
 *         truth_list = list(itertools.product([True, False], repeat=len(bools)))
 * 
 *         for row in truth_list:             # <<<<<<<<<<<<<<
 *             values = {bools[i]: row[i] for i in range(len(bools))}
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))
 */
  __pyx_t_1 = __pyx_v_truth_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
  for (;;) {
    if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 218, __pyx_L1_error)
    #else
    __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_row, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "setools/policyrep/boolcond.pxi":219
 * 
 *         for row in truth_list:
 *             values = {bools[i]: row[i] for i in range(len(bools))}             # <<<<<<<<<<<<<<
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))
 * 
 */
    { /* enter inner scope */
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 219, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (unlikely(__pyx_v_bools == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(1, 219, __pyx_L1_error)
      }
      __pyx_t_7 = PyList_GET_SIZE(__pyx_v_bools); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 219, __pyx_L1_error)
      __pyx_t_8 = __pyx_t_7;
      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
        __pyx_8genexpr2__pyx_v_i = __pyx_t_9;
        if (unlikely(__pyx_v_bools == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(1, 219, __pyx_L1_error)
        }
        __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_bools, __pyx_8genexpr2__pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 219, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_row, __pyx_8genexpr2__pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 219, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(PyDict_SetItem(__pyx_t_6, (PyObject*)__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(1, 219, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
    } /* exit inner scope */
    __Pyx_XDECREF_SET(__pyx_v_values, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "setools/policyrep/boolcond.pxi":220
 *         for row in truth_list:
 *             values = {bools[i]: row[i] for i in range(len(bools))}
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))             # <<<<<<<<<<<<<<
 * 
 *         return truth_table
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TruthTableRow); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_v_values); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_11 = 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_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_values, __pyx_t_10};
      __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 220, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_values, __pyx_t_10};
      __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 220, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    } else
    #endif
    {
      __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(__pyx_v_values);
      __Pyx_GIVEREF(__pyx_v_values);
      PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_v_values);
      __Pyx_GIVEREF(__pyx_t_10);
      PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_truth_table, __pyx_t_6); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 220, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/boolcond.pxi":218
 *         truth_list = list(itertools.product([True, False], repeat=len(bools)))
 * 
 *         for row in truth_list:             # <<<<<<<<<<<<<<
 *             values = {bools[i]: row[i] for i in range(len(bools))}
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":222
 *             truth_table.append(TruthTableRow(values, self.evaluate(**values)))
 * 
 *         return truth_table             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_truth_table);
  __pyx_r = __pyx_v_truth_table;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":190
 *         return ConditionalTERuleIterator.factory(self.policy, symbol.true_list, self, True)
 * 
 *     def truth_table(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generate a truth table for this expression.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("setools.policyrep.Conditional.truth_table", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_bools);
  __Pyx_XDECREF(__pyx_v_truth_table);
  __Pyx_XDECREF(__pyx_v_truth_list);
  __Pyx_XDECREF(__pyx_v_row);
  __Pyx_XDECREF(__pyx_v_values);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":55
 *     cdef:
 *         list _postfix_expression
 *         readonly frozenset booleans             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_8booleans_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_8booleans_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_8booleans___get__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_8booleans___get__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->booleans);
  __pyx_r = __pyx_v_self->booleans;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_20__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_20__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._postfix_expression, self.booleans, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_postfix_expression);
  __Pyx_GIVEREF(__pyx_v_self->_postfix_expression);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_postfix_expression);
  __Pyx_INCREF(__pyx_v_self->booleans);
  __Pyx_GIVEREF(__pyx_v_self->booleans);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->booleans);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._postfix_expression, self.booleans, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._postfix_expression, self.booleans, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._postfix_expression, self.booleans, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->_postfix_expression != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->booleans != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Conditional); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_47039003);
    __Pyx_GIVEREF(__pyx_int_47039003);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_47039003);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._postfix_expression is not None or self.booleans is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, None), state
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Conditional); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_47039003);
    __Pyx_GIVEREF(__pyx_int_47039003);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_47039003);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_23__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Conditional_23__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Conditional_22__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Conditional_22__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Conditional__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Conditional, (type(self), 0x2cdc21b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Conditional__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Conditional.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":240
 * 
 *     _cond_expr_val_to_details = {
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),             # <<<<<<<<<<<<<<
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_4lambda1(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_4lambda1 = {"lambda1", (PyCFunction)__pyx_pw_7setools_9policyrep_19ConditionalOperator_4lambda1, METH_O, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_4lambda1(PyObject *__pyx_self, PyObject *__pyx_v_x) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda1 (wrapper)", 0);
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda1(__pyx_self, ((PyObject *)__pyx_v_x));

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

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 240, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":241
 *     _cond_expr_val_to_details = {
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),             # <<<<<<<<<<<<<<
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_5lambda2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_5lambda2 = {"lambda2", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_5lambda2, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_5lambda2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda2 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0};
    PyObject* values[2] = {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  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_x)) != 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_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("lambda2", 1, 2, 2, 1); __PYX_ERR(1, 241, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda2") < 0)) __PYX_ERR(1, 241, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda2", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 241, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda2(__pyx_self, __pyx_v_x, __pyx_v_y);

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

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 241, __pyx_L1_error)
  if (!__pyx_t_2) {
  } else {
    __Pyx_INCREF(__pyx_v_x);
    __pyx_t_1 = __pyx_v_x;
    goto __pyx_L3_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_y);
  __pyx_t_1 = __pyx_v_y;
  __pyx_L3_bool_binop_done:;
  __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("setools.policyrep.ConditionalOperator.lambda2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":242
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),             # <<<<<<<<<<<<<<
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_6lambda3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_6lambda3 = {"lambda3", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_6lambda3, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_6lambda3(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda3 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0};
    PyObject* values[2] = {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  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_x)) != 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_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("lambda3", 1, 2, 2, 1); __PYX_ERR(1, 242, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda3") < 0)) __PYX_ERR(1, 242, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda3", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 242, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda3(__pyx_self, __pyx_v_x, __pyx_v_y);

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

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda3(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda3", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_x); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 242, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __Pyx_INCREF(__pyx_v_x);
    __pyx_t_1 = __pyx_v_x;
    goto __pyx_L3_bool_binop_done;
  }
  __Pyx_INCREF(__pyx_v_y);
  __pyx_t_1 = __pyx_v_y;
  __pyx_L3_bool_binop_done:;
  __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("setools.policyrep.ConditionalOperator.lambda3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":243
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),             # <<<<<<<<<<<<<<
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_7lambda4(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_7lambda4 = {"lambda4", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_7lambda4, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_7lambda4(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda4 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0};
    PyObject* values[2] = {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  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_x)) != 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_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("lambda4", 1, 2, 2, 1); __PYX_ERR(1, 243, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda4") < 0)) __PYX_ERR(1, 243, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda4", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 243, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda4(__pyx_self, __pyx_v_x, __pyx_v_y);

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

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda4", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyNumber_Xor(__pyx_v_x, __pyx_v_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 243, __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("setools.policyrep.ConditionalOperator.lambda4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":244
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),             # <<<<<<<<<<<<<<
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_8lambda5(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_8lambda5 = {"lambda5", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_8lambda5, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_8lambda5(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda5 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0};
    PyObject* values[2] = {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  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_x)) != 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_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("lambda5", 1, 2, 2, 1); __PYX_ERR(1, 244, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda5") < 0)) __PYX_ERR(1, 244, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda5", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 244, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda5(__pyx_self, __pyx_v_x, __pyx_v_y);

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

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda5", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_x, __pyx_v_y, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 244, __pyx_L1_error)
  __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("setools.policyrep.ConditionalOperator.lambda5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":245
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_9lambda6(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19ConditionalOperator_9lambda6 = {"lambda6", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_19ConditionalOperator_9lambda6, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_9lambda6(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda6 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0};
    PyObject* values[2] = {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  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_x)) != 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_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("lambda6", 1, 2, 2, 1); __PYX_ERR(1, 245, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda6") < 0)) __PYX_ERR(1, 245, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda6", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 245, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.lambda6", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda6(__pyx_self, __pyx_v_x, __pyx_v_y);

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

static PyObject *__pyx_lambda_funcdef_7setools_9policyrep_19ConditionalOperator_lambda6(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda6", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_x, __pyx_v_y, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 245, __pyx_L1_error)
  __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("setools.policyrep.ConditionalOperator.lambda6", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":248
 * 
 *     @staticmethod
 *     cdef inline ConditionalOperator factory(SELinuxPolicy policy, sepol.cond_expr_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for conditional operators."""
 *         cdef ConditionalOperator op = ConditionalOperator.__new__(ConditionalOperator)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_f_7setools_9policyrep_19ConditionalOperator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_expr_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_op = 0;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *(*__pyx_t_6)(PyObject *);
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":250
 *     cdef inline ConditionalOperator factory(SELinuxPolicy policy, sepol.cond_expr_t *symbol):
 *         """Factory function for conditional operators."""
 *         cdef ConditionalOperator op = ConditionalOperator.__new__(ConditionalOperator)             # <<<<<<<<<<<<<<
 *         op.policy = policy
 *         op.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_ConditionalOperator(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_ConditionalOperator), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 250, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_op = ((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":251
 *         """Factory function for conditional operators."""
 *         cdef ConditionalOperator op = ConditionalOperator.__new__(ConditionalOperator)
 *         op.policy = policy             # <<<<<<<<<<<<<<
 *         op.key = <uintptr_t>symbol
 *         op.unary = symbol.expr_type == sepol.COND_NOT
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_op->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_op->__pyx_base.policy));
  __pyx_v_op->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":252
 *         cdef ConditionalOperator op = ConditionalOperator.__new__(ConditionalOperator)
 *         op.policy = policy
 *         op.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         op.unary = symbol.expr_type == sepol.COND_NOT
 *         op.text, op.precedence, op.evaluate = op._cond_expr_val_to_details[symbol.expr_type]
 */
  __pyx_v_op->__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/boolcond.pxi":253
 *         op.policy = policy
 *         op.key = <uintptr_t>symbol
 *         op.unary = symbol.expr_type == sepol.COND_NOT             # <<<<<<<<<<<<<<
 *         op.text, op.precedence, op.evaluate = op._cond_expr_val_to_details[symbol.expr_type]
 *         return op
 */
  __pyx_v_op->unary = (__pyx_v_symbol->expr_type == COND_NOT);

  /* "setools/policyrep/boolcond.pxi":254
 *         op.key = <uintptr_t>symbol
 *         op.unary = symbol.expr_type == sepol.COND_NOT
 *         op.text, op.precedence, op.evaluate = op._cond_expr_val_to_details[symbol.expr_type]             # <<<<<<<<<<<<<<
 *         return op
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_op), __pyx_n_s_cond_expr_val_to_details); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_symbol->expr_type, uint32_t, 0, __Pyx_PyInt_From_uint32_t, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
    PyObject* sequence = __pyx_t_2;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(1, 254, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
    } else {
      __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 2); 
    }
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
    index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(1, 254, __pyx_L1_error)
    __pyx_t_6 = NULL;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(1, 254, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 254, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_op->text);
  __Pyx_DECREF(__pyx_v_op->text);
  __pyx_v_op->text = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_op->precedence = __pyx_t_7;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_op->evaluate);
  __Pyx_DECREF(__pyx_v_op->evaluate);
  __pyx_v_op->evaluate = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "setools/policyrep/boolcond.pxi":255
 *         op.unary = symbol.expr_type == sepol.COND_NOT
 *         op.text, op.precedence, op.evaluate = op._cond_expr_val_to_details[symbol.expr_type]
 *         return op             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_op));
  __pyx_r = __pyx_v_op;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":248
 * 
 *     @staticmethod
 *     cdef inline ConditionalOperator factory(SELinuxPolicy policy, sepol.cond_expr_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for conditional operators."""
 *         cdef ConditionalOperator op = ConditionalOperator.__new__(ConditionalOperator)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_op);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":257
 *         return op
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.text
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_1__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator___str__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator___str__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/boolcond.pxi":258
 * 
 *     def __str__(self):
 *         return self.text             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->text);
  __pyx_r = __pyx_v_self->text;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":257
 *         return op
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.text
 * 
 */

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

/* "setools/policyrep/boolcond.pxi":260
 *         return self.text
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_3statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_3statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_2statement(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_2statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/boolcond.pxi":261
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 261, __pyx_L1_error)

  /* "setools/policyrep/boolcond.pxi":260
 *         return self.text
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":231
 *     cdef:
 *         str text
 *         readonly int precedence             # <<<<<<<<<<<<<<
 *         # T/F the operator is unary
 *         readonly bint unary
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_10precedence_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_10precedence_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_10precedence___get__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_10precedence___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->precedence); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 231, __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("setools.policyrep.ConditionalOperator.precedence.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":233
 *         readonly int precedence
 *         # T/F the operator is unary
 *         readonly bint unary             # <<<<<<<<<<<<<<
 *         # stores a callable for evaluating
 *         # using the specified operands.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_5unary_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_5unary_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_5unary___get__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_5unary___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->unary); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 233, __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("setools.policyrep.ConditionalOperator.unary.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":237
 *         # using the specified operands.
 *         # see _cond_expr_val_to_eval
 *         readonly object evaluate             # <<<<<<<<<<<<<<
 * 
 *     _cond_expr_val_to_details = {
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_8evaluate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_8evaluate_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_8evaluate___get__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_8evaluate___get__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->evaluate);
  __pyx_r = __pyx_v_self->evaluate;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_10__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.evaluate, self.key, self.policy, self.precedence, self.text, self.unary)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->precedence); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->unary); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_self->evaluate);
  __Pyx_GIVEREF(__pyx_v_self->evaluate);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->evaluate);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->text);
  __Pyx_GIVEREF(__pyx_v_self->text);
  PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_self->text);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.evaluate, self.key, self.policy, self.precedence, self.text, self.unary)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.evaluate, self.key, self.policy, self.precedence, self.text, self.unary)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.evaluate, self.key, self.policy, self.precedence, self.text, self.unary)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, None), state
 */
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->evaluate != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->text != ((PyObject*)Py_None));
    __pyx_t_7 = (__pyx_t_5 != 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, None), state
 *     else:
 */
  __pyx_t_6 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":13
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_ConditionalOperat); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_249199402);
    __Pyx_GIVEREF(__pyx_int_249199402);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_249199402);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.evaluate is not None or self.policy is not None or self.text is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, None), state
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_ConditionalOperat); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_249199402);
    __Pyx_GIVEREF(__pyx_int_249199402);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_249199402);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalOperator_12__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalOperator_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConditionalOperator__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConditionalOperator, (type(self), 0xeda7b2a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConditionalOperator__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalOperator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":272
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Boolean iterators."""
 *         i = BooleanHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_22BooleanHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":274
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Boolean iterators."""
 *         i = BooleanHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":275
 *         """Factory function for creating Boolean iterators."""
 *         i = BooleanHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":276
 *         i = BooleanHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/boolcond.pxi":277
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":278
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":272
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Boolean iterators."""
 *         i = BooleanHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":280
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Boolean.factory(self.policy, <sepol.cond_bool_datum_t *>self.curr.datum)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22BooleanHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/boolcond.pxi":281
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Boolean.factory(self.policy, <sepol.cond_bool_datum_t *>self.curr.datum)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_BooleanHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 281, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 281, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":282
 *     def __next__(self):
 *         super().__next__()
 *         return Boolean.factory(self.policy, <sepol.cond_bool_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Boolean_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((cond_bool_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":280
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Boolean.factory(self.policy, <sepol.cond_bool_datum_t *>self.curr.datum)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_22BooleanHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.BooleanHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":294
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.cond_node_t *head):             # <<<<<<<<<<<<<<
 *         """Constraint iterator factory."""
 *         c = ConditionalIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_19ConditionalIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_node_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":296
 *     cdef factory(SELinuxPolicy policy, sepol.cond_node_t *head):
 *         """Constraint iterator factory."""
 *         c = ConditionalIterator()             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.head = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_ConditionalIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":297
 *         """Constraint iterator factory."""
 *         c = ConditionalIterator()
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.head = head
 *         c.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.policy));
  __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":298
 *         c = ConditionalIterator()
 *         c.policy = policy
 *         c.head = head             # <<<<<<<<<<<<<<
 *         c.reset()
 *         return c
 */
  __pyx_v_c->head = __pyx_v_head;

  /* "setools/policyrep/boolcond.pxi":299
 *         c.policy = policy
 *         c.head = head
 *         c.reset()             # <<<<<<<<<<<<<<
 *         return c
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_c), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":300
 *         c.head = head
 *         c.reset()
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_c));
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":294
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.cond_node_t *head):             # <<<<<<<<<<<<<<
 *         """Constraint iterator factory."""
 *         c = ConditionalIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":302
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct cond_node *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/boolcond.pxi":303
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/boolcond.pxi":304
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = Conditional.factory(self.policy, self.curr)
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(1, 304, __pyx_L1_error)

    /* "setools/policyrep/boolcond.pxi":303
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/boolcond.pxi":306
 *             raise StopIteration
 * 
 *         item = Conditional.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_11Conditional_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self->curr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/boolcond.pxi":307
 * 
 *         item = Conditional.factory(self.policy, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
 */
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/boolcond.pxi":308
 *         item = Conditional.factory(self.policy, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_item));
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":302
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":310
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_node_t *curr
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_19ConditionalIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self) {
  cond_node_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  cond_node_t *__pyx_t_1;
  int __pyx_t_2;
  struct cond_node *__pyx_t_3;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/boolcond.pxi":313
 *         cdef:
 *             sepol.cond_node_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/boolcond.pxi":315
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/boolcond.pxi":316
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_curr != NULL) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/boolcond.pxi":317
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
 */
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/boolcond.pxi":318
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/boolcond.pxi":320
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":310
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_node_t *curr
 */

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

/* "setools/policyrep/boolcond.pxi":322
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_19ConditionalIterator_4reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator_4reset(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  cond_node_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/boolcond.pxi":324
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/boolcond.pxi":322
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19ConditionalIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_19ConditionalIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":336
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.cond_expr_t *head):             # <<<<<<<<<<<<<<
 *         """Conditional expression iterator factory."""
 *         e = ConditionalExprIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_23ConditionalExprIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_expr_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/boolcond.pxi":338
 *     cdef factory(SELinuxPolicy policy, sepol.cond_expr_t *head):
 *         """Conditional expression iterator factory."""
 *         e = ConditionalExprIterator()             # <<<<<<<<<<<<<<
 *         e.policy = policy
 *         e.head = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_ConditionalExprIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_e = ((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":339
 *         """Conditional expression iterator factory."""
 *         e = ConditionalExprIterator()
 *         e.policy = policy             # <<<<<<<<<<<<<<
 *         e.head = head
 *         e.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_e->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_e->__pyx_base.policy));
  __pyx_v_e->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/boolcond.pxi":340
 *         e = ConditionalExprIterator()
 *         e.policy = policy
 *         e.head = head             # <<<<<<<<<<<<<<
 *         e.reset()
 *         return e
 */
  __pyx_v_e->head = __pyx_v_head;

  /* "setools/policyrep/boolcond.pxi":341
 *         e.policy = policy
 *         e.head = head
 *         e.reset()             # <<<<<<<<<<<<<<
 *         return e
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_e), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":342
 *         e.head = head
 *         e.reset()
 *         return e             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_e));
  __pyx_r = ((PyObject *)__pyx_v_e);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":336
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.cond_expr_t *head):             # <<<<<<<<<<<<<<
 *         """Conditional expression iterator factory."""
 *         e = ConditionalExprIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":344
 *         return e
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct cond_expr *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/boolcond.pxi":345
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/boolcond.pxi":346
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(1, 346, __pyx_L1_error)

    /* "setools/policyrep/boolcond.pxi":345
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/boolcond.pxi":348
 *             raise StopIteration
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:             # <<<<<<<<<<<<<<
 *             item = Boolean.factory(self.policy,
 *                                    self.policy.boolean_value_to_datum(self.curr.bool - 1))
 */
  __pyx_t_1 = ((__pyx_v_self->curr->expr_type == COND_BOOL) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/boolcond.pxi":349
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:
 *             item = Boolean.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                    self.policy.boolean_value_to_datum(self.curr.bool - 1))
 *         else:
 */
    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_2);

    /* "setools/policyrep/boolcond.pxi":350
 *         if self.curr.expr_type == sepol.COND_BOOL:
 *             item = Boolean.factory(self.policy,
 *                                    self.policy.boolean_value_to_datum(self.curr.bool - 1))             # <<<<<<<<<<<<<<
 *         else:
 *             item = ConditionalOperator.factory(self.policy, self.curr)
 */
    __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_7Boolean_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum(__pyx_v_self->__pyx_base.policy, (__pyx_v_self->curr->bool - 1)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/boolcond.pxi":348
 *             raise StopIteration
 * 
 *         if self.curr.expr_type == sepol.COND_BOOL:             # <<<<<<<<<<<<<<
 *             item = Boolean.factory(self.policy,
 *                                    self.policy.boolean_value_to_datum(self.curr.bool - 1))
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/boolcond.pxi":352
 *                                    self.policy.boolean_value_to_datum(self.curr.bool - 1))
 *         else:
 *             item = ConditionalOperator.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 * 
 *         self.curr = self.curr.next
 */
  /*else*/ {
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_19ConditionalOperator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_self->curr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_t_2);
    __pyx_t_2 = 0;
  }
  __pyx_L4:;

  /* "setools/policyrep/boolcond.pxi":354
 *             item = ConditionalOperator.factory(self.policy, self.curr)
 * 
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
 */
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/boolcond.pxi":355
 * 
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_item));
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":344
 *         return e
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/boolcond.pxi":357
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_expr_t *curr
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self) {
  cond_expr_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  cond_expr_t *__pyx_t_1;
  int __pyx_t_2;
  struct cond_expr *__pyx_t_3;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/boolcond.pxi":360
 *         cdef:
 *             sepol.cond_expr_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/boolcond.pxi":362
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/boolcond.pxi":363
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_curr != NULL) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/boolcond.pxi":364
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
 */
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/boolcond.pxi":365
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/boolcond.pxi":367
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/boolcond.pxi":357
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_expr_t *curr
 */

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

/* "setools/policyrep/boolcond.pxi":369
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_23ConditionalExprIterator_4reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_4reset(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  cond_expr_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/boolcond.pxi":371
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/boolcond.pxi":369
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ConditionalExprIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_23ConditionalExprIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalExprIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":42
 * 
 *     @staticmethod
 *     cdef inline Bounds factory(SELinuxPolicy policy, parent, child):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Bounds objects."""
 *         cdef Bounds b = Bounds.__new__(Bounds)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_f_7setools_9policyrep_6Bounds_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_parent, PyObject *__pyx_v_child) {
  struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_b = 0;
  struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/bounds.pxi":44
 *     cdef inline Bounds factory(SELinuxPolicy policy, parent, child):
 *         """Factory function for creating Bounds objects."""
 *         cdef Bounds b = Bounds.__new__(Bounds)             # <<<<<<<<<<<<<<
 *         b.policy = policy
 *         b.ruletype = BoundsRuletype.typebounds
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Bounds(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Bounds), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 44, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_b = ((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":45
 *         """Factory function for creating Bounds objects."""
 *         cdef Bounds b = Bounds.__new__(Bounds)
 *         b.policy = policy             # <<<<<<<<<<<<<<
 *         b.ruletype = BoundsRuletype.typebounds
 *         b.parent = parent
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_b->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_b->__pyx_base.policy));
  __pyx_v_b->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/bounds.pxi":46
 *         cdef Bounds b = Bounds.__new__(Bounds)
 *         b.policy = policy
 *         b.ruletype = BoundsRuletype.typebounds             # <<<<<<<<<<<<<<
 *         b.parent = parent
 *         b.child = child
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BoundsRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_typebounds); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_b->ruletype);
  __Pyx_DECREF(__pyx_v_b->ruletype);
  __pyx_v_b->ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/bounds.pxi":47
 *         b.policy = policy
 *         b.ruletype = BoundsRuletype.typebounds
 *         b.parent = parent             # <<<<<<<<<<<<<<
 *         b.child = child
 *         return b
 */
  __Pyx_INCREF(__pyx_v_parent);
  __Pyx_GIVEREF(__pyx_v_parent);
  __Pyx_GOTREF(__pyx_v_b->parent);
  __Pyx_DECREF(__pyx_v_b->parent);
  __pyx_v_b->parent = __pyx_v_parent;

  /* "setools/policyrep/bounds.pxi":48
 *         b.ruletype = BoundsRuletype.typebounds
 *         b.parent = parent
 *         b.child = child             # <<<<<<<<<<<<<<
 *         return b
 * 
 */
  __Pyx_INCREF(__pyx_v_child);
  __Pyx_GIVEREF(__pyx_v_child);
  __Pyx_GOTREF(__pyx_v_b->child);
  __Pyx_DECREF(__pyx_v_b->child);
  __pyx_v_b->child = __pyx_v_child;

  /* "setools/policyrep/bounds.pxi":49
 *         b.parent = parent
 *         b.child = child
 *         return b             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_b));
  __pyx_r = __pyx_v_b;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":42
 * 
 *     @staticmethod
 *     cdef inline Bounds factory(SELinuxPolicy policy, parent, child):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Bounds objects."""
 *         cdef Bounds b = Bounds.__new__(Bounds)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Bounds.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_b);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":51
 *         return b
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.child};".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_6Bounds_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_6Bounds_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds___hash__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_6Bounds___hash__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/bounds.pxi":52
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.child};".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_child, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(7, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":51
 *         return b
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.child};".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":54
 *         return hash("{0.ruletype}|{0.child};".format(self))
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.policy == other.policy \
 *             and self.ruletype == other.ruletype \
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_2__eq__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_2__eq__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/bounds.pxi":55
 * 
 *     def __eq__(self, other):
 *         return self.policy == other.policy \             # <<<<<<<<<<<<<<
 *             and self.ruletype == other.ruletype \
 *             and self.parent == other.parent \
 */
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/bounds.pxi":56
 *     def __eq__(self, other):
 *         return self.policy == other.policy \
 *             and self.ruletype == other.ruletype \             # <<<<<<<<<<<<<<
 *             and self.parent == other.parent \
 *             and self.child == other.child
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_policy); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.policy), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(7, 55, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/bounds.pxi":57
 *         return self.policy == other.policy \
 *             and self.ruletype == other.ruletype \
 *             and self.parent == other.parent \             # <<<<<<<<<<<<<<
 *             and self.child == other.child
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_ruletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_self->ruletype, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(7, 56, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/bounds.pxi":58
 *             and self.ruletype == other.ruletype \
 *             and self.parent == other.parent \
 *             and self.child == other.child             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_parent); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->parent, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(7, 57, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_self->child, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = __pyx_t_2;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":54
 *         return hash("{0.ruletype}|{0.child};".format(self))
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.policy == other.policy \
 *             and self.ruletype == other.ruletype \
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":60
 *             and self.child == other.child
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_4__lt__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_4__lt__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/bounds.pxi":62
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":60
 *             and self.child == other.child
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":64
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.parent} {0.child};".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_6statement(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_6statement(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/bounds.pxi":65
 * 
 *     def statement(self):
 *         return "{0.ruletype} {0.parent} {0.child};".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_parent_0_child, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":64
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.parent} {0.child};".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Bounds.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":37
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly object parent
 *         readonly object child
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_8ruletype_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

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

/* "setools/policyrep/bounds.pxi":38
 *     cdef:
 *         readonly object ruletype
 *         readonly object parent             # <<<<<<<<<<<<<<
 *         readonly object child
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_6parent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_6parent_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_6parent___get__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_6parent___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->parent);
  __pyx_r = __pyx_v_self->parent;
  goto __pyx_L0;

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

/* "setools/policyrep/bounds.pxi":39
 *         readonly object ruletype
 *         readonly object parent
 *         readonly object child             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_5child_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_5child_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_5child___get__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_5child___get__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->child);
  __pyx_r = __pyx_v_self->child;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.child, self.key, self.parent, self.policy, self.ruletype)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->child);
  __Pyx_GIVEREF(__pyx_v_self->child);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->child);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->parent);
  __Pyx_GIVEREF(__pyx_v_self->parent);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->parent);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->ruletype);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.child, self.key, self.parent, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.child, self.key, self.parent, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.child, self.key, self.parent, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->child != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->parent != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->ruletype != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Bounds); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_25291058);
    __Pyx_GIVEREF(__pyx_int_25291058);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_25291058);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.child is not None or self.parent is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, None), state
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Bounds); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_25291058);
    __Pyx_GIVEREF(__pyx_int_25291058);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_25291058);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Bounds_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Bounds_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Bounds_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Bounds__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bounds, (type(self), 0x181e932, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bounds__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Bounds.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":76
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating typebounds iterators."""
 *         i = TypeboundsIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_18TypeboundsIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/bounds.pxi":78
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating typebounds iterators."""
 *         i = TypeboundsIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":79
 *         """Factory function for creating typebounds iterators."""
 *         i = TypeboundsIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/bounds.pxi":80
 *         i = TypeboundsIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/bounds.pxi":81
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":82
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":76
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating typebounds iterators."""
 *         i = TypeboundsIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":84
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/bounds.pxi":86
 *     def __next__(self):
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()             # <<<<<<<<<<<<<<
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 86, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 86, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":88
 *         super().__next__()
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum             # <<<<<<<<<<<<<<
 *         while datum.flavor != sepol.TYPE_TYPE or datum.bounds == 0:
 *             super().__next__()
 */
  __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum);

  /* "setools/policyrep/bounds.pxi":89
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum
 *         while datum.flavor != sepol.TYPE_TYPE or datum.bounds == 0:             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.type_datum_t *> self.curr.datum
 */
  while (1) {
    __pyx_t_5 = ((__pyx_v_datum->flavor != TYPE_TYPE) != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_5 = ((__pyx_v_datum->bounds == 0) != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_4) break;

    /* "setools/policyrep/bounds.pxi":90
 *         datum = <sepol.type_datum_t *> self.curr.datum
 *         while datum.flavor != sepol.TYPE_TYPE or datum.bounds == 0:
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
    __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 90, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 90, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/bounds.pxi":91
 *         while datum.flavor != sepol.TYPE_TYPE or datum.bounds == 0:
 *             super().__next__()
 *             datum = <sepol.type_datum_t *> self.curr.datum             # <<<<<<<<<<<<<<
 * 
 *         return Bounds.factory(self.policy,
 */
    __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  }

  /* "setools/policyrep/bounds.pxi":93
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
 *         return Bounds.factory(self.policy,             # <<<<<<<<<<<<<<
 *             Type.factory(self.policy, self.policy.type_value_to_datum(datum.bounds - 1)),
 *             Type.factory(self.policy, datum))
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/bounds.pxi":94
 * 
 *         return Bounds.factory(self.policy,
 *             Type.factory(self.policy, self.policy.type_value_to_datum(datum.bounds - 1)),             # <<<<<<<<<<<<<<
 *             Type.factory(self.policy, datum))
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, (__pyx_v_datum->bounds - 1)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/bounds.pxi":95
 *         return Bounds.factory(self.policy,
 *             Type.factory(self.policy, self.policy.type_value_to_datum(datum.bounds - 1)),
 *             Type.factory(self.policy, datum))             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_6 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_datum)); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/bounds.pxi":93
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
 *         return Bounds.factory(self.policy,             # <<<<<<<<<<<<<<
 *             Type.factory(self.policy, self.policy.type_value_to_datum(datum.bounds - 1)),
 *             Type.factory(self.policy, datum))
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_6Bounds_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_t_3, __pyx_t_6)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":84
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/bounds.pxi":97
 *             Type.factory(self.policy, datum))
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.type_datum_t *datum
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_18TypeboundsIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  type_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/bounds.pxi":101
 *             sepol.type_datum_t *datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             size_t count = 0
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/bounds.pxi":102
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/bounds.pxi":104
 *             size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_1 = ((__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/bounds.pxi":105
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/bounds.pxi":106
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:
 */
    while (1) {
      __pyx_t_1 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/bounds.pxi":107
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:
 *                     count += 1
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_2 = ((type_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/bounds.pxi":108
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      __pyx_t_3 = ((__pyx_v_datum != NULL) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = ((__pyx_v_datum->flavor == TYPE_TYPE) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = ((__pyx_v_datum->bounds != 0) != 0);
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/bounds.pxi":109
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/bounds.pxi":108
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and datum.bounds != 0:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      }

      /* "setools/policyrep/bounds.pxi":111
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/bounds.pxi":113
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/bounds.pxi":115
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/bounds.pxi":97
 *             Type.factory(self.policy, datum))
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.type_datum_t *datum
 */

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

/* "setools/policyrep/bounds.pxi":117
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t * datum
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator_4reset(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/bounds.pxi":120
 *         cdef sepol.type_datum_t * datum
 * 
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeboundsIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 120, __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_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 120, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/bounds.pxi":123
 * 
 *         # advance over any attributes or aliases
 *         datum = <sepol.type_datum_t *> self.node.datum             # <<<<<<<<<<<<<<
 *         while datum != NULL and datum.flavor != sepol.TYPE_TYPE and datum.bounds == 0:
 *             self._next_node()
 */
  __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.node->datum);

  /* "setools/policyrep/bounds.pxi":124
 *         # advance over any attributes or aliases
 *         datum = <sepol.type_datum_t *> self.node.datum
 *         while datum != NULL and datum.flavor != sepol.TYPE_TYPE and datum.bounds == 0:             # <<<<<<<<<<<<<<
 *             self._next_node()
 *             datum = <sepol.type_datum_t *> self.node.datum
 */
  while (1) {
    __pyx_t_5 = ((__pyx_v_datum != NULL) != 0);
    if (__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_5 = ((__pyx_v_datum->flavor != TYPE_TYPE) != 0);
    if (__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_5 = ((__pyx_v_datum->bounds == 0) != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_4) break;

    /* "setools/policyrep/bounds.pxi":125
 *         datum = <sepol.type_datum_t *> self.node.datum
 *         while datum != NULL and datum.flavor != sepol.TYPE_TYPE and datum.bounds == 0:
 *             self._next_node()             # <<<<<<<<<<<<<<
 *             datum = <sepol.type_datum_t *> self.node.datum
 */
    ((struct __pyx_vtabstruct_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

    /* "setools/policyrep/bounds.pxi":126
 *         while datum != NULL and datum.flavor != sepol.TYPE_TYPE and datum.bounds == 0:
 *             self._next_node()
 *             datum = <sepol.type_datum_t *> self.node.datum             # <<<<<<<<<<<<<<
 */
    __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.node->datum);
  }

  /* "setools/policyrep/bounds.pxi":117
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t * datum
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18TypeboundsIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_18TypeboundsIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeboundsIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":50
 * 
 *     @property
 *     def perms(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_5perms___get__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_5perms___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/constraint.pxi":51
 *     @property
 *     def perms(self):
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(2, 51, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":50
 * 
 *     @property
 *     def perms(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseConstraint.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":45
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly object tclass
 *         readonly ConstraintExpression expression
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_8ruletype_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

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

/* "setools/policyrep/constraint.pxi":46
 *     cdef:
 *         readonly object ruletype
 *         readonly object tclass             # <<<<<<<<<<<<<<
 *         readonly ConstraintExpression expression
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_6tclass_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_6tclass___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->tclass);
  __pyx_r = __pyx_v_self->tclass;
  goto __pyx_L0;

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

/* "setools/policyrep/constraint.pxi":47
 *         readonly object ruletype
 *         readonly object tclass
 *         readonly ConstraintExpression expression             # <<<<<<<<<<<<<<
 * 
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_10expression_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_10expression_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_10expression___get__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_10expression___get__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->expression));
  __pyx_r = ((PyObject *)__pyx_v_self->expression);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint___reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint___reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->expression));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->expression));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->expression));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->ruletype);
  __Pyx_INCREF(__pyx_v_self->tclass);
  __Pyx_GIVEREF(__pyx_v_self->tclass);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->tclass);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->expression) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->ruletype != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->tclass != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_BaseConstraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_174173316);
    __Pyx_GIVEREF(__pyx_int_174173316);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_174173316);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, None), state
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_BaseConstraint); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_174173316);
    __Pyx_GIVEREF(__pyx_int_174173316);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_174173316);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.BaseConstraint.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14BaseConstraint_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14BaseConstraint_2__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_14BaseConstraint_2__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseConstraint__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseConstraint, (type(self), 0xa61ac84, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseConstraint__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.BaseConstraint.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":61
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Constraint objects."""
 *         cdef Constraint c = Constraint.__new__(Constraint)
 */

static PyObject *__pyx_f_7setools_9policyrep_10Constraint_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_c = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":63
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):
 *         """Factory function for creating Constraint objects."""
 *         cdef Constraint c = Constraint.__new__(Constraint)             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Constraint(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Constraint), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 63, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":64
 *         """Factory function for creating Constraint objects."""
 *         cdef Constraint c = Constraint.__new__(Constraint)
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.key = <uintptr_t>symbol
 *         c.tclass = tclass
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy));
  __pyx_v_c->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":65
 *         cdef Constraint c = Constraint.__new__(Constraint)
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         c.tclass = tclass
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 */
  __pyx_v_c->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/constraint.pxi":66
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol
 *         c.tclass = tclass             # <<<<<<<<<<<<<<
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_tclass));
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.tclass);
  __Pyx_DECREF(__pyx_v_c->__pyx_base.tclass);
  __pyx_v_c->__pyx_base.tclass = ((PyObject *)__pyx_v_tclass);

  /* "setools/policyrep/constraint.pxi":67
 *         c.key = <uintptr_t>symbol
 *         c.tclass = tclass
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))             # <<<<<<<<<<<<<<
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory(__pyx_v_policy, __pyx_v_tclass, __pyx_v_symbol->permissions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_c->perms);
  __Pyx_DECREF(__pyx_v_c->perms);
  __pyx_v_c->perms = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":68
 *         c.tclass = tclass
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)             # <<<<<<<<<<<<<<
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \
 *             else ConstraintRuletype.constrain
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(__pyx_v_policy, __pyx_v_symbol->expr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.expression);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.expression));
  __pyx_v_c->__pyx_base.expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":69
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \             # <<<<<<<<<<<<<<
 *             else ConstraintRuletype.constrain
 *         return c
 */
  if ((__pyx_v_c->__pyx_base.expression->mls != 0)) {
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_mlsconstrain); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 69, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {

    /* "setools/policyrep/constraint.pxi":70
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \
 *             else ConstraintRuletype.constrain             # <<<<<<<<<<<<<<
 *         return c
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ConstraintRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_constrain); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = __pyx_t_1;
    __pyx_t_1 = 0;
  }

  /* "setools/policyrep/constraint.pxi":69
 *         c.perms = frozenset(PermissionVectorIterator.factory(policy, tclass, symbol.permissions))
 *         c.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \             # <<<<<<<<<<<<<<
 *             else ConstraintRuletype.constrain
 *         return c
 */
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_c->__pyx_base.ruletype);
  __pyx_v_c->__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":71
 *         c.ruletype = ConstraintRuletype.mlsconstrain if c.expression.mls \
 *             else ConstraintRuletype.constrain
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_c));
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":61
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Constraint objects."""
 *         cdef Constraint c = Constraint.__new__(Constraint)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Constraint.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":73
 *         return c
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if len(self.perms) > 1:
 *             perms = "{{ {0} }}".format(' '.join(self.perms))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10Constraint_statement(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_statement(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self) {
  PyObject *__pyx_v_perms = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/constraint.pxi":74
 * 
 *     def statement(self):
 *         if len(self.perms) > 1:             # <<<<<<<<<<<<<<
 *             perms = "{{ {0} }}".format(' '.join(self.perms))
 *         else:
 */
  __pyx_t_1 = __pyx_v_self->perms;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(2, 74, __pyx_L1_error)
  }
  __pyx_t_2 = PySet_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((__pyx_t_2 > 1) != 0);
  if (__pyx_t_3) {

    /* "setools/policyrep/constraint.pxi":75
 *     def statement(self):
 *         if len(self.perms) > 1:
 *             perms = "{{ {0} }}".format(' '.join(self.perms))             # <<<<<<<<<<<<<<
 *         else:
 *             # convert to list since sets cannot be indexed
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __pyx_v_self->perms;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __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_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_perms = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":74
 * 
 *     def statement(self):
 *         if len(self.perms) > 1:             # <<<<<<<<<<<<<<
 *             perms = "{{ {0} }}".format(' '.join(self.perms))
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/constraint.pxi":78
 *         else:
 *             # convert to list since sets cannot be indexed
 *             perms = list(self.perms)[0]             # <<<<<<<<<<<<<<
 * 
 *         return "{0.ruletype} {0.tclass} {1} ({0.expression}); ".format(self, perms)
 */
  /*else*/ {
    __pyx_t_1 = PySequence_List(__pyx_v_self->perms); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_perms = __pyx_t_4;
    __pyx_t_4 = 0;
  }
  __pyx_L3:;

  /* "setools/policyrep/constraint.pxi":80
 *             perms = list(self.perms)[0]
 * 
 *         return "{0.ruletype} {0.tclass} {1} ({0.expression}); ".format(self, perms)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_tclass_1_0_express, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_v_perms};
    __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 80, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_4);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_v_perms};
    __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 80, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_4);
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, ((PyObject *)__pyx_v_self));
    __Pyx_INCREF(__pyx_v_perms);
    __Pyx_GIVEREF(__pyx_v_perms);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_v_perms);
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":73
 *         return c
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if len(self.perms) > 1:
 *             perms = "{{ {0} }}".format(' '.join(self.perms))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Constraint.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_perms);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":58
 *     """A constraint rule (constrain/mlsconstrain)."""
 * 
 *     cdef readonly frozenset perms             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10Constraint_5perms___get__(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_5perms___get__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->perms);
  __pyx_r = __pyx_v_self->perms;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10Constraint_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.perms, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.expression));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.expression));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.expression));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->perms);
  __Pyx_GIVEREF(__pyx_v_self->perms);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->perms);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.tclass);
  PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_v_self->__pyx_base.tclass);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.perms, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.perms, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.perms, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.expression) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->perms != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->__pyx_base.tclass != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_58809211);
    __Pyx_GIVEREF(__pyx_int_58809211);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_58809211);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.perms is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, None), state
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Constraint); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_58809211);
    __Pyx_GIVEREF(__pyx_int_58809211);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_58809211);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Constraint.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10Constraint_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10Constraint_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_10Constraint_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Constraint__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Constraint, (type(self), 0x3815b7b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Constraint__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Constraint.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":88
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Validatetrans objects."""
 *         cdef Validatetrans v = Validatetrans.__new__(Validatetrans)
 */

static PyObject *__pyx_f_7setools_9policyrep_13Validatetrans_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_v = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":90
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):
 *         """Factory function for creating Validatetrans objects."""
 *         cdef Validatetrans v = Validatetrans.__new__(Validatetrans)             # <<<<<<<<<<<<<<
 *         v.policy = policy
 *         v.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Validatetrans(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Validatetrans), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 90, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_v = ((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":91
 *         """Factory function for creating Validatetrans objects."""
 *         cdef Validatetrans v = Validatetrans.__new__(Validatetrans)
 *         v.policy = policy             # <<<<<<<<<<<<<<
 *         v.key = <uintptr_t>symbol
 *         v.tclass = tclass
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_v->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_v->__pyx_base.__pyx_base.policy));
  __pyx_v_v->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":92
 *         cdef Validatetrans v = Validatetrans.__new__(Validatetrans)
 *         v.policy = policy
 *         v.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         v.tclass = tclass
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 */
  __pyx_v_v->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/constraint.pxi":93
 *         v.policy = policy
 *         v.key = <uintptr_t>symbol
 *         v.tclass = tclass             # <<<<<<<<<<<<<<
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_tclass));
  __Pyx_GOTREF(__pyx_v_v->__pyx_base.tclass);
  __Pyx_DECREF(__pyx_v_v->__pyx_base.tclass);
  __pyx_v_v->__pyx_base.tclass = ((PyObject *)__pyx_v_tclass);

  /* "setools/policyrep/constraint.pxi":94
 *         v.key = <uintptr_t>symbol
 *         v.tclass = tclass
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)             # <<<<<<<<<<<<<<
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \
 *             ConstraintRuletype.validatetrans
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(__pyx_v_policy, __pyx_v_symbol->expr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_v->__pyx_base.expression);
  __Pyx_DECREF(((PyObject *)__pyx_v_v->__pyx_base.expression));
  __pyx_v_v->__pyx_base.expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":95
 *         v.tclass = tclass
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \             # <<<<<<<<<<<<<<
 *             ConstraintRuletype.validatetrans
 *         return v
 */
  if ((__pyx_v_v->__pyx_base.expression->mls != 0)) {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ConstraintRuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_mlsvalidatetrans); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {

    /* "setools/policyrep/constraint.pxi":96
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \
 *             ConstraintRuletype.validatetrans             # <<<<<<<<<<<<<<
 *         return v
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ConstraintRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_validatetrans); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = __pyx_t_2;
    __pyx_t_2 = 0;
  }

  /* "setools/policyrep/constraint.pxi":95
 *         v.tclass = tclass
 *         v.expression = ConstraintExpression.factory(policy, symbol.expr)
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \             # <<<<<<<<<<<<<<
 *             ConstraintRuletype.validatetrans
 *         return v
 */
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_v->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_v->__pyx_base.ruletype);
  __pyx_v_v->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":97
 *         v.ruletype = ConstraintRuletype.mlsvalidatetrans if v.expression.mls else \
 *             ConstraintRuletype.validatetrans
 *         return v             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_v));
  __pyx_r = ((PyObject *)__pyx_v_v);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":88
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Validatetrans objects."""
 *         cdef Validatetrans v = Validatetrans.__new__(Validatetrans)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_v);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":100
 * 
 *     @property
 *     def perms(self):             # <<<<<<<<<<<<<<
 *         raise ConstraintUseError("{0} rules do not have permissions.".format(self.ruletype))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Validatetrans_5perms___get__(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_5perms___get__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/constraint.pxi":101
 *     @property
 *     def perms(self):
 *         raise ConstraintUseError("{0} rules do not have permissions.".format(self.ruletype))             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ConstraintUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_rules_do_not_have_permissions, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 101, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base.ruletype) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base.ruletype);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 101, __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 && 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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(2, 101, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":100
 * 
 *     @property
 *     def perms(self):             # <<<<<<<<<<<<<<
 *         raise ConstraintUseError("{0} rules do not have permissions.".format(self.ruletype))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":103
 *         raise ConstraintUseError("{0} rules do not have permissions.".format(self.ruletype))
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.tclass} ({0.expression});".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Validatetrans_statement(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_statement(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/constraint.pxi":104
 * 
 *     def statement(self):
 *         return "{0.ruletype} {0.tclass} ({0.expression});".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_tclass_0_expressio, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":103
 *         raise ConstraintUseError("{0} rules do not have permissions.".format(self.ruletype))
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.tclass} ({0.expression});".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Validatetrans_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.expression));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.expression));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.expression));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.tclass);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.tclass);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->__pyx_base.tclass);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.expression, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.expression) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.tclass != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Validatetrans); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_174173316);
    __Pyx_GIVEREF(__pyx_int_174173316);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_174173316);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.expression is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, None), state
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Validatetrans); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_174173316);
    __Pyx_GIVEREF(__pyx_int_174173316);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_174173316);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Validatetrans_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Validatetrans_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_13Validatetrans_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Validatetrans__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Validatetrans, (type(self), 0xa61ac84, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Validatetrans__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Validatetrans.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":130
 * 
 *     @staticmethod
 *     cdef inline ConstraintExpression factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating ConstraintExpression objects."""
 *         cdef:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_f_7setools_9policyrep_20ConstraintExpression_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_e = 0;
  PyObject *__pyx_v_users = 0;
  PyObject *__pyx_v_roles = 0;
  PyObject *__pyx_v_types = 0;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_expr_node = 0;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":133
 *         """Factory function for creating ConstraintExpression objects."""
 *         cdef:
 *             ConstraintExpression e = ConstraintExpression.__new__(ConstraintExpression)             # <<<<<<<<<<<<<<
 *             list users = []
 *             list roles = []
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_ConstraintExpression(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_ConstraintExpression), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 133, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_e = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":134
 *         cdef:
 *             ConstraintExpression e = ConstraintExpression.__new__(ConstraintExpression)
 *             list users = []             # <<<<<<<<<<<<<<
 *             list roles = []
 *             list types = []
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_users = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":135
 *             ConstraintExpression e = ConstraintExpression.__new__(ConstraintExpression)
 *             list users = []
 *             list roles = []             # <<<<<<<<<<<<<<
 *             list types = []
 *             ConstraintExprNode expr_node
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_roles = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":136
 *             list users = []
 *             list roles = []
 *             list types = []             # <<<<<<<<<<<<<<
 *             ConstraintExprNode expr_node
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":139
 *             ConstraintExprNode expr_node
 * 
 *         e.policy = policy             # <<<<<<<<<<<<<<
 * 
 *         e._postfix = []
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_e->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_e->__pyx_base.policy));
  __pyx_v_e->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":141
 *         e.policy = policy
 * 
 *         e._postfix = []             # <<<<<<<<<<<<<<
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):
 *             if expr_node.mls:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_e->_postfix);
  __Pyx_DECREF(__pyx_v_e->_postfix);
  __pyx_v_e->_postfix = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":142
 * 
 *         e._postfix = []
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):             # <<<<<<<<<<<<<<
 *             if expr_node.mls:
 *                 e.mls = 1
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_22ConstraintExprIterator_factory(__pyx_v_policy, __pyx_v_symbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 142, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 142, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 142, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(2, 142, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ConstraintExprNode))))) __PYX_ERR(2, 142, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_expr_node, ((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":143
 *         e._postfix = []
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):
 *             if expr_node.mls:             # <<<<<<<<<<<<<<
 *                 e.mls = 1
 * 
 */
    __pyx_t_5 = (__pyx_v_expr_node->mls != 0);
    if (__pyx_t_5) {

      /* "setools/policyrep/constraint.pxi":144
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):
 *             if expr_node.mls:
 *                 e.mls = 1             # <<<<<<<<<<<<<<
 * 
 *             if expr_node.types:
 */
      __pyx_v_e->mls = 1;

      /* "setools/policyrep/constraint.pxi":143
 *         e._postfix = []
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):
 *             if expr_node.mls:             # <<<<<<<<<<<<<<
 *                 e.mls = 1
 * 
 */
    }

    /* "setools/policyrep/constraint.pxi":146
 *                 e.mls = 1
 * 
 *             if expr_node.types:             # <<<<<<<<<<<<<<
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:
 */
    __pyx_t_5 = (__pyx_v_expr_node->types != 0);
    if (__pyx_t_5) {

      /* "setools/policyrep/constraint.pxi":147
 * 
 *             if expr_node.types:
 *                 types.extend(expr_node.names)             # <<<<<<<<<<<<<<
 *             elif expr_node.roles:
 *                 roles.extend(expr_node.names)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_expr_node), __pyx_n_s_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_types, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 147, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/constraint.pxi":146
 *                 e.mls = 1
 * 
 *             if expr_node.types:             # <<<<<<<<<<<<<<
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:
 */
      goto __pyx_L6;
    }

    /* "setools/policyrep/constraint.pxi":148
 *             if expr_node.types:
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:             # <<<<<<<<<<<<<<
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:
 */
    __pyx_t_5 = (__pyx_v_expr_node->roles != 0);
    if (__pyx_t_5) {

      /* "setools/policyrep/constraint.pxi":149
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:
 *                 roles.extend(expr_node.names)             # <<<<<<<<<<<<<<
 *             elif expr_node.users:
 *                 users.extend(expr_node.names)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_expr_node), __pyx_n_s_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_roles, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 149, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/constraint.pxi":148
 *             if expr_node.types:
 *                 types.extend(expr_node.names)
 *             elif expr_node.roles:             # <<<<<<<<<<<<<<
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:
 */
      goto __pyx_L6;
    }

    /* "setools/policyrep/constraint.pxi":150
 *             elif expr_node.roles:
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:             # <<<<<<<<<<<<<<
 *                 users.extend(expr_node.names)
 * 
 */
    __pyx_t_5 = (__pyx_v_expr_node->users != 0);
    if (__pyx_t_5) {

      /* "setools/policyrep/constraint.pxi":151
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:
 *                 users.extend(expr_node.names)             # <<<<<<<<<<<<<<
 * 
 *             e._postfix.extend(expr_node)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_expr_node), __pyx_n_s_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_users, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 151, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/constraint.pxi":150
 *             elif expr_node.roles:
 *                 roles.extend(expr_node.names)
 *             elif expr_node.users:             # <<<<<<<<<<<<<<
 *                 users.extend(expr_node.names)
 * 
 */
    }
    __pyx_L6:;

    /* "setools/policyrep/constraint.pxi":153
 *                 users.extend(expr_node.names)
 * 
 *             e._postfix.extend(expr_node)             # <<<<<<<<<<<<<<
 * 
 *         e.users = frozenset(users)
 */
    if (unlikely(__pyx_v_e->_postfix == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
      __PYX_ERR(2, 153, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyList_Extend(__pyx_v_e->_postfix, ((PyObject *)__pyx_v_expr_node)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 153, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":142
 * 
 *         e._postfix = []
 *         for expr_node in ConstraintExprIterator.factory(policy, symbol):             # <<<<<<<<<<<<<<
 *             if expr_node.mls:
 *                 e.mls = 1
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":155
 *             e._postfix.extend(expr_node)
 * 
 *         e.users = frozenset(users)             # <<<<<<<<<<<<<<
 *         e.roles = frozenset(roles)
 *         e.types = frozenset(types)
 */
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_v_users); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_e->users);
  __Pyx_DECREF(__pyx_v_e->users);
  __pyx_v_e->users = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":156
 * 
 *         e.users = frozenset(users)
 *         e.roles = frozenset(roles)             # <<<<<<<<<<<<<<
 *         e.types = frozenset(types)
 * 
 */
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_v_roles); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_e->roles);
  __Pyx_DECREF(__pyx_v_e->roles);
  __pyx_v_e->roles = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":157
 *         e.users = frozenset(users)
 *         e.roles = frozenset(roles)
 *         e.types = frozenset(types)             # <<<<<<<<<<<<<<
 * 
 *         return e
 */
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_v_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_e->types);
  __Pyx_DECREF(__pyx_v_e->types);
  __pyx_v_e->types = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":159
 *         e.types = frozenset(types)
 * 
 *         return e             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_e));
  __pyx_r = __pyx_v_e;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":130
 * 
 *     @staticmethod
 *     cdef inline ConstraintExpression factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating ConstraintExpression objects."""
 *         cdef:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_e);
  __Pyx_XDECREF(__pyx_v_users);
  __Pyx_XDECREF(__pyx_v_roles);
  __Pyx_XDECREF(__pyx_v_types);
  __Pyx_XDECREF((PyObject *)__pyx_v_expr_node);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":161
 *         return e
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         cdef list ret = []
 *         for item in self.infix():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_1__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression___str__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___2generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":166
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))             # <<<<<<<<<<<<<<
 *                 else:
 *                     ret.append("{0}".format(" ".join(str(j) for j in item)))
 */

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 166, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___2generator13, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_str___locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 166, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__str__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___2generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 166, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(2, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_item)) { __Pyx_RaiseClosureNameError("item"); __PYX_ERR(2, 166, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_item)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_item)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_item; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_item); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 166, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 166, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 166, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      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(2, 166, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_j);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_j, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_cur_scope->__pyx_v_j); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_4))) __PYX_ERR(2, 166, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___5generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":168
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))
 *                 else:
 *                     ret.append("{0}".format(" ".join(str(j) for j in item)))             # <<<<<<<<<<<<<<
 *             else:
 *                 ret.append(item)
 */

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___3genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 168, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___5generator14, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_str___locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 168, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__str__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_20ConstraintExpression_7__str___5generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 168, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(2, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_item)) { __Pyx_RaiseClosureNameError("item"); __PYX_ERR(2, 168, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_item)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_item)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_item; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_item); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 168, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 168, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 168, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 168, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 168, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      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(2, 168, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_j);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_j, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_cur_scope->__pyx_v_j); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_4))) __PYX_ERR(2, 168, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":161
 *         return e
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         cdef list ret = []
 *         for item in self.infix():
 */

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression___str__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *__pyx_cur_scope;
  PyObject *__pyx_v_ret = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2___str__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_2___str__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 161, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }

  /* "setools/policyrep/constraint.pxi":162
 * 
 *     def __str__(self):
 *         cdef list ret = []             # <<<<<<<<<<<<<<
 *         for item in self.infix():
 *             if isinstance(item, frozenset):
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ret = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":163
 *     def __str__(self):
 *         cdef list ret = []
 *         for item in self.infix():             # <<<<<<<<<<<<<<
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_infix); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 163, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(2, 163, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(2, 163, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(2, 163, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_item);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_item, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":164
 *         cdef list ret = []
 *         for item in self.infix():
 *             if isinstance(item, frozenset):             # <<<<<<<<<<<<<<
 *                 if len(item) > 1:
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))
 */
    __pyx_t_1 = __pyx_cur_scope->__pyx_v_item;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = PyFrozenSet_Check(__pyx_t_1); 
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__pyx_t_6 != 0);
    if (__pyx_t_7) {

      /* "setools/policyrep/constraint.pxi":165
 *         for item in self.infix():
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:             # <<<<<<<<<<<<<<
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))
 *                 else:
 */
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_item;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_8 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(2, 165, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = ((__pyx_t_8 > 1) != 0);
      if (__pyx_t_7) {

        /* "setools/policyrep/constraint.pxi":166
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))             # <<<<<<<<<<<<<<
 *                 else:
 *                     ret.append("{0}".format(" ".join(str(j) for j in item)))
 */
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = __pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_Generator_Next(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyUnicode_Join(__pyx_kp_u__3, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 166, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "setools/policyrep/constraint.pxi":165
 *         for item in self.infix():
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:             # <<<<<<<<<<<<<<
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))
 *                 else:
 */
        goto __pyx_L6;
      }

      /* "setools/policyrep/constraint.pxi":168
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))
 *                 else:
 *                     ret.append("{0}".format(" ".join(str(j) for j in item)))             # <<<<<<<<<<<<<<
 *             else:
 *                 ret.append(item)
 */
      /*else*/ {
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_3, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 168, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = __pyx_pf_7setools_9policyrep_20ConstraintExpression_7__str___3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 168, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_Generator_Next(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 168, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyUnicode_Join(__pyx_kp_u__3, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 168, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 168, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __pyx_L6:;

      /* "setools/policyrep/constraint.pxi":164
 *         cdef list ret = []
 *         for item in self.infix():
 *             if isinstance(item, frozenset):             # <<<<<<<<<<<<<<
 *                 if len(item) > 1:
 *                     ret.append("{{ {0} }} ".format(" ".join(str(j) for j in item)))
 */
      goto __pyx_L5;
    }

    /* "setools/policyrep/constraint.pxi":170
 *                     ret.append("{0}".format(" ".join(str(j) for j in item)))
 *             else:
 *                 ret.append(item)             # <<<<<<<<<<<<<<
 * 
 *         return " ".join(ret)
 */
    /*else*/ {
      __pyx_t_1 = __pyx_cur_scope->__pyx_v_item;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 170, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L5:;

    /* "setools/policyrep/constraint.pxi":163
 *     def __str__(self):
 *         cdef list ret = []
 *         for item in self.infix():             # <<<<<<<<<<<<<<
 *             if isinstance(item, frozenset):
 *                 if len(item) > 1:
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":172
 *                 ret.append(item)
 * 
 *         return " ".join(ret)             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, idx):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__3, __pyx_v_ret); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":161
 *         return e
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         cdef list ret = []
 *         for item in self.infix():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":174
 *         return " ".join(ret)
 * 
 *     def __getitem__(self, idx):             # <<<<<<<<<<<<<<
 *         return self._postfix[idx]
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_idx); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_idx) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_2__getitem__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self), ((PyObject *)__pyx_v_idx));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_2__getitem__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v_idx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "setools/policyrep/constraint.pxi":175
 * 
 *     def __getitem__(self, idx):
 *         return self._postfix[idx]             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_postfix == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(2, 175, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->_postfix, __pyx_v_idx); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":174
 *         return " ".join(ret)
 * 
 *     def __getitem__(self, idx):             # <<<<<<<<<<<<<<
 *         return self._postfix[idx]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":177
 *         return self._postfix[idx]
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._postfix)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5__iter__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_4__iter__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_4__iter__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/constraint.pxi":178
 * 
 *     def __iter__(self):
 *         return iter(self._postfix)             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_postfix;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":177
 *         return self._postfix[idx]
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._postfix)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":180
 *         return iter(self._postfix)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self._postfix == other
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_6__eq__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_6__eq__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/constraint.pxi":181
 * 
 *     def __eq__(self, other):
 *         return self._postfix == other             # <<<<<<<<<<<<<<
 * 
 *     def infix(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->_postfix, __pyx_v_other, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 181, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":180
 *         return iter(self._postfix)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self._postfix == other
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":183
 *         return self._postfix == other
 * 
 *     def infix(self):             # <<<<<<<<<<<<<<
 *         """The expression as an infix notation list."""
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_9infix(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_20ConstraintExpression_8infix[] = "The expression as an infix notation list.";
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_9infix(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("infix (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_8infix(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_8infix(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_v__precedence = NULL;
  long __pyx_v__max_precedence;
  PyObject *__pyx_v__operands = NULL;
  PyObject *__pyx_v_stack = NULL;
  PyObject *__pyx_v_prev_op_precedence = NULL;
  PyObject *__pyx_v_op = NULL;
  PyObject *__pyx_v_operator = NULL;
  PyObject *__pyx_v_operand = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_op_precedence = NULL;
  PyObject *__pyx_v_operand2 = NULL;
  PyObject *__pyx_v_operand1 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("infix", 0);

  /* "setools/policyrep/constraint.pxi":186
 *         """The expression as an infix notation list."""
 * 
 *         if self._infix is None:             # <<<<<<<<<<<<<<
 *             self._infix = []
 * 
 */
  __pyx_t_1 = (__pyx_v_self->_infix == ((PyObject*)Py_None));
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/constraint.pxi":187
 * 
 *         if self._infix is None:
 *             self._infix = []             # <<<<<<<<<<<<<<
 * 
 *             _precedence = {
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->_infix);
    __Pyx_DECREF(__pyx_v_self->_infix);
    __pyx_v_self->_infix = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/constraint.pxi":190
 * 
 *             _precedence = {
 *                 "not": 4,             # <<<<<<<<<<<<<<
 *                 "and": 2,
 *                 "or": 1,
 */
    __pyx_t_3 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_not, __pyx_int_4) < 0) __PYX_ERR(2, 190, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_and, __pyx_int_2) < 0) __PYX_ERR(2, 190, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_or, __pyx_int_1) < 0) __PYX_ERR(2, 190, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_kp_u__12, __pyx_int_3) < 0) __PYX_ERR(2, 190, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_kp_u__13, __pyx_int_3) < 0) __PYX_ERR(2, 190, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_dom, __pyx_int_3) < 0) __PYX_ERR(2, 190, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_domby, __pyx_int_3) < 0) __PYX_ERR(2, 190, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_incomp, __pyx_int_3) < 0) __PYX_ERR(2, 190, __pyx_L1_error)
    __pyx_v__precedence = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/constraint.pxi":199
 *                 "incomp": 3}
 * 
 *             _max_precedence = 4             # <<<<<<<<<<<<<<
 * 
 *             _operands = ["u1", "u2", "u3",
 */
    __pyx_v__max_precedence = 4;

    /* "setools/policyrep/constraint.pxi":201
 *             _max_precedence = 4
 * 
 *             _operands = ["u1", "u2", "u3",             # <<<<<<<<<<<<<<
 *                          "r1", "r2", "r3",
 *                          "t1", "t2", "t3",
 */
    __pyx_t_3 = PyList_New(13); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_u1);
    __Pyx_GIVEREF(__pyx_n_u_u1);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_u1);
    __Pyx_INCREF(__pyx_n_u_u2);
    __Pyx_GIVEREF(__pyx_n_u_u2);
    PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_u2);
    __Pyx_INCREF(__pyx_n_u_u3);
    __Pyx_GIVEREF(__pyx_n_u_u3);
    PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_u_u3);
    __Pyx_INCREF(__pyx_n_u_r1);
    __Pyx_GIVEREF(__pyx_n_u_r1);
    PyList_SET_ITEM(__pyx_t_3, 3, __pyx_n_u_r1);
    __Pyx_INCREF(__pyx_n_u_r2);
    __Pyx_GIVEREF(__pyx_n_u_r2);
    PyList_SET_ITEM(__pyx_t_3, 4, __pyx_n_u_r2);
    __Pyx_INCREF(__pyx_n_u_r3);
    __Pyx_GIVEREF(__pyx_n_u_r3);
    PyList_SET_ITEM(__pyx_t_3, 5, __pyx_n_u_r3);
    __Pyx_INCREF(__pyx_n_u_t1);
    __Pyx_GIVEREF(__pyx_n_u_t1);
    PyList_SET_ITEM(__pyx_t_3, 6, __pyx_n_u_t1);
    __Pyx_INCREF(__pyx_n_u_t2);
    __Pyx_GIVEREF(__pyx_n_u_t2);
    PyList_SET_ITEM(__pyx_t_3, 7, __pyx_n_u_t2);
    __Pyx_INCREF(__pyx_n_u_t3);
    __Pyx_GIVEREF(__pyx_n_u_t3);
    PyList_SET_ITEM(__pyx_t_3, 8, __pyx_n_u_t3);
    __Pyx_INCREF(__pyx_n_u_l1);
    __Pyx_GIVEREF(__pyx_n_u_l1);
    PyList_SET_ITEM(__pyx_t_3, 9, __pyx_n_u_l1);
    __Pyx_INCREF(__pyx_n_u_l2);
    __Pyx_GIVEREF(__pyx_n_u_l2);
    PyList_SET_ITEM(__pyx_t_3, 10, __pyx_n_u_l2);
    __Pyx_INCREF(__pyx_n_u_h1);
    __Pyx_GIVEREF(__pyx_n_u_h1);
    PyList_SET_ITEM(__pyx_t_3, 11, __pyx_n_u_h1);
    __Pyx_INCREF(__pyx_n_u_h2);
    __Pyx_GIVEREF(__pyx_n_u_h2);
    PyList_SET_ITEM(__pyx_t_3, 12, __pyx_n_u_h2);
    __pyx_v__operands = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/constraint.pxi":213
 *             # highest precedence (op) so if there is a single binary
 *             # operator, no parentheses are output
 *             stack = []             # <<<<<<<<<<<<<<
 *             prev_op_precedence = _max_precedence
 *             for op in self._postfix:
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 213, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_stack = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/constraint.pxi":214
 *             # operator, no parentheses are output
 *             stack = []
 *             prev_op_precedence = _max_precedence             # <<<<<<<<<<<<<<
 *             for op in self._postfix:
 *                 if isinstance(op, frozenset) or op in _operands:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v__max_precedence); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 214, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_prev_op_precedence = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/constraint.pxi":215
 *             stack = []
 *             prev_op_precedence = _max_precedence
 *             for op in self._postfix:             # <<<<<<<<<<<<<<
 *                 if isinstance(op, frozenset) or op in _operands:
 *                     # operands
 */
    if (unlikely(__pyx_v_self->_postfix == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(2, 215, __pyx_L1_error)
    }
    __pyx_t_3 = __pyx_v_self->_postfix; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    for (;;) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(2, 215, __pyx_L1_error)
      #else
      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 215, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_op, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/constraint.pxi":216
 *             prev_op_precedence = _max_precedence
 *             for op in self._postfix:
 *                 if isinstance(op, frozenset) or op in _operands:             # <<<<<<<<<<<<<<
 *                     # operands
 *                     stack.append(op)
 */
      __pyx_t_1 = PyFrozenSet_Check(__pyx_v_op); 
      __pyx_t_6 = (__pyx_t_1 != 0);
      if (!__pyx_t_6) {
      } else {
        __pyx_t_2 = __pyx_t_6;
        goto __pyx_L7_bool_binop_done;
      }
      __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_op, __pyx_v__operands, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 216, __pyx_L1_error)
      __pyx_t_1 = (__pyx_t_6 != 0);
      __pyx_t_2 = __pyx_t_1;
      __pyx_L7_bool_binop_done:;
      if (__pyx_t_2) {

        /* "setools/policyrep/constraint.pxi":218
 *                 if isinstance(op, frozenset) or op in _operands:
 *                     # operands
 *                     stack.append(op)             # <<<<<<<<<<<<<<
 *                 else:
 *                     # operators
 */
        __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_v_op); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 218, __pyx_L1_error)

        /* "setools/policyrep/constraint.pxi":216
 *             prev_op_precedence = _max_precedence
 *             for op in self._postfix:
 *                 if isinstance(op, frozenset) or op in _operands:             # <<<<<<<<<<<<<<
 *                     # operands
 *                     stack.append(op)
 */
        goto __pyx_L6;
      }

      /* "setools/policyrep/constraint.pxi":221
 *                 else:
 *                     # operators
 *                     if op == "not":             # <<<<<<<<<<<<<<
 *                         # unary operator
 *                         operator = op
 */
      /*else*/ {
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_op, __pyx_n_u_not, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 221, __pyx_L1_error)
        if (__pyx_t_2) {

          /* "setools/policyrep/constraint.pxi":223
 *                     if op == "not":
 *                         # unary operator
 *                         operator = op             # <<<<<<<<<<<<<<
 *                         operand = stack.pop()
 *                         op_precedence = _precedence[op]
 */
          __Pyx_INCREF(__pyx_v_op);
          __Pyx_XDECREF_SET(__pyx_v_operator, __pyx_v_op);

          /* "setools/policyrep/constraint.pxi":224
 *                         # unary operator
 *                         operator = op
 *                         operand = stack.pop()             # <<<<<<<<<<<<<<
 *                         op_precedence = _precedence[op]
 *                         stack.append([operator, "(", operand, ")"])
 */
          __pyx_t_5 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_XDECREF_SET(__pyx_v_operand, __pyx_t_5);
          __pyx_t_5 = 0;

          /* "setools/policyrep/constraint.pxi":225
 *                         operator = op
 *                         operand = stack.pop()
 *                         op_precedence = _precedence[op]             # <<<<<<<<<<<<<<
 *                         stack.append([operator, "(", operand, ")"])
 *                     else:
 */
          __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v__precedence, __pyx_v_op); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_XDECREF_SET(__pyx_v_op_precedence, __pyx_t_5);
          __pyx_t_5 = 0;

          /* "setools/policyrep/constraint.pxi":226
 *                         operand = stack.pop()
 *                         op_precedence = _precedence[op]
 *                         stack.append([operator, "(", operand, ")"])             # <<<<<<<<<<<<<<
 *                     else:
 *                         # binary operators
 */
          __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 226, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_INCREF(__pyx_v_operator);
          __Pyx_GIVEREF(__pyx_v_operator);
          PyList_SET_ITEM(__pyx_t_5, 0, __pyx_v_operator);
          __Pyx_INCREF(__pyx_kp_u_);
          __Pyx_GIVEREF(__pyx_kp_u_);
          PyList_SET_ITEM(__pyx_t_5, 1, __pyx_kp_u_);
          __Pyx_INCREF(__pyx_v_operand);
          __Pyx_GIVEREF(__pyx_v_operand);
          PyList_SET_ITEM(__pyx_t_5, 2, __pyx_v_operand);
          __Pyx_INCREF(__pyx_kp_u__2);
          __Pyx_GIVEREF(__pyx_kp_u__2);
          PyList_SET_ITEM(__pyx_t_5, 3, __pyx_kp_u__2);
          __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_5); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 226, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

          /* "setools/policyrep/constraint.pxi":221
 *                 else:
 *                     # operators
 *                     if op == "not":             # <<<<<<<<<<<<<<
 *                         # unary operator
 *                         operator = op
 */
          goto __pyx_L9;
        }

        /* "setools/policyrep/constraint.pxi":229
 *                     else:
 *                         # binary operators
 *                         operand2 = stack.pop()             # <<<<<<<<<<<<<<
 *                         operand1 = stack.pop()
 *                         operator = op
 */
        /*else*/ {
          __pyx_t_5 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_XDECREF_SET(__pyx_v_operand2, __pyx_t_5);
          __pyx_t_5 = 0;

          /* "setools/policyrep/constraint.pxi":230
 *                         # binary operators
 *                         operand2 = stack.pop()
 *                         operand1 = stack.pop()             # <<<<<<<<<<<<<<
 *                         operator = op
 * 
 */
          __pyx_t_5 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 230, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_XDECREF_SET(__pyx_v_operand1, __pyx_t_5);
          __pyx_t_5 = 0;

          /* "setools/policyrep/constraint.pxi":231
 *                         operand2 = stack.pop()
 *                         operand1 = stack.pop()
 *                         operator = op             # <<<<<<<<<<<<<<
 * 
 *                         # if previous operator is of higher precedence
 */
          __Pyx_INCREF(__pyx_v_op);
          __Pyx_XDECREF_SET(__pyx_v_operator, __pyx_v_op);

          /* "setools/policyrep/constraint.pxi":235
 *                         # if previous operator is of higher precedence
 *                         # no parentheses are needed.
 *                         if _precedence[op] < prev_op_precedence:             # <<<<<<<<<<<<<<
 *                             stack.append([operand1, operator, operand2])
 *                         else:
 */
          __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v__precedence, __pyx_v_op); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_8 = PyObject_RichCompare(__pyx_t_5, __pyx_v_prev_op_precedence, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 235, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 235, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_2) {

            /* "setools/policyrep/constraint.pxi":236
 *                         # no parentheses are needed.
 *                         if _precedence[op] < prev_op_precedence:
 *                             stack.append([operand1, operator, operand2])             # <<<<<<<<<<<<<<
 *                         else:
 *                             stack.append(["(", operand1, operator, operand2, ")"])
 */
            __pyx_t_8 = PyList_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 236, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_INCREF(__pyx_v_operand1);
            __Pyx_GIVEREF(__pyx_v_operand1);
            PyList_SET_ITEM(__pyx_t_8, 0, __pyx_v_operand1);
            __Pyx_INCREF(__pyx_v_operator);
            __Pyx_GIVEREF(__pyx_v_operator);
            PyList_SET_ITEM(__pyx_t_8, 1, __pyx_v_operator);
            __Pyx_INCREF(__pyx_v_operand2);
            __Pyx_GIVEREF(__pyx_v_operand2);
            PyList_SET_ITEM(__pyx_t_8, 2, __pyx_v_operand2);
            __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_8); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 236, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

            /* "setools/policyrep/constraint.pxi":235
 *                         # if previous operator is of higher precedence
 *                         # no parentheses are needed.
 *                         if _precedence[op] < prev_op_precedence:             # <<<<<<<<<<<<<<
 *                             stack.append([operand1, operator, operand2])
 *                         else:
 */
            goto __pyx_L10;
          }

          /* "setools/policyrep/constraint.pxi":238
 *                             stack.append([operand1, operator, operand2])
 *                         else:
 *                             stack.append(["(", operand1, operator, operand2, ")"])             # <<<<<<<<<<<<<<
 * 
 *                     prev_op_precedence = _precedence[op]
 */
          /*else*/ {
            __pyx_t_8 = PyList_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 238, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_INCREF(__pyx_kp_u_);
            __Pyx_GIVEREF(__pyx_kp_u_);
            PyList_SET_ITEM(__pyx_t_8, 0, __pyx_kp_u_);
            __Pyx_INCREF(__pyx_v_operand1);
            __Pyx_GIVEREF(__pyx_v_operand1);
            PyList_SET_ITEM(__pyx_t_8, 1, __pyx_v_operand1);
            __Pyx_INCREF(__pyx_v_operator);
            __Pyx_GIVEREF(__pyx_v_operator);
            PyList_SET_ITEM(__pyx_t_8, 2, __pyx_v_operator);
            __Pyx_INCREF(__pyx_v_operand2);
            __Pyx_GIVEREF(__pyx_v_operand2);
            PyList_SET_ITEM(__pyx_t_8, 3, __pyx_v_operand2);
            __Pyx_INCREF(__pyx_kp_u__2);
            __Pyx_GIVEREF(__pyx_kp_u__2);
            PyList_SET_ITEM(__pyx_t_8, 4, __pyx_kp_u__2);
            __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_t_8); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 238, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          }
          __pyx_L10:;
        }
        __pyx_L9:;

        /* "setools/policyrep/constraint.pxi":240
 *                             stack.append(["(", operand1, operator, operand2, ")"])
 * 
 *                     prev_op_precedence = _precedence[op]             # <<<<<<<<<<<<<<
 * 
 *             self._infix = flatten_list(stack)
 */
        __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v__precedence, __pyx_v_op); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 240, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF_SET(__pyx_v_prev_op_precedence, __pyx_t_8);
        __pyx_t_8 = 0;
      }
      __pyx_L6:;

      /* "setools/policyrep/constraint.pxi":215
 *             stack = []
 *             prev_op_precedence = _max_precedence
 *             for op in self._postfix:             # <<<<<<<<<<<<<<
 *                 if isinstance(op, frozenset) or op in _operands:
 *                     # operands
 */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/constraint.pxi":242
 *                     prev_op_precedence = _precedence[op]
 * 
 *             self._infix = flatten_list(stack)             # <<<<<<<<<<<<<<
 * 
 *         return self._infix
 */
    __pyx_t_3 = __pyx_f_7setools_9policyrep_flatten_list(__pyx_v_stack); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 242, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->_infix);
    __Pyx_DECREF(__pyx_v_self->_infix);
    __pyx_v_self->_infix = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/constraint.pxi":186
 *         """The expression as an infix notation list."""
 * 
 *         if self._infix is None:             # <<<<<<<<<<<<<<
 *             self._infix = []
 * 
 */
  }

  /* "setools/policyrep/constraint.pxi":244
 *             self._infix = flatten_list(stack)
 * 
 *         return self._infix             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_infix);
  __pyx_r = __pyx_v_self->_infix;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":183
 *         return self._postfix == other
 * 
 *     def infix(self):             # <<<<<<<<<<<<<<
 *         """The expression as an infix notation list."""
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.infix", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__precedence);
  __Pyx_XDECREF(__pyx_v__operands);
  __Pyx_XDECREF(__pyx_v_stack);
  __Pyx_XDECREF(__pyx_v_prev_op_precedence);
  __Pyx_XDECREF(__pyx_v_op);
  __Pyx_XDECREF(__pyx_v_operator);
  __Pyx_XDECREF(__pyx_v_operand);
  __Pyx_XDECREF(__pyx_v_op_precedence);
  __Pyx_XDECREF(__pyx_v_operand2);
  __Pyx_XDECREF(__pyx_v_operand1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":246
 *         return self._infix
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_11statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_11statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_10statement(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_10statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/constraint.pxi":247
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(2, 247, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":246
 *         return self._infix
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":120
 *         list _infix
 *         list _postfix
 *         readonly bint mls             # <<<<<<<<<<<<<<
 *         readonly frozenset users
 *         readonly frozenset roles
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_3mls_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_3mls_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_3mls___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_3mls___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->mls); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __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("setools.policyrep.ConstraintExpression.mls.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":121
 *         list _postfix
 *         readonly bint mls
 *         readonly frozenset users             # <<<<<<<<<<<<<<
 *         readonly frozenset roles
 *         readonly frozenset types
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5users_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5users_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_5users___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5users___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->users);
  __pyx_r = __pyx_v_self->users;
  goto __pyx_L0;

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

/* "setools/policyrep/constraint.pxi":122
 *         readonly bint mls
 *         readonly frozenset users
 *         readonly frozenset roles             # <<<<<<<<<<<<<<
 *         readonly frozenset types
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5roles_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5roles_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_5roles___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5roles___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->roles);
  __pyx_r = __pyx_v_self->roles;
  goto __pyx_L0;

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

/* "setools/policyrep/constraint.pxi":123
 *         readonly frozenset users
 *         readonly frozenset roles
 *         readonly frozenset types             # <<<<<<<<<<<<<<
 * 
 *     # There is no levels attribute as specific
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5types_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_5types_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_5types___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_5types___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->types);
  __pyx_r = __pyx_v_self->types;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_12__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_12__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._infix, self._postfix, self.key, self.mls, self.policy, self.roles, self.types, self.users)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->mls); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(8); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->_infix);
  __Pyx_GIVEREF(__pyx_v_self->_infix);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_infix);
  __Pyx_INCREF(__pyx_v_self->_postfix);
  __Pyx_GIVEREF(__pyx_v_self->_postfix);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->_postfix);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->roles);
  __Pyx_GIVEREF(__pyx_v_self->roles);
  PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->roles);
  __Pyx_INCREF(__pyx_v_self->types);
  __Pyx_GIVEREF(__pyx_v_self->types);
  PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->types);
  __Pyx_INCREF(__pyx_v_self->users);
  __Pyx_GIVEREF(__pyx_v_self->users);
  PyTuple_SET_ITEM(__pyx_t_3, 7, __pyx_v_self->users);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._infix, self._postfix, self.key, self.mls, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._infix, self._postfix, self.key, self.mls, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._infix, self._postfix, self.key, self.mls, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_infix != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->_postfix != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->roles != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->types != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->users != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    __pyx_t_5 = __pyx_t_4;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_ConstraintExpress); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_60418571);
    __Pyx_GIVEREF(__pyx_int_60418571);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_60418571);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._infix is not None or self._postfix is not None or self.policy is not None or self.roles is not None or self.types is not None or self.users is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, None), state
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_ConstraintExpress); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_60418571);
    __Pyx_GIVEREF(__pyx_int_60418571);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_60418571);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20ConstraintExpression_14__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_20ConstraintExpression_14__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExpression__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExpression, (type(self), 0x399ea0b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExpression__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExpression.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_2generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":345
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
 */

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 345, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_2generator15, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_ConstraintExprNode_factory_local, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 345, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_2generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 345, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy)) { __Pyx_RaiseClosureNameError("policy"); __PYX_ERR(2, 345, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/constraint.pxi":346
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))             # <<<<<<<<<<<<<<
 *                 elif n.symbol_type in n._type_syms:
 *                     n.types = True
 */
  __pyx_t_2 = __pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), (&__pyx_cur_scope->__pyx_outer_scope->__pyx_v_symbol->names)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":345
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
 */
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 345, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 345, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 345, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 345, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      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(2, 345, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_r);
    __pyx_r = __pyx_cur_scope->__pyx_v_r;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 345, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_5generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":350
 *                     n.types = True
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in             # <<<<<<<<<<<<<<
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))
 */

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_3genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 350, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_5generator16, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_ConstraintExprNode_factory_local, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 350, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_5generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 350, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":352
 *                         n._names = frozenset(t for t in
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))             # <<<<<<<<<<<<<<
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(
 */
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy)) { __Pyx_RaiseClosureNameError("policy"); __PYX_ERR(2, 352, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/constraint.pxi":351
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(             # <<<<<<<<<<<<<<
 *                                                  policy, symbol.type_names))
 *                     else:
 */
  __pyx_t_2 = __pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory_from_set(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_cur_scope->__pyx_outer_scope->__pyx_v_symbol->type_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 351, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 351, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 351, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 351, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 351, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      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(2, 351, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/constraint.pxi":350
 *                     n.types = True
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in             # <<<<<<<<<<<<<<
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))
 */
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
    __pyx_r = __pyx_cur_scope->__pyx_v_t;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 350, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_8generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":354
 *                                                  policy, symbol.type_names))
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(             # <<<<<<<<<<<<<<
 *                                              policy, &symbol.names))
 *                 else:
 */

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_6genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 354, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_8generator17, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_ConstraintExprNode_factory_local, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 354, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_8generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 354, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":355
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(
 *                                              policy, &symbol.names))             # <<<<<<<<<<<<<<
 *                 else:
 *                     n.users = True
 */
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy)) { __Pyx_RaiseClosureNameError("policy"); __PYX_ERR(2, 355, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/constraint.pxi":354
 *                                                  policy, symbol.type_names))
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(             # <<<<<<<<<<<<<<
 *                                              policy, &symbol.names))
 *                 else:
 */
  __pyx_t_2 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), (&__pyx_cur_scope->__pyx_outer_scope->__pyx_v_symbol->names)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 354, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 354, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 354, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      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(2, 354, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
    __pyx_r = __pyx_cur_scope->__pyx_v_t;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 354, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_11generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/constraint.pxi":358
 *                 else:
 *                     n.users = True
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 * 
 */

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_9genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 358, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_11generator18, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_ConstraintExprNode_factory_local, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(2, 358, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_18ConstraintExprNode_7factory_11generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 358, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy)) { __Pyx_RaiseClosureNameError("policy"); __PYX_ERR(2, 358, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/constraint.pxi":359
 *                     n.users = True
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))             # <<<<<<<<<<<<<<
 * 
 *         except AttributeError:
 */
  __pyx_t_2 = __pyx_f_7setools_9policyrep_19UserEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), (&__pyx_cur_scope->__pyx_outer_scope->__pyx_v_symbol->names)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":358
 *                 else:
 *                     n.users = True
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 * 
 */
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 358, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 358, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 358, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 358, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 358, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      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(2, 358, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_u);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_u, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_u);
    __pyx_r = __pyx_cur_scope->__pyx_v_u;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 358, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":325
 * 
 *     @staticmethod
 *     cdef inline ConstraintExprNode factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating ConstraintExprNode objects."""
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *__pyx_cur_scope;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_n = 0;
  PyObject *__pyx_v_operand1 = NULL;
  PyObject *__pyx_v_operand2 = NULL;
  PyObject *__pyx_v_operator = NULL;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_factory(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_factory, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(2, 325, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_policy = __pyx_v_policy;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __pyx_cur_scope->__pyx_v_symbol = __pyx_v_symbol;

  /* "setools/policyrep/constraint.pxi":327
 *     cdef inline ConstraintExprNode factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):
 *         """Factory function for creating ConstraintExprNode objects."""
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)             # <<<<<<<<<<<<<<
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_ConstraintExprNode(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprNode), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 327, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_n = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":328
 *         """Factory function for creating ConstraintExprNode objects."""
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)
 *         n.policy = policy             # <<<<<<<<<<<<<<
 *         n.key = <uintptr_t>symbol
 *         n.expression_type = symbol.expr_type
 */
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_n->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_n->__pyx_base.policy));
  __pyx_v_n->__pyx_base.policy = __pyx_cur_scope->__pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":329
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         n.expression_type = symbol.expr_type
 *         n.operator = symbol.op
 */
  __pyx_v_n->__pyx_base.key = ((uintptr_t)__pyx_cur_scope->__pyx_v_symbol);

  /* "setools/policyrep/constraint.pxi":330
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
 *         n.expression_type = symbol.expr_type             # <<<<<<<<<<<<<<
 *         n.operator = symbol.op
 * 
 */
  __pyx_t_2 = __pyx_cur_scope->__pyx_v_symbol->expr_type;
  __pyx_v_n->expression_type = __pyx_t_2;

  /* "setools/policyrep/constraint.pxi":331
 *         n.key = <uintptr_t>symbol
 *         n.expression_type = symbol.expr_type
 *         n.operator = symbol.op             # <<<<<<<<<<<<<<
 * 
 *         #
 */
  __pyx_t_2 = __pyx_cur_scope->__pyx_v_symbol->op;
  __pyx_v_n->operator = __pyx_t_2;

  /* "setools/policyrep/constraint.pxi":336
 *         # Determine attributes of expression node
 *         #
 *         if symbol.expr_type in (sepol.CEXPR_ATTR, sepol.CEXPR_NAMES):             # <<<<<<<<<<<<<<
 *             n._symbol_type = symbol.attr
 * 
 */
  __pyx_t_2 = __pyx_cur_scope->__pyx_v_symbol->expr_type;
  __pyx_t_4 = ((__pyx_t_2 == CEXPR_ATTR) != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = ((__pyx_t_2 == CEXPR_NAMES) != 0);
  __pyx_t_3 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "setools/policyrep/constraint.pxi":337
 *         #
 *         if symbol.expr_type in (sepol.CEXPR_ATTR, sepol.CEXPR_NAMES):
 *             n._symbol_type = symbol.attr             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
    __pyx_t_2 = __pyx_cur_scope->__pyx_v_symbol->attr;
    __pyx_v_n->_symbol_type = __pyx_t_2;

    /* "setools/policyrep/constraint.pxi":336
 *         # Determine attributes of expression node
 *         #
 *         if symbol.expr_type in (sepol.CEXPR_ATTR, sepol.CEXPR_NAMES):             # <<<<<<<<<<<<<<
 *             n._symbol_type = symbol.attr
 * 
 */
  }

  /* "setools/policyrep/constraint.pxi":339
 *             n._symbol_type = symbol.attr
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    /*try:*/ {

      /* "setools/policyrep/constraint.pxi":340
 * 
 *         try:
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2             # <<<<<<<<<<<<<<
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_symbol_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 340, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyInt_From_int(CEXPR_L1L2); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 340, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_GE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 340, __pyx_L6_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 340, __pyx_L6_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_v_n->mls = __pyx_t_4;

      /* "setools/policyrep/constraint.pxi":342
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:             # <<<<<<<<<<<<<<
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 */
      __pyx_t_4 = ((__pyx_cur_scope->__pyx_v_symbol->expr_type == CEXPR_NAMES) != 0);
      if (__pyx_t_4) {

        /* "setools/policyrep/constraint.pxi":343
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:
 *                 if n.symbol_type in n._role_syms:             # <<<<<<<<<<<<<<
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 */
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_symbol_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 343, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_role_syms); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 343, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, __pyx_t_8, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 343, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_3 = (__pyx_t_4 != 0);
        if (__pyx_t_3) {

          /* "setools/policyrep/constraint.pxi":344
 *             if symbol.expr_type == sepol.CEXPR_NAMES:
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True             # <<<<<<<<<<<<<<
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))
 */
          __pyx_v_n->roles = 1;

          /* "setools/policyrep/constraint.pxi":345
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
 */
          __pyx_t_8 = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 345, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = __Pyx_PyFrozenSet_New(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 345, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GIVEREF(__pyx_t_9);
          __Pyx_GOTREF(__pyx_v_n->_names);
          __Pyx_DECREF(__pyx_v_n->_names);
          __pyx_v_n->_names = ((PyObject*)__pyx_t_9);
          __pyx_t_9 = 0;

          /* "setools/policyrep/constraint.pxi":343
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:
 *                 if n.symbol_type in n._role_syms:             # <<<<<<<<<<<<<<
 *                     n.roles = True
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 */
          goto __pyx_L13;
        }

        /* "setools/policyrep/constraint.pxi":347
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:             # <<<<<<<<<<<<<<
 *                     n.types = True
 *                     if policy.version > 28:
 */
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_symbol_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 347, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_type_syms); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 347, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, __pyx_t_8, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(2, 347, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_4 = (__pyx_t_3 != 0);
        if (__pyx_t_4) {

          /* "setools/policyrep/constraint.pxi":348
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:
 *                     n.types = True             # <<<<<<<<<<<<<<
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in
 */
          __pyx_v_n->types = 1;

          /* "setools/policyrep/constraint.pxi":349
 *                 elif n.symbol_type in n._type_syms:
 *                     n.types = True
 *                     if policy.version > 28:             # <<<<<<<<<<<<<<
 *                         n._names = frozenset(t for t in
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 */
          __pyx_t_4 = ((__pyx_cur_scope->__pyx_v_policy->version > 28) != 0);
          if (__pyx_t_4) {

            /* "setools/policyrep/constraint.pxi":350
 *                     n.types = True
 *                     if policy.version > 28:
 *                         n._names = frozenset(t for t in             # <<<<<<<<<<<<<<
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 *                                                  policy, symbol.type_names))
 */
            __pyx_t_8 = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 350, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_9 = __Pyx_PyFrozenSet_New(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 350, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_GIVEREF(__pyx_t_9);
            __Pyx_GOTREF(__pyx_v_n->_names);
            __Pyx_DECREF(__pyx_v_n->_names);
            __pyx_v_n->_names = ((PyObject*)__pyx_t_9);
            __pyx_t_9 = 0;

            /* "setools/policyrep/constraint.pxi":349
 *                 elif n.symbol_type in n._type_syms:
 *                     n.types = True
 *                     if policy.version > 28:             # <<<<<<<<<<<<<<
 *                         n._names = frozenset(t for t in
 *                                              TypeOrAttributeEbitmapIterator.factory_from_set(
 */
            goto __pyx_L14;
          }

          /* "setools/policyrep/constraint.pxi":354
 *                                                  policy, symbol.type_names))
 *                     else:
 *                         n._names = frozenset(t for t in TypeEbitmapIterator.factory(             # <<<<<<<<<<<<<<
 *                                              policy, &symbol.names))
 *                 else:
 */
          /*else*/ {
            __pyx_t_9 = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_6genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 354, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_8 = __Pyx_PyFrozenSet_New(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 354, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_GIVEREF(__pyx_t_8);
            __Pyx_GOTREF(__pyx_v_n->_names);
            __Pyx_DECREF(__pyx_v_n->_names);
            __pyx_v_n->_names = ((PyObject*)__pyx_t_8);
            __pyx_t_8 = 0;
          }
          __pyx_L14:;

          /* "setools/policyrep/constraint.pxi":347
 *                     n._names = frozenset(r for r in RoleEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))
 *                 elif n.symbol_type in n._type_syms:             # <<<<<<<<<<<<<<
 *                     n.types = True
 *                     if policy.version > 28:
 */
          goto __pyx_L13;
        }

        /* "setools/policyrep/constraint.pxi":357
 *                                              policy, &symbol.names))
 *                 else:
 *                     n.users = True             # <<<<<<<<<<<<<<
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,
 *                                                                                 &symbol.names))
 */
        /*else*/ {
          __pyx_v_n->users = 1;

          /* "setools/policyrep/constraint.pxi":358
 *                 else:
 *                     n.users = True
 *                     n._names = frozenset(u for u in UserEbitmapIterator.factory(policy,             # <<<<<<<<<<<<<<
 *                                                                                 &symbol.names))
 * 
 */
          __pyx_t_8 = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_7factory_9genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 358, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = __Pyx_PyFrozenSet_New(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 358, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GIVEREF(__pyx_t_9);
          __Pyx_GOTREF(__pyx_v_n->_names);
          __Pyx_DECREF(__pyx_v_n->_names);
          __pyx_v_n->_names = ((PyObject*)__pyx_t_9);
          __pyx_t_9 = 0;
        }
        __pyx_L13:;

        /* "setools/policyrep/constraint.pxi":342
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
 *             if symbol.expr_type == sepol.CEXPR_NAMES:             # <<<<<<<<<<<<<<
 *                 if n.symbol_type in n._role_syms:
 *                     n.roles = True
 */
      }

      /* "setools/policyrep/constraint.pxi":339
 *             n._symbol_type = symbol.attr
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
 */
    }
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L11_try_end;
    __pyx_L6_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "setools/policyrep/constraint.pxi":361
 *                                                                                 &symbol.names))
 * 
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             pass
 * 
 */
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
    if (__pyx_t_10) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L7_exception_handled;
    }
    goto __pyx_L8_except_error;
    __pyx_L8_except_error:;

    /* "setools/policyrep/constraint.pxi":339
 *             n._symbol_type = symbol.attr
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             n.mls = n.symbol_type >= sepol.CEXPR_L1L2
 * 
 */
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    goto __pyx_L1_error;
    __pyx_L7_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    __pyx_L11_try_end:;
  }

  /* "setools/policyrep/constraint.pxi":367
 *         # Build expression
 *         #
 *         if n.expression_type == sepol.CEXPR_ATTR:             # <<<<<<<<<<<<<<
 *             # logical operator with symbols (e.g. u1 == u2)
 *             operand1 = n._sym_to_text[n.symbol_type]
 */
  __pyx_t_4 = ((__pyx_v_n->expression_type == CEXPR_ATTR) != 0);
  if (__pyx_t_4) {

    /* "setools/policyrep/constraint.pxi":369
 *         if n.expression_type == sepol.CEXPR_ATTR:
 *             # logical operator with symbols (e.g. u1 == u2)
 *             operand1 = n._sym_to_text[n.symbol_type]             # <<<<<<<<<<<<<<
 *             operand2 = n._sym_to_text[n.symbol_type + sepol.CEXPR_TARGET]
 *             operator = n._expr_op_to_text[n.operator]
 */
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_sym_to_text); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_symbol_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_operand1 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":370
 *             # logical operator with symbols (e.g. u1 == u2)
 *             operand1 = n._sym_to_text[n.symbol_type]
 *             operand2 = n._sym_to_text[n.symbol_type + sepol.CEXPR_TARGET]             # <<<<<<<<<<<<<<
 *             operator = n._expr_op_to_text[n.operator]
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_sym_to_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_symbol_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyInt_From_int(CEXPR_TARGET); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_v_operand2 = __pyx_t_9;
    __pyx_t_9 = 0;

    /* "setools/policyrep/constraint.pxi":371
 *             operand1 = n._sym_to_text[n.symbol_type]
 *             operand2 = n._sym_to_text[n.symbol_type + sepol.CEXPR_TARGET]
 *             operator = n._expr_op_to_text[n.operator]             # <<<<<<<<<<<<<<
 * 
 *             n._expression = [operand1, operand2, operator]
 */
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_expr_op_to_text); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_n->operator, uint32_t, 0, __Pyx_PyInt_From_uint32_t, 0, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_v_operator = __pyx_t_11;
    __pyx_t_11 = 0;

    /* "setools/policyrep/constraint.pxi":373
 *             operator = n._expr_op_to_text[n.operator]
 * 
 *             n._expression = [operand1, operand2, operator]             # <<<<<<<<<<<<<<
 * 
 *         elif n.expression_type == sepol.CEXPR_NAMES:
 */
    __pyx_t_11 = PyList_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_v_operand1);
    __Pyx_GIVEREF(__pyx_v_operand1);
    PyList_SET_ITEM(__pyx_t_11, 0, __pyx_v_operand1);
    __Pyx_INCREF(__pyx_v_operand2);
    __Pyx_GIVEREF(__pyx_v_operand2);
    PyList_SET_ITEM(__pyx_t_11, 1, __pyx_v_operand2);
    __Pyx_INCREF(__pyx_v_operator);
    __Pyx_GIVEREF(__pyx_v_operator);
    PyList_SET_ITEM(__pyx_t_11, 2, __pyx_v_operator);
    __Pyx_GIVEREF(__pyx_t_11);
    __Pyx_GOTREF(__pyx_v_n->_expression);
    __Pyx_DECREF(__pyx_v_n->_expression);
    __pyx_v_n->_expression = ((PyObject*)__pyx_t_11);
    __pyx_t_11 = 0;

    /* "setools/policyrep/constraint.pxi":367
 *         # Build expression
 *         #
 *         if n.expression_type == sepol.CEXPR_ATTR:             # <<<<<<<<<<<<<<
 *             # logical operator with symbols (e.g. u1 == u2)
 *             operand1 = n._sym_to_text[n.symbol_type]
 */
    goto __pyx_L15;
  }

  /* "setools/policyrep/constraint.pxi":375
 *             n._expression = [operand1, operand2, operator]
 * 
 *         elif n.expression_type == sepol.CEXPR_NAMES:             # <<<<<<<<<<<<<<
 *             # logical operator with type or attribute list (e.g. t1 == { spam_t eggs_t })
 *             operand1 = n._sym_to_text[n.symbol_type]
 */
  __pyx_t_4 = ((__pyx_v_n->expression_type == CEXPR_NAMES) != 0);
  if (__pyx_t_4) {

    /* "setools/policyrep/constraint.pxi":377
 *         elif n.expression_type == sepol.CEXPR_NAMES:
 *             # logical operator with type or attribute list (e.g. t1 == { spam_t eggs_t })
 *             operand1 = n._sym_to_text[n.symbol_type]             # <<<<<<<<<<<<<<
 *             operand2 = n.names
 *             operator = n._expr_op_to_text[n.operator]
 */
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_sym_to_text); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_symbol_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_v_operand1 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":378
 *             # logical operator with type or attribute list (e.g. t1 == { spam_t eggs_t })
 *             operand1 = n._sym_to_text[n.symbol_type]
 *             operand2 = n.names             # <<<<<<<<<<<<<<
 *             operator = n._expr_op_to_text[n.operator]
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_operand2 = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "setools/policyrep/constraint.pxi":379
 *             operand1 = n._sym_to_text[n.symbol_type]
 *             operand2 = n.names
 *             operator = n._expr_op_to_text[n.operator]             # <<<<<<<<<<<<<<
 * 
 *             n._expression = [operand1, operand2, operator]
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_expr_op_to_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_n->operator, uint32_t, 0, __Pyx_PyInt_From_uint32_t, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_operator = __pyx_t_9;
    __pyx_t_9 = 0;

    /* "setools/policyrep/constraint.pxi":381
 *             operator = n._expr_op_to_text[n.operator]
 * 
 *             n._expression = [operand1, operand2, operator]             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
    __pyx_t_9 = PyList_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 381, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v_operand1);
    __Pyx_GIVEREF(__pyx_v_operand1);
    PyList_SET_ITEM(__pyx_t_9, 0, __pyx_v_operand1);
    __Pyx_INCREF(__pyx_v_operand2);
    __Pyx_GIVEREF(__pyx_v_operand2);
    PyList_SET_ITEM(__pyx_t_9, 1, __pyx_v_operand2);
    __Pyx_INCREF(__pyx_v_operator);
    __Pyx_GIVEREF(__pyx_v_operator);
    PyList_SET_ITEM(__pyx_t_9, 2, __pyx_v_operator);
    __Pyx_GIVEREF(__pyx_t_9);
    __Pyx_GOTREF(__pyx_v_n->_expression);
    __Pyx_DECREF(__pyx_v_n->_expression);
    __pyx_v_n->_expression = ((PyObject*)__pyx_t_9);
    __pyx_t_9 = 0;

    /* "setools/policyrep/constraint.pxi":375
 *             n._expression = [operand1, operand2, operator]
 * 
 *         elif n.expression_type == sepol.CEXPR_NAMES:             # <<<<<<<<<<<<<<
 *             # logical operator with type or attribute list (e.g. t1 == { spam_t eggs_t })
 *             operand1 = n._sym_to_text[n.symbol_type]
 */
    goto __pyx_L15;
  }

  /* "setools/policyrep/constraint.pxi":385
 *         else:
 *             # individual operators (and/or/not)
 *             n._expression = [n._expr_type_to_text[n.expression_type]]             # <<<<<<<<<<<<<<
 * 
 *         return n
 */
  /*else*/ {
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_n), __pyx_n_s_expr_type_to_text); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 385, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_n->expression_type, uint32_t, 0, __Pyx_PyInt_From_uint32_t, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 385, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 385, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_GIVEREF(__pyx_t_9);
    __Pyx_GOTREF(__pyx_v_n->_expression);
    __Pyx_DECREF(__pyx_v_n->_expression);
    __pyx_v_n->_expression = ((PyObject*)__pyx_t_9);
    __pyx_t_9 = 0;
  }
  __pyx_L15:;

  /* "setools/policyrep/constraint.pxi":387
 *             n._expression = [n._expr_type_to_text[n.expression_type]]
 * 
 *         return n             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_n));
  __pyx_r = __pyx_v_n;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":325
 * 
 *     @staticmethod
 *     cdef inline ConstraintExprNode factory(SELinuxPolicy policy, sepol.constraint_expr_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating ConstraintExprNode objects."""
 *         cdef ConstraintExprNode n = ConstraintExprNode.__new__(ConstraintExprNode)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_n);
  __Pyx_XDECREF(__pyx_v_operand1);
  __Pyx_XDECREF(__pyx_v_operand2);
  __Pyx_XDECREF(__pyx_v_operator);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":389
 *         return n
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._expression)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_1__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_1__iter__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode___iter__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode___iter__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/constraint.pxi":390
 * 
 *     def __iter__(self):
 *         return iter(self._expression)             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, item):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_expression;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":389
 *         return n
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return iter(self._expression)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":392
 *         return iter(self._expression)
 * 
 *     def __contains__(self, item):             # <<<<<<<<<<<<<<
 *         return item in self._expression
 * 
 */

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_18ConstraintExprNode_3__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/
static int __pyx_pw_7setools_9policyrep_18ConstraintExprNode_3__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_2__contains__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self), ((PyObject *)__pyx_v_item));

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

static int __pyx_pf_7setools_9policyrep_18ConstraintExprNode_2__contains__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v_item) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/constraint.pxi":393
 * 
 *     def __contains__(self, item):
 *         return item in self._expression             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_item, __pyx_v_self->_expression, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 393, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":392
 *         return iter(self._expression)
 * 
 *     def __contains__(self, item):             # <<<<<<<<<<<<<<
 *         return item in self._expression
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":395
 *         return item in self._expression
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return len(self._expression)
 * 
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_4__len__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_18ConstraintExprNode_4__len__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/constraint.pxi":396
 * 
 *     def __len__(self):
 *         return len(self._expression)             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, idx):
 */
  __pyx_t_1 = __pyx_v_self->_expression;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(2, 396, __pyx_L1_error)
  }
  __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 396, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":395
 *         return item in self._expression
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return len(self._expression)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":398
 *         return len(self._expression)
 * 
 *     def __getitem__(self, idx):             # <<<<<<<<<<<<<<
 *         return self._expression[idx]
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_idx); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_idx) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_6__getitem__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self), ((PyObject *)__pyx_v_idx));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_6__getitem__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v_idx) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "setools/policyrep/constraint.pxi":399
 * 
 *     def __getitem__(self, idx):
 *         return self._expression[idx]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(__pyx_v_self->_expression == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(2, 399, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->_expression, __pyx_v_idx); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":398
 *         return len(self._expression)
 * 
 *     def __getitem__(self, idx):             # <<<<<<<<<<<<<<
 *         return self._expression[idx]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":402
 * 
 *     @property
 *     def names(self):             # <<<<<<<<<<<<<<
 *         if self._names is None:
 *             raise AttributeError("names")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_5names_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_5names_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_5names___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_5names___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/constraint.pxi":403
 *     @property
 *     def names(self):
 *         if self._names is None:             # <<<<<<<<<<<<<<
 *             raise AttributeError("names")
 * 
 */
  __pyx_t_1 = (__pyx_v_self->_names == ((PyObject*)Py_None));
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/constraint.pxi":404
 *     def names(self):
 *         if self._names is None:
 *             raise AttributeError("names")             # <<<<<<<<<<<<<<
 * 
 *         return self._names
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_AttributeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(2, 404, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":403
 *     @property
 *     def names(self):
 *         if self._names is None:             # <<<<<<<<<<<<<<
 *             raise AttributeError("names")
 * 
 */
  }

  /* "setools/policyrep/constraint.pxi":406
 *             raise AttributeError("names")
 * 
 *         return self._names             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_names);
  __pyx_r = __pyx_v_self->_names;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":402
 * 
 *     @property
 *     def names(self):             # <<<<<<<<<<<<<<
 *         if self._names is None:
 *             raise AttributeError("names")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.names.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":409
 * 
 *     @property
 *     def symbol_type(self):             # <<<<<<<<<<<<<<
 *         if self._symbol_type is None:
 *             raise AttributeError("symbol_type")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11symbol_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11symbol_type_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_11symbol_type___get__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_11symbol_type___get__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/constraint.pxi":410
 *     @property
 *     def symbol_type(self):
 *         if self._symbol_type is None:             # <<<<<<<<<<<<<<
 *             raise AttributeError("symbol_type")
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_symbol_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (unlikely(__pyx_t_3)) {

    /* "setools/policyrep/constraint.pxi":411
 *     def symbol_type(self):
 *         if self._symbol_type is None:
 *             raise AttributeError("symbol_type")             # <<<<<<<<<<<<<<
 * 
 *         return self._symbol_type
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_AttributeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 411, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(2, 411, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":410
 *     @property
 *     def symbol_type(self):
 *         if self._symbol_type is None:             # <<<<<<<<<<<<<<
 *             raise AttributeError("symbol_type")
 * 
 */
  }

  /* "setools/policyrep/constraint.pxi":413
 *             raise AttributeError("symbol_type")
 * 
 *         return self._symbol_type             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_symbol_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":409
 * 
 *     @property
 *     def symbol_type(self):             # <<<<<<<<<<<<<<
 *         if self._symbol_type is None:
 *             raise AttributeError("symbol_type")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.symbol_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":415
 *         return self._symbol_type
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_9statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_9statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_8statement(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_8statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/constraint.pxi":416
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(2, 416, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":415
 *         return self._symbol_type
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_10__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._expression, self._names, self._symbol_type, self.expression_type, self.key, self.mls, self.operator, self.policy, self.roles, self.types, self.users)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_symbol_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->expression_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_self->mls); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->operator); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_self->roles); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->types); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_self->users); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyTuple_New(11); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(__pyx_v_self->_expression);
  __Pyx_GIVEREF(__pyx_v_self->_expression);
  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_self->_expression);
  __Pyx_INCREF(__pyx_v_self->_names);
  __Pyx_GIVEREF(__pyx_v_self->_names);
  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_self->_names);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_9, 4, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_9, 5, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_9, 6, __pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_9, 7, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_9, 8, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_9, 9, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_9, 10, __pyx_t_8);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_9);
  __pyx_t_9 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._expression, self._names, self._symbol_type, self.expression_type, self.key, self.mls, self.operator, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_9 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_v__dict = __pyx_t_9;
  __pyx_t_9 = 0;

  /* "(tree fragment)":7
 *     state = (self._expression, self._names, self._symbol_type, self.expression_type, self.key, self.mls, self.operator, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_10 = (__pyx_v__dict != Py_None);
  __pyx_t_11 = (__pyx_t_10 != 0);
  if (__pyx_t_11) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v__dict);
    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_8));
    __pyx_t_8 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._expression, self._names, self._symbol_type, self.expression_type, self.key, self.mls, self.operator, self.policy, self.roles, self.types, self.users)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, None), state
 */
  /*else*/ {
    __pyx_t_10 = (__pyx_v_self->_expression != ((PyObject*)Py_None));
    __pyx_t_12 = (__pyx_t_10 != 0);
    if (!__pyx_t_12) {
    } else {
      __pyx_t_11 = __pyx_t_12;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_12 = (__pyx_v_self->_names != ((PyObject*)Py_None));
    __pyx_t_10 = (__pyx_t_12 != 0);
    if (!__pyx_t_10) {
    } else {
      __pyx_t_11 = __pyx_t_10;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_10 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_12 = (__pyx_t_10 != 0);
    __pyx_t_11 = __pyx_t_12;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_11;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, None), state
 *     else:
 */
  __pyx_t_11 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_11) {

    /* "(tree fragment)":13
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_pyx_unpickle_ConstraintExprNod); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_126274049);
    __Pyx_GIVEREF(__pyx_int_126274049);
    PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_int_126274049);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_9, 2, Py_None);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_9);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state);
    __pyx_t_8 = 0;
    __pyx_t_9 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._expression is not None or self._names is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, None), state
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_ConstraintExprNod); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_126274049);
    __Pyx_GIVEREF(__pyx_int_126274049);
    PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_int_126274049);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_state);
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9);
    __pyx_t_7 = 0;
    __pyx_t_9 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintExprNode_12__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintExprNode_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExprNode__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ConstraintExprNode, (type(self), 0x786ca01, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ConstraintExprNode__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprNode.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":432
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):             # <<<<<<<<<<<<<<
 *         """Constraint iterator factory."""
 *         c = ConstraintIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_18ConstraintIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":434
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):
 *         """Constraint iterator factory."""
 *         c = ConstraintIterator()             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.head = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":435
 *         """Constraint iterator factory."""
 *         c = ConstraintIterator()
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.head = head
 *         c.tclass = tclass
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.policy));
  __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":436
 *         c = ConstraintIterator()
 *         c.policy = policy
 *         c.head = head             # <<<<<<<<<<<<<<
 *         c.tclass = tclass
 *         c.reset()
 */
  __pyx_v_c->head = __pyx_v_head;

  /* "setools/policyrep/constraint.pxi":437
 *         c.policy = policy
 *         c.head = head
 *         c.tclass = tclass             # <<<<<<<<<<<<<<
 *         c.reset()
 *         return c
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_tclass));
  __Pyx_GOTREF(__pyx_v_c->tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->tclass));
  __pyx_v_c->tclass = __pyx_v_tclass;

  /* "setools/policyrep/constraint.pxi":438
 *         c.head = head
 *         c.tclass = tclass
 *         c.reset()             # <<<<<<<<<<<<<<
 *         return c
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_c), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":439
 *         c.tclass = tclass
 *         c.reset()
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_c));
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":432
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):             # <<<<<<<<<<<<<<
 *         """Constraint iterator factory."""
 *         c = ConstraintIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":441
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator___next__(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self) {
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  struct constraint_node *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/constraint.pxi":442
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/constraint.pxi":443
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = Constraint.factory(self.policy, self.tclass, self.curr)
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(2, 443, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":442
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/constraint.pxi":445
 *             raise StopIteration
 * 
 *         item = Constraint.factory(self.policy, self.tclass, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_v_self->tclass);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_7setools_9policyrep_10Constraint_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3), __pyx_v_self->curr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_item = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "setools/policyrep/constraint.pxi":446
 * 
 *         item = Constraint.factory(self.policy, self.tclass, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
 */
  __pyx_t_5 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_5;

  /* "setools/policyrep/constraint.pxi":447
 *         item = Constraint.factory(self.policy, self.tclass, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_item);
  __pyx_r = __pyx_v_item;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":441
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":449
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.constraint_node_t *curr
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_18ConstraintIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self) {
  constraint_node_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  constraint_node_t *__pyx_t_1;
  int __pyx_t_2;
  struct constraint_node *__pyx_t_3;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/constraint.pxi":452
 *         cdef:
 *             sepol.constraint_node_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/constraint.pxi":454
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/constraint.pxi":455
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_curr != NULL) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/constraint.pxi":456
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
 */
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/constraint.pxi":457
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/constraint.pxi":459
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":449
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.constraint_node_t *curr
 */

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

/* "setools/policyrep/constraint.pxi":461
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_18ConstraintIterator_4reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator_4reset(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  constraint_node_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/constraint.pxi":463
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/constraint.pxi":461
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18ConstraintIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_18ConstraintIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":471
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):             # <<<<<<<<<<<<<<
 *         """Validatetrans iterator factory."""
 *         v = ValidatetransIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_21ValidatetransIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, constraint_node_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_v = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":473
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):
 *         """Validatetrans iterator factory."""
 *         v = ValidatetransIterator()             # <<<<<<<<<<<<<<
 *         v.policy = policy
 *         v.head = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_ValidatetransIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_v = ((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":474
 *         """Validatetrans iterator factory."""
 *         v = ValidatetransIterator()
 *         v.policy = policy             # <<<<<<<<<<<<<<
 *         v.head = head
 *         v.tclass = tclass
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_v->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_v->__pyx_base.__pyx_base.policy));
  __pyx_v_v->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":475
 *         v = ValidatetransIterator()
 *         v.policy = policy
 *         v.head = head             # <<<<<<<<<<<<<<
 *         v.tclass = tclass
 *         v.reset()
 */
  __pyx_v_v->__pyx_base.head = __pyx_v_head;

  /* "setools/policyrep/constraint.pxi":476
 *         v.policy = policy
 *         v.head = head
 *         v.tclass = tclass             # <<<<<<<<<<<<<<
 *         v.reset()
 *         return v
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_tclass));
  __Pyx_GOTREF(__pyx_v_v->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v_v->__pyx_base.tclass));
  __pyx_v_v->__pyx_base.tclass = __pyx_v_tclass;

  /* "setools/policyrep/constraint.pxi":477
 *         v.head = head
 *         v.tclass = tclass
 *         v.reset()             # <<<<<<<<<<<<<<
 *         return v
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_v), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":478
 *         v.tclass = tclass
 *         v.reset()
 *         return v             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_v));
  __pyx_r = ((PyObject *)__pyx_v_v);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":471
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, sepol.constraint_node_t *head):             # <<<<<<<<<<<<<<
 *         """Validatetrans iterator factory."""
 *         v = ValidatetransIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_v);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":480
 *         return v
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21ValidatetransIterator___next__(((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator___next__(struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self) {
  PyObject *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  struct constraint_node *__pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/constraint.pxi":481
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->__pyx_base.curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/constraint.pxi":482
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = Validatetrans.factory(self.policy, self.tclass, self.curr)
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(2, 482, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":481
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/constraint.pxi":484
 *             raise StopIteration
 * 
 *         item = Validatetrans.factory(self.policy, self.tclass, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_7setools_9policyrep_13Validatetrans_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3), __pyx_v_self->__pyx_base.curr); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_item = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "setools/policyrep/constraint.pxi":485
 * 
 *         item = Validatetrans.factory(self.policy, self.tclass, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
 */
  __pyx_t_5 = __pyx_v_self->__pyx_base.curr->next;
  __pyx_v_self->__pyx_base.curr = __pyx_t_5;

  /* "setools/policyrep/constraint.pxi":486
 *         item = Validatetrans.factory(self.policy, self.tclass, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_item);
  __pyx_r = __pyx_v_item;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":480
 *         return v
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21ValidatetransIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21ValidatetransIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_21ValidatetransIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ValidatetransIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":503
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.constraint_expr_t *head):             # <<<<<<<<<<<<<<
 *         """Constraint expression iterator factory."""
 *         e = ConstraintExprIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_22ConstraintExprIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, constraint_expr_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/constraint.pxi":505
 *     cdef factory(SELinuxPolicy policy, sepol.constraint_expr_t *head):
 *         """Constraint expression iterator factory."""
 *         e = ConstraintExprIterator()             # <<<<<<<<<<<<<<
 *         e.policy = policy
 *         e.head = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_e = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":506
 *         """Constraint expression iterator factory."""
 *         e = ConstraintExprIterator()
 *         e.policy = policy             # <<<<<<<<<<<<<<
 *         e.head = head
 *         e.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_e->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_e->__pyx_base.policy));
  __pyx_v_e->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/constraint.pxi":507
 *         e = ConstraintExprIterator()
 *         e.policy = policy
 *         e.head = head             # <<<<<<<<<<<<<<
 *         e.reset()
 *         return e
 */
  __pyx_v_e->head = __pyx_v_head;

  /* "setools/policyrep/constraint.pxi":508
 *         e.policy = policy
 *         e.head = head
 *         e.reset()             # <<<<<<<<<<<<<<
 *         return e
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_e), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":509
 *         e.head = head
 *         e.reset()
 *         return e             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_e));
  __pyx_r = ((PyObject *)__pyx_v_e);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":503
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.constraint_expr_t *head):             # <<<<<<<<<<<<<<
 *         """Constraint expression iterator factory."""
 *         e = ConstraintExprIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":511
 *         return e
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator___next__(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct constraint_expr *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/constraint.pxi":512
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/constraint.pxi":513
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = ConstraintExprNode.factory(self.policy, self.curr)
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(2, 513, __pyx_L1_error)

    /* "setools/policyrep/constraint.pxi":512
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/constraint.pxi":515
 *             raise StopIteration
 * 
 *         item = ConstraintExprNode.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self->curr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/constraint.pxi":516
 * 
 *         item = ConstraintExprNode.factory(self.policy, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
 */
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/constraint.pxi":517
 *         item = ConstraintExprNode.factory(self.policy, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_item));
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":511
 *         return e
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/constraint.pxi":519
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.constraint_expr_t *curr
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self) {
  constraint_expr_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  constraint_expr_t *__pyx_t_1;
  int __pyx_t_2;
  struct constraint_expr *__pyx_t_3;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/constraint.pxi":522
 *         cdef:
 *             sepol.constraint_expr_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/constraint.pxi":524
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/constraint.pxi":525
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_curr != NULL) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/constraint.pxi":526
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
 */
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/constraint.pxi":527
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/constraint.pxi":529
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/constraint.pxi":519
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.constraint_expr_t *curr
 */

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

/* "setools/policyrep/constraint.pxi":531
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_22ConstraintExprIterator_4reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_4reset(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_4reset(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  constraint_expr_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/constraint.pxi":533
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/constraint.pxi":531
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22ConstraintExprIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_22ConstraintExprIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConstraintExprIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":32
 * 
 *     @staticmethod
 *     cdef inline Context factory(SELinuxPolicy policy, sepol.context_struct_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Context objects."""
 *         cdef Context c = Context.__new__(Context)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Context *__pyx_f_7setools_9policyrep_7Context_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, context_struct_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_c = 0;
  struct __pyx_obj_7setools_9policyrep_Context *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/context.pxi":34
 *     cdef inline Context factory(SELinuxPolicy policy, sepol.context_struct_t *symbol):
 *         """Factory function for creating Context objects."""
 *         cdef Context c = Context.__new__(Context)             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Context(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Context), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 34, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":35
 *         """Factory function for creating Context objects."""
 *         cdef Context c = Context.__new__(Context)
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.key = <uintptr_t>symbol
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.policy));
  __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/context.pxi":36
 *         cdef Context c = Context.__new__(Context)
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))
 *         c.role = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 */
  __pyx_v_c->__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/context.pxi":37
 *         c.policy = policy
 *         c.key = <uintptr_t>symbol
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))             # <<<<<<<<<<<<<<
 *         c.role = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_4User_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->user - 1)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_c->user);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->user));
  __pyx_v_c->user = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":38
 *         c.key = <uintptr_t>symbol
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))
 *         c.role = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))             # <<<<<<<<<<<<<<
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->role - 1)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_c->role);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->role));
  __pyx_v_c->role = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":39
 *         c.user = User.factory(policy, policy.user_value_to_datum(symbol.user - 1))
 *         c.role = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))             # <<<<<<<<<<<<<<
 * 
 *         if policy.mls:
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->type - 1)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_c->type_);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->type_));
  __pyx_v_c->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/context.pxi":41
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))
 * 
 *         if policy.mls:             # <<<<<<<<<<<<<<
 *             c._range = Range.factory(policy, &symbol.range)
 * 
 */
  __pyx_t_2 = (__pyx_v_policy->mls != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/context.pxi":42
 * 
 *         if policy.mls:
 *             c._range = Range.factory(policy, &symbol.range)             # <<<<<<<<<<<<<<
 * 
 *         return c
 */
    __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_5Range_factory(__pyx_v_policy, (&__pyx_v_symbol->range))); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 42, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_c->_range);
    __Pyx_DECREF(((PyObject *)__pyx_v_c->_range));
    __pyx_v_c->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/context.pxi":41
 *         c.type_ = Type.factory(policy, policy.type_value_to_datum(symbol.type - 1))
 * 
 *         if policy.mls:             # <<<<<<<<<<<<<<
 *             c._range = Range.factory(policy, &symbol.range)
 * 
 */
  }

  /* "setools/policyrep/context.pxi":44
 *             c._range = Range.factory(policy, &symbol.range)
 * 
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_c));
  __pyx_r = __pyx_v_c;
  goto __pyx_L0;

  /* "setools/policyrep/context.pxi":32
 * 
 *     @staticmethod
 *     cdef inline Context factory(SELinuxPolicy policy, sepol.context_struct_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Context objects."""
 *         cdef Context c = Context.__new__(Context)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Context.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":46
 *         return c
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self._range:
 *             return "{0.user}:{0.role}:{0.type_}:{0.range_}".format(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_1__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context___str__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Context___str__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/context.pxi":47
 * 
 *     def __str__(self):
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return "{0.user}:{0.role}:{0.type_}:{0.range_}".format(self)
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_range)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(8, 47, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/context.pxi":48
 *     def __str__(self):
 *         if self._range:
 *             return "{0.user}:{0.role}:{0.type_}:{0.range_}".format(self)             # <<<<<<<<<<<<<<
 *         else:
 *             return "{0.user}:{0.role}:{0.type_}".format(self)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_user_0_role_0_type__0_range, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 48, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/context.pxi":47
 * 
 *     def __str__(self):
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return "{0.user}:{0.role}:{0.type_}:{0.range_}".format(self)
 *         else:
 */
  }

  /* "setools/policyrep/context.pxi":50
 *             return "{0.user}:{0.role}:{0.type_}:{0.range_}".format(self)
 *         else:
 *             return "{0.user}:{0.role}:{0.type_}".format(self)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_user_0_role_0_type, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(8, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/context.pxi":46
 *         return c
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self._range:
 *             return "{0.user}:{0.role}:{0.type_}:{0.range_}".format(self)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Context.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":53
 * 
 *     @property
 *     def range_(self):             # <<<<<<<<<<<<<<
 *         """The MLS range of the context."""
 *         if self._range:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_6range__1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_6range__1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_6range____get__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Context_6range____get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/context.pxi":55
 *     def range_(self):
 *         """The MLS range of the context."""
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return self._range
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_range)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(8, 55, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/context.pxi":56
 *         """The MLS range of the context."""
 *         if self._range:
 *             return self._range             # <<<<<<<<<<<<<<
 *         else:
 *             raise MLSDisabled
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject *)__pyx_v_self->_range));
    __pyx_r = ((PyObject *)__pyx_v_self->_range);
    goto __pyx_L0;

    /* "setools/policyrep/context.pxi":55
 *     def range_(self):
 *         """The MLS range of the context."""
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return self._range
 *         else:
 */
  }

  /* "setools/policyrep/context.pxi":58
 *             return self._range
 *         else:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(8, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(8, 58, __pyx_L1_error)
  }

  /* "setools/policyrep/context.pxi":53
 * 
 *     @property
 *     def range_(self):             # <<<<<<<<<<<<<<
 *         """The MLS range of the context."""
 *         if self._range:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Context.range_.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":60
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_3statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_3statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_2statement(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Context_2statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/context.pxi":61
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(8, 61, __pyx_L1_error)

  /* "setools/policyrep/context.pxi":60
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Context.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/context.pxi":26
 * 
 *     cdef:
 *         readonly User user             # <<<<<<<<<<<<<<
 *         readonly Role role
 *         readonly Type type_
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_4user_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_4user_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_4user___get__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Context_4user___get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->user));
  __pyx_r = ((PyObject *)__pyx_v_self->user);
  goto __pyx_L0;

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

/* "setools/policyrep/context.pxi":27
 *     cdef:
 *         readonly User user
 *         readonly Role role             # <<<<<<<<<<<<<<
 *         readonly Type type_
 *         Range _range
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_4role_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_4role_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_4role___get__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Context_4role___get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->role));
  __pyx_r = ((PyObject *)__pyx_v_self->role);
  goto __pyx_L0;

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

/* "setools/policyrep/context.pxi":28
 *         readonly User user
 *         readonly Role role
 *         readonly Type type_             # <<<<<<<<<<<<<<
 *         Range _range
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_5type__1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_5type__1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_5type____get__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Context_5type____get__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->type_));
  __pyx_r = ((PyObject *)__pyx_v_self->type_);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Context_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._range, self.key, self.policy, self.role, self.type_, self.user)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_range));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_range));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->_range));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->role));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->role));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->role));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->type_));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->type_));
  PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->type_));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->user));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->user));
  PyTuple_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->user));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._range, self.key, self.policy, self.role, self.type_, self.user)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._range, self.key, self.policy, self.role, self.type_, self.user)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._range, self.key, self.policy, self.role, self.type_, self.user)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->_range) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->role) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->type_) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->user) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Context); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_255013277);
    __Pyx_GIVEREF(__pyx_int_255013277);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_255013277);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._range is not None or self.policy is not None or self.role is not None or self.type_ is not None or self.user is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, None), state
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Context); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_255013277);
    __Pyx_GIVEREF(__pyx_int_255013277);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_255013277);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Context.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Context_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Context_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Context_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Context_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Context__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Context, (type(self), 0xf33319d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Context__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Context.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":46
 * 
 *     @classmethod
 *     def from_default_range(cls, range_):             # <<<<<<<<<<<<<<
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultValue_1from_default_range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12DefaultValue_1from_default_range = {"from_default_range", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_12DefaultValue_1from_default_range, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultValue_1from_default_range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_cls = 0;
  PyObject *__pyx_v_range_ = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_default_range (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cls,&__pyx_n_s_range_2,0};
    PyObject* values[2] = {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  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_cls)) != 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_range_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("from_default_range", 1, 2, 2, 1); __PYX_ERR(9, 46, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_default_range") < 0)) __PYX_ERR(9, 46, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_cls = values[0];
    __pyx_v_range_ = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_default_range", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(9, 46, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.DefaultValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultValue_from_default_range(__pyx_self, __pyx_v_cls, __pyx_v_range_);

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

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultValue_from_default_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_range_) {
  PyObject *__pyx_v_default_map = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  char const *__pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("from_default_range", 0);

  /* "setools/policyrep/default.pxi":47
 *     @classmethod
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_SOURCE_LOW); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_SOURCE); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < 0) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":48
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_SOURCE_HIGH); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_SOURCE); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_2) < 0) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":49
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_SOURCE_LOW_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_SOURCE); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < 0) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":50
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: sepol.DEFAULT_TARGET,
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_TARGET_LOW); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_TARGET); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_2) < 0) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":51
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_TARGET_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_TARGET); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < 0) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":52
 *                        sepol.DEFAULT_TARGET_LOW: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: sepol.DEFAULT_TARGET,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_TARGET_LOW_HIGH); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_TARGET); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_2) < 0) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":53
 *                        sepol.DEFAULT_TARGET_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: sepol.DEFAULT_TARGET,
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_GLBLUB); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_GLBLUB); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < 0) __PYX_ERR(9, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_default_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/default.pxi":55
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(default_map[range_])
 *         except KeyError as e:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    /*try:*/ {

      /* "setools/policyrep/default.pxi":56
 * 
 *         try:
 *             return cls(default_map[range_])             # <<<<<<<<<<<<<<
 *         except KeyError as e:
 *             raise LowLevelPolicyError("Unsupported default value: {}".format(e)) from e
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_default_map, __pyx_v_range_); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 56, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_cls);
      __pyx_t_2 = __pyx_v_cls; __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 56, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/default.pxi":55
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(default_map[range_])
 *         except KeyError as e:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/default.pxi":57
 *         try:
 *             return cls(default_map[range_])
 *         except KeyError as e:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError("Unsupported default value: {}".format(e)) from e
 * 
 */
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_8) {
      __Pyx_AddTraceback("setools.policyrep.DefaultValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(9, 57, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_e = __pyx_t_2;
      /*try:*/ {

        /* "setools/policyrep/default.pxi":58
 *             return cls(default_map[range_])
 *         except KeyError as e:
 *             raise LowLevelPolicyError("Unsupported default value: {}".format(e)) from e             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 58, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Unsupported_default_value, __pyx_n_s_format_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 58, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_11, function);
          }
        }
        __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_e);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 58, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_11)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
          }
        }
        __pyx_t_7 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 58, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_Raise(__pyx_t_7, 0, 0, __pyx_v_e);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __PYX_ERR(9, 58, __pyx_L14_error)
      }

      /* "setools/policyrep/default.pxi":57
 *         try:
 *             return cls(default_map[range_])
 *         except KeyError as e:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError("Unsupported default value: {}".format(e)) from e
 * 
 */
      /*finally:*/ {
        __pyx_L14_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_8 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
          }
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17);
          __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14;
          goto __pyx_L5_except_error;
        }
      }
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/default.pxi":55
 *                        sepol.DEFAULT_GLBLUB: sepol.DEFAULT_GLBLUB}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return cls(default_map[range_])
 *         except KeyError as e:
 */
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    goto __pyx_L0;
  }

  /* "setools/policyrep/default.pxi":46
 * 
 *     @classmethod
 *     def from_default_range(cls, range_):             # <<<<<<<<<<<<<<
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("setools.policyrep.DefaultValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_default_map);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":70
 * 
 *     @classmethod
 *     def from_default_range(cls, range_):             # <<<<<<<<<<<<<<
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17DefaultRangeValue_1from_default_range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17DefaultRangeValue_1from_default_range = {"from_default_range", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_17DefaultRangeValue_1from_default_range, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17DefaultRangeValue_1from_default_range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_cls = 0;
  PyObject *__pyx_v_range_ = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_default_range (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cls,&__pyx_n_s_range_2,0};
    PyObject* values[2] = {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  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_cls)) != 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_range_2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("from_default_range", 1, 2, 2, 1); __PYX_ERR(9, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_default_range") < 0)) __PYX_ERR(9, 70, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_cls = values[0];
    __pyx_v_range_ = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_default_range", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(9, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.DefaultRangeValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_17DefaultRangeValue_from_default_range(__pyx_self, __pyx_v_cls, __pyx_v_range_);

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

static PyObject *__pyx_pf_7setools_9policyrep_17DefaultRangeValue_from_default_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_range_) {
  PyObject *__pyx_v_default_map = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  char const *__pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("from_default_range", 0);

  /* "setools/policyrep/default.pxi":71
 *     @classmethod
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_SOURCE_LOW); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_int_1) < 0) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":72
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,
 *                        sepol.DEFAULT_TARGET_LOW: 1,
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_SOURCE_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_int_2) < 0) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":73
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_LOW: 1,
 *                        sepol.DEFAULT_TARGET_HIGH: 2,
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_SOURCE_LOW_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_int_3) < 0) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":74
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,
 *                        sepol.DEFAULT_TARGET_LOW: 1,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_HIGH: 2,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: 3,
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_TARGET_LOW); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_int_1) < 0) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":75
 *                        sepol.DEFAULT_SOURCE_LOW_HIGH: 3,
 *                        sepol.DEFAULT_TARGET_LOW: 1,
 *                        sepol.DEFAULT_TARGET_HIGH: 2,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: 3,
 *                        sepol.DEFAULT_GLBLUB: None}
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_TARGET_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_int_2) < 0) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":76
 *                        sepol.DEFAULT_TARGET_LOW: 1,
 *                        sepol.DEFAULT_TARGET_HIGH: 2,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: 3,             # <<<<<<<<<<<<<<
 *                        sepol.DEFAULT_GLBLUB: None}
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_TARGET_LOW_HIGH); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_int_3) < 0) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":77
 *                        sepol.DEFAULT_TARGET_HIGH: 2,
 *                        sepol.DEFAULT_TARGET_LOW_HIGH: 3,
 *                        sepol.DEFAULT_GLBLUB: None}             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(DEFAULT_GLBLUB); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, Py_None) < 0) __PYX_ERR(9, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_default_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/default.pxi":79
 *                        sepol.DEFAULT_GLBLUB: None}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/default.pxi":80
 * 
 *         try:
 *             value = default_map[range_]             # <<<<<<<<<<<<<<
 *             return None if value is None else cls(value)
 *         except KeyError as e:
 */
      __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_default_map, __pyx_v_range_); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 80, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_v_value = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "setools/policyrep/default.pxi":81
 *         try:
 *             value = default_map[range_]
 *             return None if value is None else cls(value)             # <<<<<<<<<<<<<<
 *         except KeyError as e:
 *             raise LowLevelPolicyError("Unsupported default_range value: {}".format(e)) from e
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = (__pyx_v_value == Py_None);
      if ((__pyx_t_6 != 0)) {
        __Pyx_INCREF(Py_None);
        __pyx_t_1 = Py_None;
      } else {
        __Pyx_INCREF(__pyx_v_cls);
        __pyx_t_7 = __pyx_v_cls; __pyx_t_8 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_value);
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 81, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_1 = __pyx_t_2;
        __pyx_t_2 = 0;
      }
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/default.pxi":79
 *                        sepol.DEFAULT_GLBLUB: None}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "setools/policyrep/default.pxi":82
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
 *         except KeyError as e:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError("Unsupported default_range value: {}".format(e)) from e
 * 
 */
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_9) {
      __Pyx_AddTraceback("setools.policyrep.DefaultRangeValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(9, 82, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_e = __pyx_t_2;
      /*try:*/ {

        /* "setools/policyrep/default.pxi":83
 *             return None if value is None else cls(value)
 *         except KeyError as e:
 *             raise LowLevelPolicyError("Unsupported default_range value: {}".format(e)) from e             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_10)) __PYX_ERR(9, 83, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Unsupported_default_range_value, __pyx_n_s_format_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(9, 83, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
          }
        }
        __pyx_t_11 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_13, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_e);
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(9, 83, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
          }
        }
        __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 83, __pyx_L14_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_Raise(__pyx_t_8, 0, 0, __pyx_v_e);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __PYX_ERR(9, 83, __pyx_L14_error)
      }

      /* "setools/policyrep/default.pxi":82
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
 *         except KeyError as e:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError("Unsupported default_range value: {}".format(e)) from e
 * 
 */
      /*finally:*/ {
        __pyx_L14_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_9 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
          }
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
          __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15;
          goto __pyx_L5_except_error;
        }
      }
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/default.pxi":79
 *                        sepol.DEFAULT_GLBLUB: None}
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             value = default_map[range_]
 *             return None if value is None else cls(value)
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/default.pxi":70
 * 
 *     @classmethod
 *     def from_default_range(cls, range_):             # <<<<<<<<<<<<<<
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("setools.policyrep.DefaultRangeValue.from_default_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_default_map);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":102
 * 
 *     @staticmethod
 *     cdef inline Default factory(SELinuxPolicy policy, ObjClass tclass, user, role, type_, range_):             # <<<<<<<<<<<<<<
 *         """Factory function for Default objects."""
 *         cdef:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Default *__pyx_f_7setools_9policyrep_7Default_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, PyObject *__pyx_v_user, PyObject *__pyx_v_role, PyObject *__pyx_v_type_, PyObject *__pyx_v_range_) {
  struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_obj = 0;
  struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_objr = 0;
  struct __pyx_obj_7setools_9policyrep_Default *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/default.pxi":108
 *             DefaultRange objr
 * 
 *         if user:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_user); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 108, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":109
 * 
 *         if user:
 *             obj = Default()             # <<<<<<<<<<<<<<
 *             obj.policy = policy
 *             obj.tclass = tclass
 */
    __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_Default)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_obj = ((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":110
 *         if user:
 *             obj = Default()
 *             obj.policy = policy             # <<<<<<<<<<<<<<
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_user
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_policy));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
    __Pyx_GOTREF(__pyx_v_obj->__pyx_base.policy);
    __Pyx_DECREF(((PyObject *)__pyx_v_obj->__pyx_base.policy));
    __pyx_v_obj->__pyx_base.policy = __pyx_v_policy;

    /* "setools/policyrep/default.pxi":111
 *             obj = Default()
 *             obj.policy = policy
 *             obj.tclass = tclass             # <<<<<<<<<<<<<<
 *             obj.ruletype = DefaultRuletype.default_user
 *             obj._default = DefaultValue(user)
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_tclass));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_tclass));
    __Pyx_GOTREF(__pyx_v_obj->tclass);
    __Pyx_DECREF(((PyObject *)__pyx_v_obj->tclass));
    __pyx_v_obj->tclass = __pyx_v_tclass;

    /* "setools/policyrep/default.pxi":112
 *             obj.policy = policy
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_user             # <<<<<<<<<<<<<<
 *             obj._default = DefaultValue(user)
 *             return obj
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DefaultRuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_default_user); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_obj->ruletype);
    __Pyx_DECREF(__pyx_v_obj->ruletype);
    __pyx_v_obj->ruletype = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":113
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_user
 *             obj._default = DefaultValue(user)             # <<<<<<<<<<<<<<
 *             return obj
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DefaultValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    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_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v_user) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_user);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_obj->_default);
    __Pyx_DECREF(__pyx_v_obj->_default);
    __pyx_v_obj->_default = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":114
 *             obj.ruletype = DefaultRuletype.default_user
 *             obj._default = DefaultValue(user)
 *             return obj             # <<<<<<<<<<<<<<
 * 
 *         if role:
 */
    __Pyx_XDECREF(((PyObject *)__pyx_r));
    __Pyx_INCREF(((PyObject *)__pyx_v_obj));
    __pyx_r = __pyx_v_obj;
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":108
 *             DefaultRange objr
 * 
 *         if user:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
 */
  }

  /* "setools/policyrep/default.pxi":116
 *             return obj
 * 
 *         if role:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_role); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 116, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":117
 * 
 *         if role:
 *             obj = Default()             # <<<<<<<<<<<<<<
 *             obj.policy = policy
 *             obj.tclass = tclass
 */
    __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_Default)); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_obj = ((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":118
 *         if role:
 *             obj = Default()
 *             obj.policy = policy             # <<<<<<<<<<<<<<
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_role
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_policy));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
    __Pyx_GOTREF(__pyx_v_obj->__pyx_base.policy);
    __Pyx_DECREF(((PyObject *)__pyx_v_obj->__pyx_base.policy));
    __pyx_v_obj->__pyx_base.policy = __pyx_v_policy;

    /* "setools/policyrep/default.pxi":119
 *             obj = Default()
 *             obj.policy = policy
 *             obj.tclass = tclass             # <<<<<<<<<<<<<<
 *             obj.ruletype = DefaultRuletype.default_role
 *             obj._default = DefaultValue(role)
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_tclass));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_tclass));
    __Pyx_GOTREF(__pyx_v_obj->tclass);
    __Pyx_DECREF(((PyObject *)__pyx_v_obj->tclass));
    __pyx_v_obj->tclass = __pyx_v_tclass;

    /* "setools/policyrep/default.pxi":120
 *             obj.policy = policy
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_role             # <<<<<<<<<<<<<<
 *             obj._default = DefaultValue(role)
 *             return obj
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_DefaultRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_default_role); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_obj->ruletype);
    __Pyx_DECREF(__pyx_v_obj->ruletype);
    __pyx_v_obj->ruletype = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":121
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_role
 *             obj._default = DefaultValue(role)             # <<<<<<<<<<<<<<
 *             return obj
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_DefaultValue); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_role) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_role);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_obj->_default);
    __Pyx_DECREF(__pyx_v_obj->_default);
    __pyx_v_obj->_default = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":122
 *             obj.ruletype = DefaultRuletype.default_role
 *             obj._default = DefaultValue(role)
 *             return obj             # <<<<<<<<<<<<<<
 * 
 *         if type_:
 */
    __Pyx_XDECREF(((PyObject *)__pyx_r));
    __Pyx_INCREF(((PyObject *)__pyx_v_obj));
    __pyx_r = __pyx_v_obj;
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":116
 *             return obj
 * 
 *         if role:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
 */
  }

  /* "setools/policyrep/default.pxi":124
 *             return obj
 * 
 *         if type_:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_type_); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 124, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":125
 * 
 *         if type_:
 *             obj = Default()             # <<<<<<<<<<<<<<
 *             obj.policy = policy
 *             obj.tclass = tclass
 */
    __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_Default)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_obj = ((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":126
 *         if type_:
 *             obj = Default()
 *             obj.policy = policy             # <<<<<<<<<<<<<<
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_type
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_policy));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
    __Pyx_GOTREF(__pyx_v_obj->__pyx_base.policy);
    __Pyx_DECREF(((PyObject *)__pyx_v_obj->__pyx_base.policy));
    __pyx_v_obj->__pyx_base.policy = __pyx_v_policy;

    /* "setools/policyrep/default.pxi":127
 *             obj = Default()
 *             obj.policy = policy
 *             obj.tclass = tclass             # <<<<<<<<<<<<<<
 *             obj.ruletype = DefaultRuletype.default_type
 *             obj._default = DefaultValue(type_)
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_tclass));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_tclass));
    __Pyx_GOTREF(__pyx_v_obj->tclass);
    __Pyx_DECREF(((PyObject *)__pyx_v_obj->tclass));
    __pyx_v_obj->tclass = __pyx_v_tclass;

    /* "setools/policyrep/default.pxi":128
 *             obj.policy = policy
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_type             # <<<<<<<<<<<<<<
 *             obj._default = DefaultValue(type_)
 *             return obj
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DefaultRuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_default_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_obj->ruletype);
    __Pyx_DECREF(__pyx_v_obj->ruletype);
    __pyx_v_obj->ruletype = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":129
 *             obj.tclass = tclass
 *             obj.ruletype = DefaultRuletype.default_type
 *             obj._default = DefaultValue(type_)             # <<<<<<<<<<<<<<
 *             return obj
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DefaultValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    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_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_type_);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_obj->_default);
    __Pyx_DECREF(__pyx_v_obj->_default);
    __pyx_v_obj->_default = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":130
 *             obj.ruletype = DefaultRuletype.default_type
 *             obj._default = DefaultValue(type_)
 *             return obj             # <<<<<<<<<<<<<<
 * 
 *         if range_:
 */
    __Pyx_XDECREF(((PyObject *)__pyx_r));
    __Pyx_INCREF(((PyObject *)__pyx_v_obj));
    __pyx_r = __pyx_v_obj;
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":124
 *             return obj
 * 
 *         if type_:             # <<<<<<<<<<<<<<
 *             obj = Default()
 *             obj.policy = policy
 */
  }

  /* "setools/policyrep/default.pxi":132
 *             return obj
 * 
 *         if range_:             # <<<<<<<<<<<<<<
 *             objr = DefaultRange()
 *             objr.policy = policy
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_range_); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 132, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":133
 * 
 *         if range_:
 *             objr = DefaultRange()             # <<<<<<<<<<<<<<
 *             objr.policy = policy
 *             objr.ruletype = DefaultRuletype.default_range
 */
    __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_DefaultRange)); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_objr = ((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/default.pxi":134
 *         if range_:
 *             objr = DefaultRange()
 *             objr.policy = policy             # <<<<<<<<<<<<<<
 *             objr.ruletype = DefaultRuletype.default_range
 *             objr.tclass = tclass
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_policy));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
    __Pyx_GOTREF(__pyx_v_objr->__pyx_base.__pyx_base.policy);
    __Pyx_DECREF(((PyObject *)__pyx_v_objr->__pyx_base.__pyx_base.policy));
    __pyx_v_objr->__pyx_base.__pyx_base.policy = __pyx_v_policy;

    /* "setools/policyrep/default.pxi":135
 *             objr = DefaultRange()
 *             objr.policy = policy
 *             objr.ruletype = DefaultRuletype.default_range             # <<<<<<<<<<<<<<
 *             objr.tclass = tclass
 *             objr._default = DefaultValue.from_default_range(range_)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_DefaultRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_default_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_objr->__pyx_base.ruletype);
    __Pyx_DECREF(__pyx_v_objr->__pyx_base.ruletype);
    __pyx_v_objr->__pyx_base.ruletype = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":136
 *             objr.policy = policy
 *             objr.ruletype = DefaultRuletype.default_range
 *             objr.tclass = tclass             # <<<<<<<<<<<<<<
 *             objr._default = DefaultValue.from_default_range(range_)
 *             objr.default_range = DefaultRangeValue.from_default_range(range_)
 */
    __Pyx_INCREF(((PyObject *)__pyx_v_tclass));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_tclass));
    __Pyx_GOTREF(__pyx_v_objr->__pyx_base.tclass);
    __Pyx_DECREF(((PyObject *)__pyx_v_objr->__pyx_base.tclass));
    __pyx_v_objr->__pyx_base.tclass = __pyx_v_tclass;

    /* "setools/policyrep/default.pxi":137
 *             objr.ruletype = DefaultRuletype.default_range
 *             objr.tclass = tclass
 *             objr._default = DefaultValue.from_default_range(range_)             # <<<<<<<<<<<<<<
 *             objr.default_range = DefaultRangeValue.from_default_range(range_)
 *             return objr
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_DefaultValue); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_from_default_range); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 137, __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 && 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_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_v_range_) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_range_);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_objr->__pyx_base._default);
    __Pyx_DECREF(__pyx_v_objr->__pyx_base._default);
    __pyx_v_objr->__pyx_base._default = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":138
 *             objr.tclass = tclass
 *             objr._default = DefaultValue.from_default_range(range_)
 *             objr.default_range = DefaultRangeValue.from_default_range(range_)             # <<<<<<<<<<<<<<
 *             return objr
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_DefaultRangeValue); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 138, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_from_default_range); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 138, __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 && 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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_range_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_range_);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 138, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_GOTREF(__pyx_v_objr->default_range);
    __Pyx_DECREF(__pyx_v_objr->default_range);
    __pyx_v_objr->default_range = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "setools/policyrep/default.pxi":139
 *             objr._default = DefaultValue.from_default_range(range_)
 *             objr.default_range = DefaultRangeValue.from_default_range(range_)
 *             return objr             # <<<<<<<<<<<<<<
 * 
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")
 */
    __Pyx_XDECREF(((PyObject *)__pyx_r));
    __Pyx_INCREF(((PyObject *)__pyx_v_objr));
    __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_objr);
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":132
 *             return obj
 * 
 *         if range_:             # <<<<<<<<<<<<<<
 *             objr = DefaultRange()
 *             objr.policy = policy
 */
  }

  /* "setools/policyrep/default.pxi":141
 *             return objr
 * 
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(9, 141, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":102
 * 
 *     @staticmethod
 *     cdef inline Default factory(SELinuxPolicy policy, ObjClass tclass, user, role, type_, range_):             # <<<<<<<<<<<<<<
 *         """Factory function for Default objects."""
 *         cdef:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Default.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_obj);
  __Pyx_XDECREF((PyObject *)__pyx_v_objr);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":143
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default___eq__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Default___eq__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/default.pxi":144
 * 
 *     def __eq__(self, other):
 *         return self.ruletype == other.ruletype \             # <<<<<<<<<<<<<<
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default
 */
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/default.pxi":145
 *     def __eq__(self, other):
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \             # <<<<<<<<<<<<<<
 *                 and self.default == other.default
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_ruletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->ruletype, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 144, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(9, 144, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/default.pxi":146
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_tclass); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self->tclass), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(9, 145, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_default); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_1 = __pyx_t_5;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":143
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Default.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":148
 *                 and self.default == other.default
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.tclass}".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_7Default_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_7Default_3__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_2__hash__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_7Default_2__hash__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/default.pxi":149
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.tclass}".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_tclass, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(9, 149, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":148
 *                 and self.default == other.default
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.tclass}".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Default.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":151
 *         return hash("{0.ruletype}|{0.tclass}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_4__lt__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Default_4__lt__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/default.pxi":153
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 153, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":151
 *         return hash("{0.ruletype}|{0.tclass}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Default.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":156
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         return self._default
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_7default_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_7default___get__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Default_7default___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/default.pxi":157
 *     @property
 *     def default(self):
 *         return self._default             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_default);
  __pyx_r = __pyx_v_self->_default;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":156
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         return self._default
 * 
 */

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

/* "setools/policyrep/default.pxi":159
 *         return self._default
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.tclass} {0.default};".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_6statement(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Default_6statement(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/default.pxi":160
 * 
 *     def statement(self):
 *         return "{0.ruletype} {0.tclass} {0.default};".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_tclass_0_default, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":159
 *         return self._default
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.tclass} {0.default};".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Default.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":94
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly ObjClass tclass
 *         object _default
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_8ruletype_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Default_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

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

/* "setools/policyrep/default.pxi":95
 *     cdef:
 *         readonly object ruletype
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         object _default
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_6tclass_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Default_6tclass___get__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Default_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._default, self.key, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_default);
  __Pyx_GIVEREF(__pyx_v_self->_default);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_default);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->ruletype);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tclass));
  PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->tclass));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._default, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._default, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._default, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->_default != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->ruletype != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Default); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_173393463);
    __Pyx_GIVEREF(__pyx_int_173393463);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_173393463);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._default is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, None), state
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Default); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_173393463);
    __Pyx_GIVEREF(__pyx_int_173393463);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_173393463);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Default.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Default_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Default_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Default_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Default_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Default__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Default, (type(self), 0xa55c637, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Default__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Default.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":169
 *     cdef readonly object default_range
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange___eq__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange___eq__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/default.pxi":170
 * 
 *     def __eq__(self, other):
 *         return self.ruletype == other.ruletype \             # <<<<<<<<<<<<<<
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \
 */
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/default.pxi":171
 *     def __eq__(self, other):
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \             # <<<<<<<<<<<<<<
 *                 and self.default == other.default \
 *                 and self.default_range == other.default_range
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_ruletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->__pyx_base.ruletype, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(9, 170, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/default.pxi":172
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \             # <<<<<<<<<<<<<<
 *                 and self.default_range == other.default_range
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_tclass); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.tclass), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 171, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(9, 171, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/default.pxi":173
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \
 *                 and self.default_range == other.default_range             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/default.pxi":172
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \             # <<<<<<<<<<<<<<
 *                 and self.default_range == other.default_range
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_default); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 172, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(9, 172, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_1 = __pyx_t_5;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L3_bool_binop_done;
  }

  /* "setools/policyrep/default.pxi":173
 *                 and self.tclass == other.tclass \
 *                 and self.default == other.default \
 *                 and self.default_range == other.default_range             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_default_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->default_range, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 173, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":169
 *     cdef readonly object default_range
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return self.ruletype == other.ruletype \
 *                 and self.tclass == other.tclass \
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":175
 *                 and self.default_range == other.default_range
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.tclass}".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_12DefaultRange_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_12DefaultRange_3__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_2__hash__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_12DefaultRange_2__hash__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/default.pxi":176
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.tclass}".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_tclass, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(9, 176, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":175
 *                 and self.default_range == other.default_range
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.tclass}".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":178
 *         return hash("{0.ruletype}|{0.tclass}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_5__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_4__lt__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_4__lt__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/default.pxi":180
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/default.pxi":178
 *         return hash("{0.ruletype}|{0.tclass}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":182
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if self.default_range:
 *             return "{0.ruletype} {0.tclass} {0.default} {0.default_range};".format(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_6statement(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_6statement(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/default.pxi":183
 * 
 *     def statement(self):
 *         if self.default_range:             # <<<<<<<<<<<<<<
 *             return "{0.ruletype} {0.tclass} {0.default} {0.default_range};".format(self)
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->default_range); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 183, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/default.pxi":184
 *     def statement(self):
 *         if self.default_range:
 *             return "{0.ruletype} {0.tclass} {0.default} {0.default_range};".format(self)             # <<<<<<<<<<<<<<
 *         else:
 *             return "{0.ruletype} {0.tclass} {0.default};".format(self)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_tclass_0_default_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 184, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/default.pxi":183
 * 
 *     def statement(self):
 *         if self.default_range:             # <<<<<<<<<<<<<<
 *             return "{0.ruletype} {0.tclass} {0.default} {0.default_range};".format(self)
 *         else:
 */
  }

  /* "setools/policyrep/default.pxi":186
 *             return "{0.ruletype} {0.tclass} {0.default} {0.default_range};".format(self)
 *         else:
 *             return "{0.ruletype} {0.tclass} {0.default};".format(self)             # <<<<<<<<<<<<<<
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_tclass_0_default, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 186, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 186, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/default.pxi":182
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if self.default_range:
 *             return "{0.ruletype} {0.tclass} {0.default} {0.default_range};".format(self)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/default.pxi":167
 *     """A default_range statement."""
 * 
 *     cdef readonly object default_range             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_13default_range_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_13default_range_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_13default_range___get__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_13default_range___get__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->default_range);
  __pyx_r = __pyx_v_self->default_range;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._default, self.default_range, self.key, self.policy, self.ruletype, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._default);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._default);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->__pyx_base._default);
  __Pyx_INCREF(__pyx_v_self->default_range);
  __Pyx_GIVEREF(__pyx_v_self->default_range);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->default_range);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->__pyx_base.ruletype);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  PyTuple_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._default, self.default_range, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._default, self.default_range, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._default, self.default_range, self.key, self.policy, self.ruletype, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->__pyx_base._default != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->default_range != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_DefaultRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_178998772);
    __Pyx_GIVEREF(__pyx_int_178998772);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_178998772);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._default is not None or self.default_range is not None or self.policy is not None or self.ruletype is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, None), state
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_DefaultRange); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_178998772);
    __Pyx_GIVEREF(__pyx_int_178998772);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_178998772);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12DefaultRange_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12DefaultRange_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_12DefaultRange_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_DefaultRange__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_DefaultRange, (type(self), 0xaab4df4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_DefaultRange__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.DefaultRange.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":44
 * 
 *     @staticmethod
 *     cdef inline FSUse factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating FSUse objects."""
 *         cdef FSUse f = FSUse.__new__(FSUse)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_f_7setools_9policyrep_5FSUse_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_f = 0;
  struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":46
 *     cdef inline FSUse factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating FSUse objects."""
 *         cdef FSUse f = FSUse.__new__(FSUse)             # <<<<<<<<<<<<<<
 *         f.policy = policy
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_FSUse(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_FSUse), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 46, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_f = ((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":47
 *         """Factory function for creating FSUse objects."""
 *         cdef FSUse f = FSUse.__new__(FSUse)
 *         f.policy = policy             # <<<<<<<<<<<<<<
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)
 *         f.fs = intern(symbol.u.name)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_f->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_f->__pyx_base.__pyx_base.policy));
  __pyx_v_f->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":48
 *         cdef FSUse f = FSUse.__new__(FSUse)
 *         f.policy = policy
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)             # <<<<<<<<<<<<<<
 *         f.fs = intern(symbol.u.name)
 *         f.context = Context.factory(policy, symbol.context)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FSUseRuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_uint32_t(__pyx_v_symbol->v.behavior); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_f->ruletype);
  __Pyx_DECREF(__pyx_v_f->ruletype);
  __pyx_v_f->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":49
 *         f.policy = policy
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)
 *         f.fs = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 *         f.context = Context.factory(policy, symbol.context)
 *         return f
 */
  __pyx_t_1 = __Pyx_PyStr_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(10, 49, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_f->fs);
  __Pyx_DECREF(__pyx_v_f->fs);
  __pyx_v_f->fs = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":50
 *         f.ruletype = FSUseRuletype(symbol.v.behavior)
 *         f.fs = intern(symbol.u.name)
 *         f.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return f
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_f->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_f->__pyx_base.context));
  __pyx_v_f->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":51
 *         f.fs = intern(symbol.u.name)
 *         f.context = Context.factory(policy, symbol.context)
 *         return f             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_f));
  __pyx_r = __pyx_v_f;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":44
 * 
 *     @staticmethod
 *     cdef inline FSUse factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating FSUse objects."""
 *         cdef FSUse f = FSUse.__new__(FSUse)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.FSUse.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_f);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":53
 *         return f
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.fs}".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_5FSUse_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_5FSUse_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse___hash__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_5FSUse___hash__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/fscontext.pxi":54
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.fs}".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_fs, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(10, 54, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":53
 *         return f
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.fs}".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FSUse.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":56
 *         return hash("{0.ruletype}|{0.fs}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_2__lt__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_2__lt__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/fscontext.pxi":58
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":56
 *         return hash("{0.ruletype}|{0.fs}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FSUse.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":60
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.fs} {0.context};".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_4statement(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_4statement(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/fscontext.pxi":61
 * 
 *     def statement(self):
 *         return "{0.ruletype} {0.fs} {0.context};".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_fs_0_context, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":60
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.fs} {0.context};".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FSUse.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":40
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly str fs
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_8ruletype_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

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

/* "setools/policyrep/fscontext.pxi":41
 *     cdef:
 *         readonly object ruletype
 *         readonly str fs             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_2fs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_2fs_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_2fs___get__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_2fs___get__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->fs);
  __pyx_r = __pyx_v_self->fs;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.fs, self.key, self.policy, self.ruletype)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_INCREF(__pyx_v_self->fs);
  __Pyx_GIVEREF(__pyx_v_self->fs);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->fs);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->ruletype);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.fs, self.key, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.fs, self.key, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.fs, self.key, self.policy, self.ruletype)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->fs != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->ruletype != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_FSUse); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_231018900);
    __Pyx_GIVEREF(__pyx_int_231018900);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_231018900);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.fs is not None or self.policy is not None or self.ruletype is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, None), state
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_FSUse); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_231018900);
    __Pyx_GIVEREF(__pyx_int_231018900);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_231018900);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.FSUse.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5FSUse_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5FSUse_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_5FSUse_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_FSUse__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FSUse, (type(self), 0xdc51194, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FSUse__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.FSUse.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":86
 *                          S_IFSOCK: "-s"}
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self._filetype_to_text[self]
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_1__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13GenfsFiletype___str__(((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype___str__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/fscontext.pxi":87
 * 
 *     def __str__(self):
 *         return self._filetype_to_text[self]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filetype_to_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 87, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":86
 *                          S_IFSOCK: "-s"}
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self._filetype_to_text[self]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13GenfsFiletype_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, None), state
 *     else:
 */
  __pyx_t_3 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_3) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_GenfsFiletype); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_222419149);
    __Pyx_GIVEREF(__pyx_int_222419149);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_222419149);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, None), state
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_GenfsFiletype); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_222419149);
    __Pyx_GIVEREF(__pyx_int_222419149);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_222419149);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13GenfsFiletype_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13GenfsFiletype_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_13GenfsFiletype_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_GenfsFiletype__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GenfsFiletype, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GenfsFiletype__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.GenfsFiletype.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":110
 * 
 *     @staticmethod
 *     cdef inline Genfscon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, fstype):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Genfscon objects."""
 *         cdef Genfscon g = Genfscon.__new__(Genfscon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_f_7setools_9policyrep_8Genfscon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol, PyObject *__pyx_v_fstype) {
  struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_g = 0;
  CYTHON_UNUSED PyObject *__pyx_v_ex = NULL;
  PyObject *__pyx_v_log = NULL;
  struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  char const *__pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":112
 *     cdef inline Genfscon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, fstype):
 *         """Factory function for creating Genfscon objects."""
 *         cdef Genfscon g = Genfscon.__new__(Genfscon)             # <<<<<<<<<<<<<<
 *         g.policy = policy
 *         g.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Genfscon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Genfscon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 112, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_g = ((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":113
 *         """Factory function for creating Genfscon objects."""
 *         cdef Genfscon g = Genfscon.__new__(Genfscon)
 *         g.policy = policy             # <<<<<<<<<<<<<<
 *         g.key = <uintptr_t>symbol
 *         g.fs = fstype
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_g->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_g->__pyx_base.__pyx_base.policy));
  __pyx_v_g->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":114
 *         cdef Genfscon g = Genfscon.__new__(Genfscon)
 *         g.policy = policy
 *         g.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         g.fs = fstype
 *         g.path = intern(symbol.u.name)
 */
  __pyx_v_g->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/fscontext.pxi":115
 *         g.policy = policy
 *         g.key = <uintptr_t>symbol
 *         g.fs = fstype             # <<<<<<<<<<<<<<
 *         g.path = intern(symbol.u.name)
 * 
 */
  if (!(likely(PyUnicode_CheckExact(__pyx_v_fstype))||((__pyx_v_fstype) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_fstype)->tp_name), 0))) __PYX_ERR(10, 115, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_fstype;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_g->fs);
  __Pyx_DECREF(__pyx_v_g->fs);
  __pyx_v_g->fs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":116
 *         g.key = <uintptr_t>symbol
 *         g.fs = fstype
 *         g.path = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 * 
 *         if symbol.v.sclass:
 */
  __pyx_t_1 = __Pyx_PyStr_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(10, 116, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_g->path);
  __Pyx_DECREF(__pyx_v_g->path);
  __pyx_v_g->path = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":118
 *         g.path = intern(symbol.u.name)
 * 
 *         if symbol.v.sclass:             # <<<<<<<<<<<<<<
 *             try:
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 */
  __pyx_t_3 = (__pyx_v_symbol->v.sclass != 0);
  if (__pyx_t_3) {

    /* "setools/policyrep/fscontext.pxi":119
 * 
 *         if symbol.v.sclass:
 *             try:             # <<<<<<<<<<<<<<
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype(Genfscon._sclass_to_stat[g.tclass.name])
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      /*try:*/ {

        /* "setools/policyrep/fscontext.pxi":120
 *         if symbol.v.sclass:
 *             try:
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))             # <<<<<<<<<<<<<<
 *                 g.filetype = GenfsFiletype(Genfscon._sclass_to_stat[g.tclass.name])
 *             except KeyError as ex:
 */
        __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->v.sclass - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 120, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        __Pyx_GOTREF(__pyx_v_g->tclass);
        __Pyx_DECREF(((PyObject *)__pyx_v_g->tclass));
        __pyx_v_g->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
        __pyx_t_2 = 0;

        /* "setools/policyrep/fscontext.pxi":121
 *             try:
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype(Genfscon._sclass_to_stat[g.tclass.name])             # <<<<<<<<<<<<<<
 *             except KeyError as ex:
 *                 log = logging.getLogger(__name__)
 */
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Genfscon), __pyx_n_s_sclass_to_stat); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 121, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_v_g->tclass->__pyx_base.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 121, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsFiletype), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 121, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GIVEREF(__pyx_t_2);
        __Pyx_GOTREF(__pyx_v_g->filetype);
        __Pyx_DECREF(__pyx_v_g->filetype);
        __pyx_v_g->filetype = __pyx_t_2;
        __pyx_t_2 = 0;

        /* "setools/policyrep/fscontext.pxi":119
 * 
 *         if symbol.v.sclass:
 *             try:             # <<<<<<<<<<<<<<
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype(Genfscon._sclass_to_stat[g.tclass.name])
 */
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "setools/policyrep/fscontext.pxi":122
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype(Genfscon._sclass_to_stat[g.tclass.name])
 *             except KeyError as ex:             # <<<<<<<<<<<<<<
 *                 log = logging.getLogger(__name__)
 *                 log.warning("Genfscon {} {} object class {} does not match a file object class. "
 */
      __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
      if (__pyx_t_7) {
        __Pyx_AddTraceback("setools.policyrep.Genfscon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(10, 122, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_v_ex = __pyx_t_1;
        /*try:*/ {

          /* "setools/policyrep/fscontext.pxi":123
 *                 g.filetype = GenfsFiletype(Genfscon._sclass_to_stat[g.tclass.name])
 *             except KeyError as ex:
 *                 log = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 *                 log.warning("Genfscon {} {} object class {} does not match a file object class. "
 *                             "Dropping file type.".format(g.fs, g.path, g.tclass.name))
 */
          __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_logging); if (unlikely(!__pyx_t_10)) __PYX_ERR(10, 123, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_11)) __PYX_ERR(10, 123, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_name_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(10, 123, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_12 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
            __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
            if (likely(__pyx_t_12)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
              __Pyx_INCREF(__pyx_t_12);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_11, function);
            }
          }
          __pyx_t_9 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10);
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 123, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_v_log = __pyx_t_9;
          __pyx_t_9 = 0;

          /* "setools/policyrep/fscontext.pxi":124
 *             except KeyError as ex:
 *                 log = logging.getLogger(__name__)
 *                 log.warning("Genfscon {} {} object class {} does not match a file object class. "             # <<<<<<<<<<<<<<
 *                             "Dropping file type.".format(g.fs, g.path, g.tclass.name))
 *                 g.filetype = GenfsFiletype(0)
 */
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_log, __pyx_n_s_warning); if (unlikely(!__pyx_t_11)) __PYX_ERR(10, 124, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_11);

          /* "setools/policyrep/fscontext.pxi":125
 *                 log = logging.getLogger(__name__)
 *                 log.warning("Genfscon {} {} object class {} does not match a file object class. "
 *                             "Dropping file type.".format(g.fs, g.path, g.tclass.name))             # <<<<<<<<<<<<<<
 *                 g.filetype = GenfsFiletype(0)
 *                 g.tclass = None
 */
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Genfscon_object_class_does_not_m, __pyx_n_s_format_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(10, 125, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_13 = NULL;
          __pyx_t_7 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_12, function);
              __pyx_t_7 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_12)) {
            PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_v_g->fs, __pyx_v_g->path, __pyx_v_g->tclass->__pyx_base.name};
            __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(10, 125, __pyx_L15_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_10);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) {
            PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_v_g->fs, __pyx_v_g->path, __pyx_v_g->tclass->__pyx_base.name};
            __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(10, 125, __pyx_L15_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_10);
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(10, 125, __pyx_L15_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_v_g->fs);
            __Pyx_GIVEREF(__pyx_v_g->fs);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_7, __pyx_v_g->fs);
            __Pyx_INCREF(__pyx_v_g->path);
            __Pyx_GIVEREF(__pyx_v_g->path);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_7, __pyx_v_g->path);
            __Pyx_INCREF(__pyx_v_g->tclass->__pyx_base.name);
            __Pyx_GIVEREF(__pyx_v_g->tclass->__pyx_base.name);
            PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_7, __pyx_v_g->tclass->__pyx_base.name);
            __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(10, 125, __pyx_L15_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
            __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
            if (likely(__pyx_t_12)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
              __Pyx_INCREF(__pyx_t_12);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_11, function);
            }
          }
          __pyx_t_9 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10);
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 124, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

          /* "setools/policyrep/fscontext.pxi":126
 *                 log.warning("Genfscon {} {} object class {} does not match a file object class. "
 *                             "Dropping file type.".format(g.fs, g.path, g.tclass.name))
 *                 g.filetype = GenfsFiletype(0)             # <<<<<<<<<<<<<<
 *                 g.tclass = None
 * 
 */
          __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsFiletype), __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(10, 126, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_9);
          __Pyx_GOTREF(__pyx_v_g->filetype);
          __Pyx_DECREF(__pyx_v_g->filetype);
          __pyx_v_g->filetype = __pyx_t_9;
          __pyx_t_9 = 0;

          /* "setools/policyrep/fscontext.pxi":127
 *                             "Dropping file type.".format(g.fs, g.path, g.tclass.name))
 *                 g.filetype = GenfsFiletype(0)
 *                 g.tclass = None             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
          __Pyx_INCREF(Py_None);
          __Pyx_GIVEREF(Py_None);
          __Pyx_GOTREF(__pyx_v_g->tclass);
          __Pyx_DECREF(((PyObject *)__pyx_v_g->tclass));
          __pyx_v_g->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None);
        }

        /* "setools/policyrep/fscontext.pxi":122
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype(Genfscon._sclass_to_stat[g.tclass.name])
 *             except KeyError as ex:             # <<<<<<<<<<<<<<
 *                 log = logging.getLogger(__name__)
 *                 log.warning("Genfscon {} {} object class {} does not match a file object class. "
 */
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_DECREF(__pyx_v_ex);
            __pyx_v_ex = NULL;
            goto __pyx_L16;
          }
          __pyx_L15_error:;
          /*exception exit:*/{
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
            if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
            __Pyx_XGOTREF(__pyx_t_17);
            __Pyx_XGOTREF(__pyx_t_18);
            __Pyx_XGOTREF(__pyx_t_19);
            __Pyx_XGOTREF(__pyx_t_20);
            __Pyx_XGOTREF(__pyx_t_21);
            __Pyx_XGOTREF(__pyx_t_22);
            __pyx_t_7 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
            {
              __Pyx_DECREF(__pyx_v_ex);
              __pyx_v_ex = NULL;
            }
            if (PY_MAJOR_VERSION >= 3) {
              __Pyx_XGIVEREF(__pyx_t_20);
              __Pyx_XGIVEREF(__pyx_t_21);
              __Pyx_XGIVEREF(__pyx_t_22);
              __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
            }
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19);
            __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
            __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
            goto __pyx_L6_except_error;
          }
          __pyx_L16:;
        }
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;
      __pyx_L6_except_error:;

      /* "setools/policyrep/fscontext.pxi":119
 * 
 *         if symbol.v.sclass:
 *             try:             # <<<<<<<<<<<<<<
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 *                 g.filetype = GenfsFiletype(Genfscon._sclass_to_stat[g.tclass.name])
 */
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      __pyx_L9_try_end:;
    }

    /* "setools/policyrep/fscontext.pxi":118
 *         g.path = intern(symbol.u.name)
 * 
 *         if symbol.v.sclass:             # <<<<<<<<<<<<<<
 *             try:
 *                 g.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.v.sclass-1))
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/fscontext.pxi":130
 * 
 *         else:
 *             g.filetype = GenfsFiletype(0)             # <<<<<<<<<<<<<<
 *             g.tclass = None
 * 
 */
  /*else*/ {
    __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsFiletype), __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    __Pyx_GOTREF(__pyx_v_g->filetype);
    __Pyx_DECREF(__pyx_v_g->filetype);
    __pyx_v_g->filetype = __pyx_t_8;
    __pyx_t_8 = 0;

    /* "setools/policyrep/fscontext.pxi":131
 *         else:
 *             g.filetype = GenfsFiletype(0)
 *             g.tclass = None             # <<<<<<<<<<<<<<
 * 
 *         g.context = Context.factory(policy, symbol.context)
 */
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    __Pyx_GOTREF(__pyx_v_g->tclass);
    __Pyx_DECREF(((PyObject *)__pyx_v_g->tclass));
    __pyx_v_g->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None);
  }
  __pyx_L3:;

  /* "setools/policyrep/fscontext.pxi":133
 *             g.tclass = None
 * 
 *         g.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return g
 * 
 */
  __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_8)) __PYX_ERR(10, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  __Pyx_GOTREF(__pyx_v_g->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_g->__pyx_base.context));
  __pyx_v_g->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "setools/policyrep/fscontext.pxi":134
 * 
 *         g.context = Context.factory(policy, symbol.context)
 *         return g             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_g));
  __pyx_r = __pyx_v_g;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":110
 * 
 *     @staticmethod
 *     cdef inline Genfscon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, fstype):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Genfscon objects."""
 *         cdef Genfscon g = Genfscon.__new__(Genfscon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_g);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XDECREF(__pyx_v_log);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":136
 *         return g
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("genfscon|{0.fs}|{0.path}|{0.filetype}".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_8Genfscon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_8Genfscon_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon___hash__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_8Genfscon___hash__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/fscontext.pxi":137
 * 
 *     def __hash__(self):
 *         return hash("genfscon|{0.fs}|{0.path}|{0.filetype}".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_genfscon_0_fs_0_path_0_filetype, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(10, 137, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":136
 *         return g
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("genfscon|{0.fs}|{0.path}|{0.filetype}".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":139
 *         return hash("genfscon|{0.fs}|{0.path}|{0.filetype}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_2__lt__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/fscontext.pxi":141
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":139
 *         return hash("genfscon|{0.fs}|{0.path}|{0.filetype}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":143
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "genfscon {0.fs} {0.path} {0.filetype} {0.context}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_4statement(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_4statement(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/fscontext.pxi":144
 * 
 *     def statement(self):
 *         return "genfscon {0.fs} {0.path} {0.filetype} {0.context}".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_genfscon_0_fs_0_path_0_filetype_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":143
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "genfscon {0.fs} {0.path} {0.filetype} {0.context}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":95
 * 
 *     cdef:
 *         readonly str fs             # <<<<<<<<<<<<<<
 *         readonly object filetype
 *         readonly ObjClass tclass
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_2fs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_2fs_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_2fs___get__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_2fs___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->fs);
  __pyx_r = __pyx_v_self->fs;
  goto __pyx_L0;

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

/* "setools/policyrep/fscontext.pxi":96
 *     cdef:
 *         readonly str fs
 *         readonly object filetype             # <<<<<<<<<<<<<<
 *         readonly ObjClass tclass
 *         readonly str path
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_8filetype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_8filetype_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_8filetype___get__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_8filetype___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->filetype);
  __pyx_r = __pyx_v_self->filetype;
  goto __pyx_L0;

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

/* "setools/policyrep/fscontext.pxi":97
 *         readonly str fs
 *         readonly object filetype
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         readonly str path
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_6tclass_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_6tclass___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

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

/* "setools/policyrep/fscontext.pxi":98
 *         readonly object filetype
 *         readonly ObjClass tclass
 *         readonly str path             # <<<<<<<<<<<<<<
 * 
 *     _sclass_to_stat = {0: 0,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_4path_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_4path_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_4path___get__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_4path___get__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.filetype, self.fs, self.key, self.path, self.policy, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_INCREF(__pyx_v_self->filetype);
  __Pyx_GIVEREF(__pyx_v_self->filetype);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->filetype);
  __Pyx_INCREF(__pyx_v_self->fs);
  __Pyx_GIVEREF(__pyx_v_self->fs);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->fs);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->path);
  __Pyx_GIVEREF(__pyx_v_self->path);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->path);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 5, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tclass));
  PyTuple_SET_ITEM(__pyx_t_2, 6, ((PyObject *)__pyx_v_self->tclass));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.filetype, self.fs, self.key, self.path, self.policy, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.filetype, self.fs, self.key, self.path, self.policy, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.filetype, self.fs, self.key, self.path, self.policy, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->filetype != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->fs != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->path != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Genfscon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_267343564);
    __Pyx_GIVEREF(__pyx_int_267343564);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_267343564);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.filetype is not None or self.fs is not None or self.path is not None or self.policy is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, None), state
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Genfscon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_267343564);
    __Pyx_GIVEREF(__pyx_int_267343564);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_267343564);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Genfscon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Genfscon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Genfscon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Genfscon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Genfscon, (type(self), 0xfef56cc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Genfscon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Genfscon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":155
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating FSUse iterators."""
 *         i = FSUseIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_13FSUseIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":157
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating FSUse iterators."""
 *         i = FSUseIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_FSUseIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":158
 *         """Factory function for creating FSUse iterators."""
 *         i = FSUseIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":159
 *         i = FSUseIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/fscontext.pxi":160
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":155
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating FSUse iterators."""
 *         i = FSUseIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":162
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return FSUse.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13FSUseIterator___next__(((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator___next__(struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/fscontext.pxi":163
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return FSUse.factory(self.policy, self.ocon)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_FSUseIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_FSUseIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_FSUseIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 163, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 163, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":164
 *     def __next__(self):
 *         super().__next__()
 *         return FSUse.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * cdef class GenfsconIterator:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5FSUse_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":162
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return FSUse.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13FSUseIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13FSUseIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13FSUseIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_13FSUseIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FSUseIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.FSUseIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":177
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.genfs_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating genfscon iterators."""
 *         i = GenfsconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_16GenfsconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, genfs_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":179
 *     cdef factory(SELinuxPolicy policy, sepol.genfs_t *head):
 *         """Factory function for creating genfscon iterators."""
 *         i = GenfsconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":180
 *         """Factory function for creating genfscon iterators."""
 *         i = GenfsconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->policy));
  __pyx_v_i->policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":181
 *         i = GenfsconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->head = __pyx_v_head;
  __pyx_v_i->curr = __pyx_v_head;

  /* "setools/policyrep/fscontext.pxi":182
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":177
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.genfs_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating genfscon iterators."""
 *         i = GenfsconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":184
 *         return i
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_1__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_1__iter__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator___iter__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator___iter__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/fscontext.pxi":185
 * 
 *     def __iter__(self):
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":184
 *         return i
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
 */

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

/* "setools/policyrep/fscontext.pxi":187
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator_2__next__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_2__next__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  struct genfs *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/fscontext.pxi":189
 *     def __next__(self):
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:             # <<<<<<<<<<<<<<
 *             try:
 *                 return self.ocon_iter.__next__()
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->ocon_iter); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(10, 189, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "setools/policyrep/fscontext.pxi":190
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
 *             try:             # <<<<<<<<<<<<<<
 *                 return self.ocon_iter.__next__()
 *             except StopIteration:
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      /*try:*/ {

        /* "setools/policyrep/fscontext.pxi":191
 *         if self.ocon_iter:
 *             try:
 *                 return self.ocon_iter.__next__()             # <<<<<<<<<<<<<<
 *             except StopIteration:
 *                 # sub_iter completed, clear
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ocon_iter, __pyx_n_s_next); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 191, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 191, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_r = __pyx_t_5;
        __pyx_t_5 = 0;
        goto __pyx_L8_try_return;

        /* "setools/policyrep/fscontext.pxi":190
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
 *             try:             # <<<<<<<<<<<<<<
 *                 return self.ocon_iter.__next__()
 *             except StopIteration:
 */
      }
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "setools/policyrep/fscontext.pxi":192
 *             try:
 *                 return self.ocon_iter.__next__()
 *             except StopIteration:             # <<<<<<<<<<<<<<
 *                 # sub_iter completed, clear
 *                 self.ocon_iter = None
 */
      __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_StopIteration);
      if (__pyx_t_8) {
        __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(10, 192, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GOTREF(__pyx_t_7);

        /* "setools/policyrep/fscontext.pxi":194
 *             except StopIteration:
 *                 # sub_iter completed, clear
 *                 self.ocon_iter = None             # <<<<<<<<<<<<<<
 * 
 *         if self.curr == NULL:
 */
        __Pyx_INCREF(Py_None);
        __Pyx_GIVEREF(Py_None);
        __Pyx_GOTREF(__pyx_v_self->ocon_iter);
        __Pyx_DECREF(__pyx_v_self->ocon_iter);
        __pyx_v_self->ocon_iter = Py_None;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;
      __pyx_L6_except_error:;

      /* "setools/policyrep/fscontext.pxi":190
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
 *             try:             # <<<<<<<<<<<<<<
 *                 return self.ocon_iter.__next__()
 *             except StopIteration:
 */
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L1_error;
      __pyx_L8_try_return:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
      goto __pyx_L0;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
    }

    /* "setools/policyrep/fscontext.pxi":189
 *     def __next__(self):
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:             # <<<<<<<<<<<<<<
 *             try:
 *                 return self.ocon_iter.__next__()
 */
  }

  /* "setools/policyrep/fscontext.pxi":196
 *                 self.ocon_iter = None
 * 
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/fscontext.pxi":197
 * 
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         # create a sub-iterator for this fs entry
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(10, 197, __pyx_L1_error)

    /* "setools/policyrep/fscontext.pxi":196
 *                 self.ocon_iter = None
 * 
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/fscontext.pxi":200
 * 
 *         # create a sub-iterator for this fs entry
 *         self.ocon_iter = GenfsconOcontextIterator.factory(self.policy, self.curr.head,             # <<<<<<<<<<<<<<
 *                                                           intern(self.curr.fstype))
 * 
 */
  __pyx_t_7 = ((PyObject *)__pyx_v_self->policy);
  __Pyx_INCREF(__pyx_t_7);

  /* "setools/policyrep/fscontext.pxi":201
 *         # create a sub-iterator for this fs entry
 *         self.ocon_iter = GenfsconOcontextIterator.factory(self.policy, self.curr.head,
 *                                                           intern(self.curr.fstype))             # <<<<<<<<<<<<<<
 * 
 *         self.curr = self.curr.next
 */
  __pyx_t_6 = __Pyx_PyStr_FromString(__pyx_v_self->curr->fstype); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_Intern(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "setools/policyrep/fscontext.pxi":200
 * 
 *         # create a sub-iterator for this fs entry
 *         self.ocon_iter = GenfsconOcontextIterator.factory(self.policy, self.curr.head,             # <<<<<<<<<<<<<<
 *                                                           intern(self.curr.fstype))
 * 
 */
  __pyx_t_6 = __pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_7), __pyx_v_self->curr->head, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_GIVEREF(__pyx_t_6);
  __Pyx_GOTREF(__pyx_v_self->ocon_iter);
  __Pyx_DECREF(__pyx_v_self->ocon_iter);
  __pyx_v_self->ocon_iter = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "setools/policyrep/fscontext.pxi":203
 *                                                           intern(self.curr.fstype))
 * 
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return self.ocon_iter.__next__()
 * 
 */
  __pyx_t_9 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_9;

  /* "setools/policyrep/fscontext.pxi":204
 * 
 *         self.curr = self.curr.next
 *         return self.ocon_iter.__next__()             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ocon_iter, __pyx_n_s_next); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":187
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         # consume sub-iterator first, if one exists
 *         if self.ocon_iter:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":206
 *         return self.ocon_iter.__next__()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count = 0
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator_4__len__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_16GenfsconIterator_4__len__(struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self) {
  size_t __pyx_v_count;
  genfs_t *__pyx_v_genfs;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  genfs_t *__pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  struct genfs *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/fscontext.pxi":208
 *     def __len__(self):
 *         cdef:
 *             size_t count = 0             # <<<<<<<<<<<<<<
 *             sepol.genfs_t *genfs = self.head
 * 
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/fscontext.pxi":209
 *         cdef:
 *             size_t count = 0
 *             sepol.genfs_t *genfs = self.head             # <<<<<<<<<<<<<<
 * 
 *         while genfs:
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_genfs = __pyx_t_1;

  /* "setools/policyrep/fscontext.pxi":211
 *             sepol.genfs_t *genfs = self.head
 * 
 *         while genfs:             # <<<<<<<<<<<<<<
 *             count += len(GenfsconOcontextIterator.factory(self.policy, genfs.head, genfs.fstype))
 *             genfs = genfs.next
 */
  while (1) {
    __pyx_t_2 = (__pyx_v_genfs != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/fscontext.pxi":212
 * 
 *         while genfs:
 *             count += len(GenfsconOcontextIterator.factory(self.policy, genfs.head, genfs.fstype))             # <<<<<<<<<<<<<<
 *             genfs = genfs.next
 * 
 */
    __pyx_t_3 = ((PyObject *)__pyx_v_self->policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyStr_FromString(__pyx_v_genfs->fstype); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_genfs->head, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(10, 212, __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_6 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(10, 212, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_count = (__pyx_v_count + __pyx_t_6);

    /* "setools/policyrep/fscontext.pxi":213
 *         while genfs:
 *             count += len(GenfsconOcontextIterator.factory(self.policy, genfs.head, genfs.fstype))
 *             genfs = genfs.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_7 = __pyx_v_genfs->next;
    __pyx_v_genfs = __pyx_t_7;
  }

  /* "setools/policyrep/fscontext.pxi":215
 *             genfs = genfs.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":206
 *         return self.ocon_iter.__next__()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count = 0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16GenfsconIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_16GenfsconIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.GenfsconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":225
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, fstype):             # <<<<<<<<<<<<<<
 *         """Factory function for creating genfscon sub-iterators."""
 *         i = GenfsconOcontextIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head, PyObject *__pyx_v_fstype) {
  struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/fscontext.pxi":227
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, fstype):
 *         """Factory function for creating genfscon sub-iterators."""
 *         i = GenfsconOcontextIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":228
 *         """Factory function for creating genfscon sub-iterators."""
 *         i = GenfsconOcontextIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         i.fs = fstype
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/fscontext.pxi":229
 *         i = GenfsconOcontextIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         i.fs = fstype
 *         return i
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/fscontext.pxi":230
 *         i.policy = policy
 *         i.head = i.curr = head
 *         i.fs = fstype             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  if (!(likely(PyUnicode_CheckExact(__pyx_v_fstype))||((__pyx_v_fstype) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_fstype)->tp_name), 0))) __PYX_ERR(10, 230, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_fstype;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->fs);
  __Pyx_DECREF(__pyx_v_i->fs);
  __pyx_v_i->fs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":231
 *         i.head = i.curr = head
 *         i.fs = fstype
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":225
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, fstype):             # <<<<<<<<<<<<<<
 *         """Factory function for creating genfscon sub-iterators."""
 *         i = GenfsconOcontextIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/fscontext.pxi":233
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Genfscon.factory(self.policy, self.ocon, self.fs)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator___next__(((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator___next__(struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/fscontext.pxi":234
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Genfscon.factory(self.policy, self.ocon, self.fs)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 234, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 234, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":235
 *     def __next__(self):
 *         super().__next__()
 *         return Genfscon.factory(self.policy, self.ocon, self.fs)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_v_self->fs;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_8Genfscon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/fscontext.pxi":233
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Genfscon.factory(self.policy, self.ocon, self.fs)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_24GenfsconOcontextIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.GenfsconOcontextIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":45
 * 
 *     @staticmethod
 *     cdef inline InitialSID factory(SELinuxPolicy policy, sepol.ocontext *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating InitialSID objects."""
 *         cdef InitialSID i = InitialSID.__new__(InitialSID)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_f_7setools_9policyrep_10InitialSID_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct ocontext *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_i = 0;
  struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/initsid.pxi":47
 *     cdef inline InitialSID factory(SELinuxPolicy policy, sepol.ocontext *symbol):
 *         """Factory function for creating InitialSID objects."""
 *         cdef InitialSID i = InitialSID.__new__(InitialSID)             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_InitialSID(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_InitialSID), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 47, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/initsid.pxi":48
 *         """Factory function for creating InitialSID objects."""
 *         cdef InitialSID i = InitialSID.__new__(InitialSID)
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.context = Context.factory(policy, symbol.context)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/initsid.pxi":49
 *         cdef InitialSID i = InitialSID.__new__(InitialSID)
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 * 
 */
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/initsid.pxi":50
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 * 
 *         if symbol.u.name:
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.context));
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/initsid.pxi":52
 *         i.context = Context.factory(policy, symbol.context)
 * 
 *         if symbol.u.name:             # <<<<<<<<<<<<<<
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:
 */
  __pyx_t_2 = (__pyx_v_symbol->u.name != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/initsid.pxi":53
 * 
 *         if symbol.u.name:
 *             i.name = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 *         elif policy.target_platform == PolicyTarget.selinux:
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 */
    __pyx_t_1 = __Pyx_PyStr_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 53, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(11, 53, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_i->name);
    __Pyx_DECREF(__pyx_v_i->name);
    __pyx_v_i->name = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/initsid.pxi":52
 *         i.context = Context.factory(policy, symbol.context)
 * 
 *         if symbol.u.name:             # <<<<<<<<<<<<<<
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/initsid.pxi":54
 *         if symbol.u.name:
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:             # <<<<<<<<<<<<<<
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PolicyTarget); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_selinux); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_policy->target_platform, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(11, 54, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "setools/policyrep/initsid.pxi":55
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]             # <<<<<<<<<<<<<<
 *         elif policy.target_platform == PolicyTarget.xen:
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_SELINUX_SIDNAMES); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, ((uint32_t)(__pyx_v_symbol->sid[0])), uint32_t, 0, __Pyx_PyInt_From_uint32_t, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(11, 55, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_GOTREF(__pyx_v_i->name);
    __Pyx_DECREF(__pyx_v_i->name);
    __pyx_v_i->name = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/initsid.pxi":54
 *         if symbol.u.name:
 *             i.name = intern(symbol.u.name)
 *         elif policy.target_platform == PolicyTarget.selinux:             # <<<<<<<<<<<<<<
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/initsid.pxi":56
 *         elif policy.target_platform == PolicyTarget.selinux:
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:             # <<<<<<<<<<<<<<
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PolicyTarget); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_xen); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_policy->target_platform, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(11, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_2)) {

    /* "setools/policyrep/initsid.pxi":57
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]             # <<<<<<<<<<<<<<
 *         else:
 *             raise NotImplementedError
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_XEN_SIDNAMES); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 57, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, ((uint32_t)(__pyx_v_symbol->sid[0])), uint32_t, 0, __Pyx_PyInt_From_uint32_t, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 57, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(11, 57, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_i->name);
    __Pyx_DECREF(__pyx_v_i->name);
    __pyx_v_i->name = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/initsid.pxi":56
 *         elif policy.target_platform == PolicyTarget.selinux:
 *             i.name = SELINUX_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         elif policy.target_platform == PolicyTarget.xen:             # <<<<<<<<<<<<<<
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/initsid.pxi":59
 *             i.name = XEN_SIDNAMES[<uint32_t>symbol.sid[0]]
 *         else:
 *             raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *         return i
 */
  /*else*/ {
    __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
    __PYX_ERR(11, 59, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "setools/policyrep/initsid.pxi":61
 *             raise NotImplementedError
 * 
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":45
 * 
 *     @staticmethod
 *     cdef inline InitialSID factory(SELinuxPolicy policy, sepol.ocontext *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating InitialSID objects."""
 *         cdef InitialSID i = InitialSID.__new__(InitialSID)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.InitialSID.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":63
 *         return i
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_1__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID___str__(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID___str__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/initsid.pxi":64
 * 
 *     def __str__(self):
 *         return self.name             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":63
 *         return i
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */

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

/* "setools/policyrep/initsid.pxi":66
 *         return self.name
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "sid {0} {0.context}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_3statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_3statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID_2statement(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_2statement(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/initsid.pxi":67
 * 
 *     def statement(self):
 *         return "sid {0} {0.context}".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_sid_0_0_context, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":66
 *         return self.name
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "sid {0} {0.context}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.InitialSID.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":42
 *     """An initial SID statement."""
 * 
 *     cdef readonly str name             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_4name_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID_4name___get__(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_4name___get__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->name != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_InitialSID); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_218389193);
    __Pyx_GIVEREF(__pyx_int_218389193);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_218389193);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, None), state
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_InitialSID); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_218389193);
    __Pyx_GIVEREF(__pyx_int_218389193);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_218389193);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.InitialSID.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10InitialSID_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10InitialSID_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_10InitialSID_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_InitialSID__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_InitialSID, (type(self), 0xd045ac9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_InitialSID__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.InitialSID.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":75
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating initial SID iterators."""
 *         i = InitialSIDIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_18InitialSIDIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/initsid.pxi":77
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating initial SID iterators."""
 *         i = InitialSIDIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_InitialSIDIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/initsid.pxi":78
 *         """Factory function for creating initial SID iterators."""
 *         i = InitialSIDIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/initsid.pxi":79
 *         i = InitialSIDIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/initsid.pxi":80
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":75
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating initial SID iterators."""
 *         i = InitialSIDIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/initsid.pxi":82
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return InitialSID.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18InitialSIDIterator___next__(((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator___next__(struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/initsid.pxi":83
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return InitialSID.factory(self.policy, self.ocon)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_InitialSIDIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_InitialSIDIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_InitialSIDIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 83, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 83, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/initsid.pxi":84
 *     def __next__(self):
 *         super().__next__()
 *         return InitialSID.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_10InitialSID_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/initsid.pxi":82
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return InitialSID.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18InitialSIDIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_18InitialSIDIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_18InitialSIDIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.InitialSIDIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":30
 * # Classes
 * #
 * cdef list expand_cat_range(SELinuxPolicy policy, Category low, Category high):             # <<<<<<<<<<<<<<
 *     """
 *     Helper function to expand a category range, e.g. c0.c1023
 */

static PyObject *__pyx_f_7setools_9policyrep_expand_cat_range(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_low, struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_high) {
  PyObject *__pyx_v_expanded = 0;
  uint32_t __pyx_v_value;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  uint32_t __pyx_t_3;
  uint32_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand_cat_range", 0);

  /* "setools/policyrep/mls.pxi":38
 * 
 *     cdef list expanded
 *     expanded = [low, high]             # <<<<<<<<<<<<<<
 *     for value in range(low._value, high._value):
 *         expanded.append(Category.factory(policy, policy.category_value_to_datum(value)))
 */
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_low));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_low));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_low));
  __Pyx_INCREF(((PyObject *)__pyx_v_high));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_high));
  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_high));
  __pyx_v_expanded = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":39
 *     cdef list expanded
 *     expanded = [low, high]
 *     for value in range(low._value, high._value):             # <<<<<<<<<<<<<<
 *         expanded.append(Category.factory(policy, policy.category_value_to_datum(value)))
 * 
 */
  __pyx_t_2 = __pyx_v_high->_value;
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = __pyx_v_low->_value; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_value = __pyx_t_4;

    /* "setools/policyrep/mls.pxi":40
 *     expanded = [low, high]
 *     for value in range(low._value, high._value):
 *         expanded.append(Category.factory(policy, policy.category_value_to_datum(value)))             # <<<<<<<<<<<<<<
 * 
 *     return expanded
 */
    __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_8Category_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(__pyx_v_policy, __pyx_v_value))); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_expanded, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(3, 40, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "setools/policyrep/mls.pxi":42
 *         expanded.append(Category.factory(policy, policy.category_value_to_datum(value)))
 * 
 *     return expanded             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_expanded);
  __pyx_r = __pyx_v_expanded;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":30
 * # Classes
 * #
 * cdef list expand_cat_range(SELinuxPolicy policy, Category low, Category high):             # <<<<<<<<<<<<<<
 *     """
 *     Helper function to expand a category range, e.g. c0.c1023
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.expand_cat_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_expanded);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":54
 * 
 *     @staticmethod
 *     cdef inline Category factory(SELinuxPolicy policy, sepol.cat_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Category objects."""
 *         cdef Category c
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Category *__pyx_f_7setools_9policyrep_8Category_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cat_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_c = 0;
  struct __pyx_obj_7setools_9policyrep_Category *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  uint32_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":57
 *         """Factory function for creating Category objects."""
 *         cdef Category c
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_policy->mls != 0)) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":58
 *         cdef Category c
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 58, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 58, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":57
 *         """Factory function for creating Category objects."""
 *         cdef Category c
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":60
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":61
 * 
 *         try:
 *             return _cat_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             c = Category.__new__(Category)
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__cat_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 61, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 61, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_7setools_9policyrep_Category))))) __PYX_ERR(3, 61, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/mls.pxi":60
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":62
 *         try:
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             c = Category.__new__(Category)
 *             c.policy = policy
 */
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.Category.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(3, 62, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_8);

      /* "setools/policyrep/mls.pxi":63
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             c = Category.__new__(Category)             # <<<<<<<<<<<<<<
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 */
      __pyx_t_9 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Category(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Category), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 63, __pyx_L6_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":64
 *         except KeyError:
 *             c = Category.__new__(Category)
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)
 */
      __Pyx_INCREF(((PyObject *)__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy));
      __pyx_v_c->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/mls.pxi":65
 *             c = Category.__new__(Category)
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)
 *             c._value = symbol.s.value
 */
      __pyx_v_c->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/mls.pxi":66
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *             c._value = symbol.s.value
 *             c._aliases = policy.category_alias_map[symbol.s.value]
 */
      __pyx_t_9 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 66, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_c->__pyx_base.name);
      __pyx_v_c->__pyx_base.name = ((PyObject*)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":67
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)
 *             c._value = symbol.s.value             # <<<<<<<<<<<<<<
 *             c._aliases = policy.category_alias_map[symbol.s.value]
 *             _cat_cache[policy][<uintptr_t>symbol] = c
 */
      __pyx_t_10 = __pyx_v_symbol->s.value;
      __pyx_v_c->_value = __pyx_t_10;

      /* "setools/policyrep/mls.pxi":68
 *             c.name = policy.category_value_to_name(symbol.s.value - 1)
 *             c._value = symbol.s.value
 *             c._aliases = policy.category_alias_map[symbol.s.value]             # <<<<<<<<<<<<<<
 *             _cat_cache[policy][<uintptr_t>symbol] = c
 *             return c
 */
      if (unlikely(__pyx_v_policy->category_alias_map == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(3, 68, __pyx_L6_except_error)
      }
      __pyx_t_9 = __Pyx_PyInt_From_uint32_t(__pyx_v_symbol->s.value); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 68, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_policy->category_alias_map, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 68, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(3, 68, __pyx_L6_except_error)
      __Pyx_GIVEREF(__pyx_t_11);
      __Pyx_GOTREF(__pyx_v_c->_aliases);
      __Pyx_DECREF(__pyx_v_c->_aliases);
      __pyx_v_c->_aliases = ((PyObject*)__pyx_t_11);
      __pyx_t_11 = 0;

      /* "setools/policyrep/mls.pxi":69
 *             c._value = symbol.s.value
 *             c._aliases = policy.category_alias_map[symbol.s.value]
 *             _cat_cache[policy][<uintptr_t>symbol] = c             # <<<<<<<<<<<<<<
 *             return c
 * 
 */
      __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__cat_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 69, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_11, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_c), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(3, 69, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "setools/policyrep/mls.pxi":70
 *             c._aliases = policy.category_alias_map[symbol.s.value]
 *             _cat_cache[policy][<uintptr_t>symbol] = c
 *             return c             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_c));
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;
    __pyx_L6_except_error:;

    /* "setools/policyrep/mls.pxi":60
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _cat_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":54
 * 
 *     @staticmethod
 *     cdef inline Category factory(SELinuxPolicy policy, sepol.cat_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Category objects."""
 *         cdef Category c
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.Category.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":72
 *             return c
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_8Category_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_8Category_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category___hash__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_8Category___hash__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":73
 * 
 *     def __hash__(self):
 *         return hash(self.name)             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_1 = __pyx_v_self->__pyx_base.name;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":72
 *             return c
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Category.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":75
 *         return hash(self.name)
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # Comparison based on their index instead of their names.
 *         return self._value < other._value
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Category_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_2__lt__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Category_2__lt__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":77
 *     def __lt__(self, other):
 *         # Comparison based on their index instead of their names.
 *         return self._value < other._value             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":75
 *         return hash(self.name)
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # Comparison based on their index instead of their names.
 *         return self._value < other._value
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Category.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":79
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this category."""
 *         return iter(self._aliases)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_5aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_8Category_4aliases[] = "Generator that yields all aliases for this category.";
static PyObject *__pyx_pw_7setools_9policyrep_8Category_5aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_4aliases(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Category_4aliases(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/mls.pxi":81
 *     def aliases(self):
 *         """Generator that yields all aliases for this category."""
 *         return iter(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":79
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this category."""
 *         return iter(self._aliases)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Category.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":83
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Category_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_6statement(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Category_6statement(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  PyObject *__pyx_v_stmt = 0;
  size_t __pyx_v_count;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":88
 *             size_t count
 * 
 *         count = len(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *         stmt = "category {0}".format(self.name)
 */
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(3, 88, __pyx_L1_error)
  }
  __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(3, 88, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_count = __pyx_t_2;

  /* "setools/policyrep/mls.pxi":90
 *         count = len(self._aliases)
 * 
 *         stmt = "category {0}".format(self.name)             # <<<<<<<<<<<<<<
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_category_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_self->__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_self->__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(3, 90, __pyx_L1_error)
  __pyx_v_stmt = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":91
 * 
 *         stmt = "category {0}".format(self.name)
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 */
  __pyx_t_5 = ((__pyx_v_count > 1) != 0);
  if (__pyx_t_5) {

    /* "setools/policyrep/mls.pxi":92
 *         stmt = "category {0}".format(self.name)
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))             # <<<<<<<<<<<<<<
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_alias_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 92, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __pyx_v_self->_aliases;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__3, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 92, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 92, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 92, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(3, 92, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "setools/policyrep/mls.pxi":91
 * 
 *         stmt = "category {0}".format(self.name)
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/mls.pxi":93
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {0}".format(self._aliases[0])
 *         stmt += ";"
 */
  __pyx_t_5 = ((__pyx_v_count == 1) != 0);
  if (__pyx_t_5) {

    /* "setools/policyrep/mls.pxi":94
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])             # <<<<<<<<<<<<<<
 *         stmt += ";"
 *         return stmt
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_alias_0_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(__pyx_v_self->_aliases == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(3, 94, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_self->_aliases, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(3, 94, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":93
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {0}".format(self._aliases[0])
 *         stmt += ";"
 */
  }
  __pyx_L3:;

  /* "setools/policyrep/mls.pxi":95
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])
 *         stmt += ";"             # <<<<<<<<<<<<<<
 *         return stmt
 * 
 */
  __pyx_t_1 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_stmt, __pyx_kp_u__32); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":96
 *             stmt += " alias {0}".format(self._aliases[0])
 *         stmt += ";"
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":83
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Category.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":50
 * 
 *     cdef:
 *         readonly uint32_t _value             # <<<<<<<<<<<<<<
 *         list _aliases
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_6_value_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Category_6_value_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_6_value___get__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Category_6_value___get__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 50, __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("setools.policyrep.Category._value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Category_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Category_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._aliases, self._value, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->_aliases);
  __Pyx_GIVEREF(__pyx_v_self->_aliases);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_aliases);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._aliases, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._aliases, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._aliases, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_aliases != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Category); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_130137006);
    __Pyx_GIVEREF(__pyx_int_130137006);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_130137006);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, None), state
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Category); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_130137006);
    __Pyx_GIVEREF(__pyx_int_130137006);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_130137006);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Category.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Category_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Category_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Category_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Category_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Category__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Category, (type(self), 0x7c1bbae, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Category__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Category.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":109
 * 
 *     @staticmethod
 *     cdef inline Sensitivity factory(SELinuxPolicy policy, sepol.level_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Sensitivity objects."""
 *         cdef Sensitivity s
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_f_7setools_9policyrep_11Sensitivity_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, level_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_s = 0;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  uint32_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":112
 *         """Factory function for creating Sensitivity objects."""
 *         cdef Sensitivity s
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_policy->mls != 0)) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":113
 *         cdef Sensitivity s
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 113, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":112
 *         """Factory function for creating Sensitivity objects."""
 *         cdef Sensitivity s
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":115
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":116
 * 
 *         try:
 *             return _sens_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             s = Sensitivity.__new__(Sensitivity)
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__sens_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 116, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 116, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(3, 116, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/mls.pxi":115
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":117
 *         try:
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             s = Sensitivity.__new__(Sensitivity)
 *             _sens_cache[policy][<uintptr_t>symbol] = s
 */
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.Sensitivity.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(3, 117, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_8);

      /* "setools/policyrep/mls.pxi":118
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             s = Sensitivity.__new__(Sensitivity)             # <<<<<<<<<<<<<<
 *             _sens_cache[policy][<uintptr_t>symbol] = s
 *             s.policy = policy
 */
      __pyx_t_9 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Sensitivity(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Sensitivity), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 118, __pyx_L6_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __pyx_v_s = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":119
 *         except KeyError:
 *             s = Sensitivity.__new__(Sensitivity)
 *             _sens_cache[policy][<uintptr_t>symbol] = s             # <<<<<<<<<<<<<<
 *             s.policy = policy
 *             s.key = <uintptr_t>symbol
 */
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__sens_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 119, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_9, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_s), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(3, 119, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":120
 *             s = Sensitivity.__new__(Sensitivity)
 *             _sens_cache[policy][<uintptr_t>symbol] = s
 *             s.policy = policy             # <<<<<<<<<<<<<<
 *             s.key = <uintptr_t>symbol
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)
 */
      __Pyx_INCREF(((PyObject *)__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_s->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_s->__pyx_base.__pyx_base.policy));
      __pyx_v_s->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/mls.pxi":121
 *             _sens_cache[policy][<uintptr_t>symbol] = s
 *             s.policy = policy
 *             s.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)
 *             s._value = symbol.level.sens
 */
      __pyx_v_s->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/mls.pxi":122
 *             s.policy = policy
 *             s.key = <uintptr_t>symbol
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)             # <<<<<<<<<<<<<<
 *             s._value = symbol.level.sens
 *             s._aliases = policy.sensitivity_alias_map[symbol.level.sens]
 */
      __pyx_t_9 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name(__pyx_v_policy, (__pyx_v_symbol->level->sens - 1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 122, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_GOTREF(__pyx_v_s->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_s->__pyx_base.name);
      __pyx_v_s->__pyx_base.name = ((PyObject*)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":123
 *             s.key = <uintptr_t>symbol
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)
 *             s._value = symbol.level.sens             # <<<<<<<<<<<<<<
 *             s._aliases = policy.sensitivity_alias_map[symbol.level.sens]
 *             return s
 */
      __pyx_t_10 = __pyx_v_symbol->level->sens;
      __pyx_v_s->_value = __pyx_t_10;

      /* "setools/policyrep/mls.pxi":124
 *             s.name = policy.level_value_to_name(symbol.level.sens - 1)
 *             s._value = symbol.level.sens
 *             s._aliases = policy.sensitivity_alias_map[symbol.level.sens]             # <<<<<<<<<<<<<<
 *             return s
 * 
 */
      if (unlikely(__pyx_v_policy->sensitivity_alias_map == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(3, 124, __pyx_L6_except_error)
      }
      __pyx_t_9 = __Pyx_PyInt_From_uint32_t(__pyx_v_symbol->level->sens); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 124, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_policy->sensitivity_alias_map, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 124, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(3, 124, __pyx_L6_except_error)
      __Pyx_GIVEREF(__pyx_t_11);
      __Pyx_GOTREF(__pyx_v_s->_aliases);
      __Pyx_DECREF(__pyx_v_s->_aliases);
      __pyx_v_s->_aliases = ((PyObject*)__pyx_t_11);
      __pyx_t_11 = 0;

      /* "setools/policyrep/mls.pxi":125
 *             s._value = symbol.level.sens
 *             s._aliases = policy.sensitivity_alias_map[symbol.level.sens]
 *             return s             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_s));
      __pyx_r = __pyx_v_s;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;
    __pyx_L6_except_error:;

    /* "setools/policyrep/mls.pxi":115
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _sens_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":109
 * 
 *     @staticmethod
 *     cdef inline Sensitivity factory(SELinuxPolicy policy, sepol.level_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Sensitivity objects."""
 *         cdef Sensitivity s
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_s);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":127
 *             return s
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_11Sensitivity_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_11Sensitivity_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity___hash__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_11Sensitivity___hash__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":128
 * 
 *     def __hash__(self):
 *         return hash(self.name)             # <<<<<<<<<<<<<<
 * 
 *     def __ge__(self, other):
 */
  __pyx_t_1 = __pyx_v_self->__pyx_base.name;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":127
 *             return s
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":130
 *         return hash(self.name)
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value >= other._value
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_3__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_3__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ge__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_2__ge__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_2__ge__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ge__", 0);

  /* "setools/policyrep/mls.pxi":131
 * 
 *     def __ge__(self, other):
 *         return self._value >= other._value             # <<<<<<<<<<<<<<
 * 
 *     def __gt__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":130
 *         return hash(self.name)
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value >= other._value
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":133
 *         return self._value >= other._value
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value > other._value
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_5__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_5__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__gt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_4__gt__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_4__gt__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__gt__", 0);

  /* "setools/policyrep/mls.pxi":134
 * 
 *     def __gt__(self, other):
 *         return self._value > other._value             # <<<<<<<<<<<<<<
 * 
 *     def __le__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 134, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":133
 *         return self._value >= other._value
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value > other._value
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":136
 *         return self._value > other._value
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value <= other._value
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_7__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_7__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__le__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_6__le__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_6__le__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__le__", 0);

  /* "setools/policyrep/mls.pxi":137
 * 
 *     def __le__(self, other):
 *         return self._value <= other._value             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 137, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":136
 *         return self._value > other._value
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value <= other._value
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":139
 *         return self._value <= other._value
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value < other._value
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_9__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_9__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_8__lt__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_8__lt__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":140
 * 
 *     def __lt__(self, other):
 *         return self._value < other._value             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_value_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":139
 *         return self._value <= other._value
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return self._value < other._value
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":142
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this sensitivity."""
 *         return iter(self._aliases)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_11aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_11Sensitivity_10aliases[] = "Generator that yields all aliases for this sensitivity.";
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_11aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_10aliases(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_10aliases(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/mls.pxi":144
 *     def aliases(self):
 *         """Generator that yields all aliases for this sensitivity."""
 *         return iter(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *     def level_decl(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":142
 *         return self._value < other._value
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this sensitivity."""
 *         return iter(self._aliases)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":146
 *         return iter(self._aliases)
 * 
 *     def level_decl(self):             # <<<<<<<<<<<<<<
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_13level_decl(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_11Sensitivity_12level_decl[] = "Get the level declaration corresponding to this sensitivity.";
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_13level_decl(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("level_decl (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_12level_decl(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_12level_decl(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  level_datum_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("level_decl", 0);

  /* "setools/policyrep/mls.pxi":148
 *     def level_decl(self):
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._leveldecl is None:
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)
 */
  __pyx_v_symbol = ((level_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.key);

  /* "setools/policyrep/mls.pxi":149
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
 *         if self._leveldecl is None:             # <<<<<<<<<<<<<<
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)
 * 
 */
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_leveldecl) == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/mls.pxi":150
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
 *         if self._leveldecl is None:
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)             # <<<<<<<<<<<<<<
 * 
 *         return self._leveldecl
 */
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = ((PyObject *)__pyx_f_7setools_9policyrep_9LevelDecl_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_symbol)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GIVEREF(__pyx_t_4);
    __Pyx_GOTREF(__pyx_v_self->_leveldecl);
    __Pyx_DECREF(((PyObject *)__pyx_v_self->_leveldecl));
    __pyx_v_self->_leveldecl = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_t_4);
    __pyx_t_4 = 0;

    /* "setools/policyrep/mls.pxi":149
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
 *         if self._leveldecl is None:             # <<<<<<<<<<<<<<
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":152
 *             self._leveldecl = LevelDecl.factory(self.policy, symbol)
 * 
 *         return self._leveldecl             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_leveldecl));
  __pyx_r = ((PyObject *)__pyx_v_self->_leveldecl);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":146
 *         return iter(self._aliases)
 * 
 *     def level_decl(self):             # <<<<<<<<<<<<<<
 *         """Get the level declaration corresponding to this sensitivity."""
 *         cdef sepol.level_datum_t *symbol = <sepol.level_datum_t *>self.key
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.level_decl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":154
 *         return self._leveldecl
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_15statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_15statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_14statement(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_14statement(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  PyObject *__pyx_v_stmt = 0;
  size_t __pyx_v_count;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":159
 *             size_t count
 * 
 *         count = len(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *         stmt = "sensitivity {0}".format(self.name)
 */
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(3, 159, __pyx_L1_error)
  }
  __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(3, 159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_count = __pyx_t_2;

  /* "setools/policyrep/mls.pxi":161
 *         count = len(self._aliases)
 * 
 *         stmt = "sensitivity {0}".format(self.name)             # <<<<<<<<<<<<<<
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_sensitivity_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_self->__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_self->__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 161, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(3, 161, __pyx_L1_error)
  __pyx_v_stmt = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":162
 * 
 *         stmt = "sensitivity {0}".format(self.name)
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 */
  __pyx_t_5 = ((__pyx_v_count > 1) != 0);
  if (__pyx_t_5) {

    /* "setools/policyrep/mls.pxi":163
 *         stmt = "sensitivity {0}".format(self.name)
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))             # <<<<<<<<<<<<<<
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_alias_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __pyx_v_self->_aliases;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__3, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(3, 163, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "setools/policyrep/mls.pxi":162
 * 
 *         stmt = "sensitivity {0}".format(self.name)
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/mls.pxi":164
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {0}".format(self._aliases[0])
 *         stmt += ";"
 */
  __pyx_t_5 = ((__pyx_v_count == 1) != 0);
  if (__pyx_t_5) {

    /* "setools/policyrep/mls.pxi":165
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])             # <<<<<<<<<<<<<<
 *         stmt += ";"
 *         return stmt
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_alias_0_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(__pyx_v_self->_aliases == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(3, 165, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_self->_aliases, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(3, 165, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":164
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {0}".format(self._aliases[0])
 *         stmt += ";"
 */
  }
  __pyx_L3:;

  /* "setools/policyrep/mls.pxi":166
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])
 *         stmt += ";"             # <<<<<<<<<<<<<<
 *         return stmt
 * 
 */
  __pyx_t_1 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_stmt, __pyx_kp_u__32); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":167
 *             stmt += " alias {0}".format(self._aliases[0])
 *         stmt += ";"
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":154
 *         return self._leveldecl
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             str stmt
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":104
 * 
 *     cdef:
 *         readonly uint32_t _value             # <<<<<<<<<<<<<<
 *         list _aliases
 *         LevelDecl _leveldecl
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_6_value_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_6_value_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_6_value___get__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_6_value___get__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 104, __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("setools.policyrep.Sensitivity._value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_17__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_17__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_16__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_16__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._aliases, self._leveldecl, self._value, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->_aliases);
  __Pyx_GIVEREF(__pyx_v_self->_aliases);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_aliases);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_leveldecl));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_leveldecl));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->_leveldecl));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 5, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._aliases, self._leveldecl, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._aliases, self._leveldecl, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._aliases, self._leveldecl, self._value, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_aliases != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->_leveldecl) != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    __pyx_t_5 = __pyx_t_4;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Sensitivity); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_184567453);
    __Pyx_GIVEREF(__pyx_int_184567453);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_184567453);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self._leveldecl is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, None), state
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Sensitivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_184567453);
    __Pyx_GIVEREF(__pyx_int_184567453);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_184567453);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_19__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11Sensitivity_19__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11Sensitivity_18__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_11Sensitivity_18__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Sensitivity__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Sensitivity, (type(self), 0xb00469d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Sensitivity__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Sensitivity.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":178
 *         readonly Sensitivity sensitivity
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         lvl = str(self.sensitivity)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel___str__(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self));

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

/* "setools/policyrep/mls.pxi":182
 * 
 *         # sort by policy declaration order
 *         cats = sorted(self._categories, key=lambda k: k._value)             # <<<<<<<<<<<<<<
 * 
 *         if cats:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___lambda13(PyObject *__pyx_self, PyObject *__pyx_v_k); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__str___lambda13 = {"lambda13", (PyCFunction)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___lambda13, METH_O, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___lambda13(PyObject *__pyx_self, PyObject *__pyx_v_k) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda13 (wrapper)", 0);
  __pyx_r = __pyx_lambda_funcdef_lambda13(__pyx_self, ((PyObject *)__pyx_v_k));

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

static PyObject *__pyx_lambda_funcdef_lambda13(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda13", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_value_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 182, __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("setools.policyrep.BaseMLSLevel.__str__.lambda13", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":187
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 */

static PyObject *__pyx_pf_7setools_9policyrep_112__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_c);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_c);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_c);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda14(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda14 = {"lambda14", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda14, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda14(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_c = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda14 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_k,&__pyx_n_s_c,0};
    PyObject* values[2] = {0,0};
    __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self);
    values[1] = __pyx_dynamic_args->__pyx_arg_c;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        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_k)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda14") < 0)) __PYX_ERR(3, 187, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_k = values[0];
    __pyx_v_c = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda14", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(3, 187, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__str__.lambda14", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_lambda14(__pyx_self, __pyx_v_k, __pyx_v_c);

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

static PyObject *__pyx_lambda_funcdef_lambda14(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda14", 0);

  /* "setools/policyrep/mls.pxi":188
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,
 *                                           c=itertools.count(): k._value - next(c)):             # <<<<<<<<<<<<<<
 *                 group = list(i)
 *                 if len(group) > 1:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_value_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyIter_Next(__pyx_v_c); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":187
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__str__.lambda14", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":178
 *         readonly Sensitivity sensitivity
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         lvl = str(self.sensitivity)
 * 
 */

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel___str__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self) {
  PyObject *__pyx_v_lvl = NULL;
  PyObject *__pyx_v_cats = NULL;
  PyObject *__pyx_v_shortlist = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_group = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  Py_ssize_t __pyx_t_12;
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/mls.pxi":179
 * 
 *     def __str__(self):
 *         lvl = str(self.sensitivity)             # <<<<<<<<<<<<<<
 * 
 *         # sort by policy declaration order
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self->sensitivity)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_lvl = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":182
 * 
 *         # sort by policy declaration order
 *         cats = sorted(self._categories, key=lambda k: k._value)             # <<<<<<<<<<<<<<
 * 
 *         if cats:
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->_categories);
  __Pyx_GIVEREF(__pyx_v_self->_categories);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->_categories);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__str___lambda13, 0, __pyx_n_s_str___locals_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_key, __pyx_t_3) < 0) __PYX_ERR(3, 182, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_cats = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "setools/policyrep/mls.pxi":184
 *         cats = sorted(self._categories, key=lambda k: k._value)
 * 
 *         if cats:             # <<<<<<<<<<<<<<
 *             # generate short category notation
 *             shortlist = []
 */
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_cats); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 184, __pyx_L1_error)
  if (__pyx_t_4) {

    /* "setools/policyrep/mls.pxi":186
 *         if cats:
 *             # generate short category notation
 *             shortlist = []             # <<<<<<<<<<<<<<
 *             for _, i in itertools.groupby(cats, key=lambda k,
 *                                           c=itertools.count(): k._value - next(c)):
 */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 186, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_shortlist = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/mls.pxi":187
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_itertools); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_groupby); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_cats);
    __Pyx_GIVEREF(__pyx_v_cats);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_cats);
    __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12BaseMLSLevel_7__str___1lambda14, 0, __pyx_n_s_str___locals_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults), 1)) __PYX_ERR(3, 187, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":188
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,
 *                                           c=itertools.count(): k._value - next(c)):             # <<<<<<<<<<<<<<
 *                 group = list(i)
 *                 if len(group) > 1:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_itertools); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_5)->__pyx_arg_c = __pyx_t_6;
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_7setools_9policyrep_112__defaults__);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_key, __pyx_t_5) < 0) __PYX_ERR(3, 187, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/mls.pxi":187
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 */
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 187, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 187, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 187, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(3, 187, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 187, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(3, 187, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 187, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_10(__pyx_t_1);
        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(3, 187, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
        PyObject* sequence = __pyx_t_5;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(3, 187, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        #else
        __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 187, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 187, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 187, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext;
        index = 0; __pyx_t_3 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_3);
        index = 1; __pyx_t_2 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_2);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_6), 2) < 0) __PYX_ERR(3, 187, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L7_unpacking_done;
        __pyx_L6_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(3, 187, __pyx_L1_error)
        __pyx_L7_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_3);
      __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/mls.pxi":189
 *             for _, i in itertools.groupby(cats, key=lambda k,
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)             # <<<<<<<<<<<<<<
 *                 if len(group) > 1:
 *                     shortlist.append("{0}.{1}".format(group[0], group[-1]))
 */
      __pyx_t_5 = PySequence_List(__pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 189, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_group, ((PyObject*)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "setools/policyrep/mls.pxi":190
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 *                 if len(group) > 1:             # <<<<<<<<<<<<<<
 *                     shortlist.append("{0}.{1}".format(group[0], group[-1]))
 *                 else:
 */
      __pyx_t_12 = PyList_GET_SIZE(__pyx_v_group); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(3, 190, __pyx_L1_error)
      __pyx_t_4 = ((__pyx_t_12 > 1) != 0);
      if (__pyx_t_4) {

        /* "setools/policyrep/mls.pxi":191
 *                 group = list(i)
 *                 if len(group) > 1:
 *                     shortlist.append("{0}.{1}".format(group[0], group[-1]))             # <<<<<<<<<<<<<<
 *                 else:
 *                     shortlist.append(str(group[0]))
 */
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 191, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_group, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 191, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_group, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 191, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = NULL;
        __pyx_t_13 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
            __pyx_t_13 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_2)) {
          PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_3, __pyx_t_6};
          __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 191, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
          PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_3, __pyx_t_6};
          __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 191, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 191, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_13, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_13, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 191, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_shortlist, __pyx_t_5); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(3, 191, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

        /* "setools/policyrep/mls.pxi":190
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 *                 if len(group) > 1:             # <<<<<<<<<<<<<<
 *                     shortlist.append("{0}.{1}".format(group[0], group[-1]))
 *                 else:
 */
        goto __pyx_L8;
      }

      /* "setools/policyrep/mls.pxi":193
 *                     shortlist.append("{0}.{1}".format(group[0], group[-1]))
 *                 else:
 *                     shortlist.append(str(group[0]))             # <<<<<<<<<<<<<<
 * 
 *             lvl += ":" + ','.join(shortlist)
 */
      /*else*/ {
        __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_group, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_shortlist, __pyx_t_2); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(3, 193, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __pyx_L8:;

      /* "setools/policyrep/mls.pxi":187
 *             # generate short category notation
 *             shortlist = []
 *             for _, i in itertools.groupby(cats, key=lambda k,             # <<<<<<<<<<<<<<
 *                                           c=itertools.count(): k._value - next(c)):
 *                 group = list(i)
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":195
 *                     shortlist.append(str(group[0]))
 * 
 *             lvl += ":" + ','.join(shortlist)             # <<<<<<<<<<<<<<
 * 
 *         return lvl
 */
    __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__34, __pyx_v_shortlist); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u__33, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_lvl, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_lvl, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":184
 *         cats = sorted(self._categories, key=lambda k: k._value)
 * 
 *         if cats:             # <<<<<<<<<<<<<<
 *             # generate short category notation
 *             shortlist = []
 */
  }

  /* "setools/policyrep/mls.pxi":197
 *             lvl += ":" + ','.join(shortlist)
 * 
 *         return lvl             # <<<<<<<<<<<<<<
 * 
 *     def categories(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_lvl);
  __pyx_r = __pyx_v_lvl;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":178
 *         readonly Sensitivity sensitivity
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         lvl = str(self.sensitivity)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lvl);
  __Pyx_XDECREF(__pyx_v_cats);
  __Pyx_XDECREF(__pyx_v_shortlist);
  __Pyx_XDECREF(__pyx_v__);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_group);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":199
 *         return lvl
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generator that yields all individual categories for this level.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_3categories(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_12BaseMLSLevel_2categories[] = "\n        Generator that yields all individual categories for this level.\n        All categories are yielded, not a compact notation such as\n        c0.c255\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_3categories(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("categories (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel_2categories(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_2categories(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("categories", 0);

  /* "setools/policyrep/mls.pxi":205
 *         c0.c255
 *         """
 *         return iter(self._categories)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_categories;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":199
 *         return lvl
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """
 *         Generator that yields all individual categories for this level.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.categories", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":176
 *     cdef:
 *         set _categories
 *         readonly Sensitivity sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_11sensitivity_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_11sensitivity_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel_11sensitivity___get__(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_11sensitivity___get__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->sensitivity));
  __pyx_r = ((PyObject *)__pyx_v_self->sensitivity);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_categories);
  __Pyx_GIVEREF(__pyx_v_self->_categories);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_categories);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->sensitivity));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->sensitivity));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->sensitivity));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->_categories != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->sensitivity) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_BaseMLSLevel); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_159260084);
    __Pyx_GIVEREF(__pyx_int_159260084);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_159260084);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, None), state
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_BaseMLSLevel); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_159260084);
    __Pyx_GIVEREF(__pyx_int_159260084);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_159260084);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12BaseMLSLevel_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_12BaseMLSLevel_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseMLSLevel__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseMLSLevel, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseMLSLevel__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.BaseMLSLevel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":217
 * 
 *     @staticmethod
 *     cdef inline LevelDecl factory(SELinuxPolicy policy, sepol.level_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating LevelDecl objects."""
 *         cdef LevelDecl l
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_f_7setools_9policyrep_9LevelDecl_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, level_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_l = 0;
  struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":220
 *         """Factory function for creating LevelDecl objects."""
 *         cdef LevelDecl l
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_policy->mls != 0)) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":221
 *         cdef LevelDecl l
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 221, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 221, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":220
 *         """Factory function for creating LevelDecl objects."""
 *         cdef LevelDecl l
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":223
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":224
 * 
 *         try:
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             l = LevelDecl.__new__(LevelDecl)
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__leveldecl_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 224, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 224, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_7setools_9policyrep_LevelDecl))))) __PYX_ERR(3, 224, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_t_6);
      __pyx_t_6 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/mls.pxi":223
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":225
 *         try:
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             l = LevelDecl.__new__(LevelDecl)
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l
 */
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.LevelDecl.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(3, 225, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_8);

      /* "setools/policyrep/mls.pxi":226
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             l = LevelDecl.__new__(LevelDecl)             # <<<<<<<<<<<<<<
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l
 *             l.policy = policy
 */
      __pyx_t_9 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_LevelDecl(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_LevelDecl), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 226, __pyx_L6_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_9));
      __pyx_v_l = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":227
 *         except KeyError:
 *             l = LevelDecl.__new__(LevelDecl)
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l             # <<<<<<<<<<<<<<
 *             l.policy = policy
 *             l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.level.cat))
 */
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__leveldecl_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 227, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_9, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_l), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(3, 227, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":228
 *             l = LevelDecl.__new__(LevelDecl)
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l
 *             l.policy = policy             # <<<<<<<<<<<<<<
 *             l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.level.cat))
 *             # the datum for levels is also used for Sensitivity objects
 */
      __Pyx_INCREF(((PyObject *)__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_l->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy));
      __pyx_v_l->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/mls.pxi":229
 *             _leveldecl_cache[policy][<uintptr_t>symbol] = l
 *             l.policy = policy
 *             l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.level.cat))             # <<<<<<<<<<<<<<
 *             # the datum for levels is also used for Sensitivity objects
 *             l.sensitivity = Sensitivity.factory(policy, symbol)
 */
      __pyx_t_9 = __pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->level->cat)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 229, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = PySet_New(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 229, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GIVEREF(__pyx_t_10);
      __Pyx_GOTREF(__pyx_v_l->__pyx_base._categories);
      __Pyx_DECREF(__pyx_v_l->__pyx_base._categories);
      __pyx_v_l->__pyx_base._categories = ((PyObject*)__pyx_t_10);
      __pyx_t_10 = 0;

      /* "setools/policyrep/mls.pxi":231
 *             l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.level.cat))
 *             # the datum for levels is also used for Sensitivity objects
 *             l.sensitivity = Sensitivity.factory(policy, symbol)             # <<<<<<<<<<<<<<
 *             return l
 * 
 */
      __pyx_t_10 = ((PyObject *)__pyx_f_7setools_9policyrep_11Sensitivity_factory(__pyx_v_policy, __pyx_v_symbol)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 231, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      __Pyx_GOTREF(__pyx_v_l->__pyx_base.sensitivity);
      __Pyx_DECREF(((PyObject *)__pyx_v_l->__pyx_base.sensitivity));
      __pyx_v_l->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_10);
      __pyx_t_10 = 0;

      /* "setools/policyrep/mls.pxi":232
 *             # the datum for levels is also used for Sensitivity objects
 *             l.sensitivity = Sensitivity.factory(policy, symbol)
 *             return l             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_l));
      __pyx_r = __pyx_v_l;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;
    __pyx_L6_except_error:;

    /* "setools/policyrep/mls.pxi":223
 *             raise MLSDisabled
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _leveldecl_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":217
 * 
 *     @staticmethod
 *     cdef inline LevelDecl factory(SELinuxPolicy policy, sepol.level_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating LevelDecl objects."""
 *         cdef LevelDecl l
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_l);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":234
 *             return l
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.sensitivity)
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_9LevelDecl_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_9LevelDecl_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl___hash__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_9LevelDecl___hash__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":235
 * 
 *     def __hash__(self):
 *         return hash(self.sensitivity)             # <<<<<<<<<<<<<<
 * 
 *     # below comparisons are only based on sensitivity
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.sensitivity);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":234
 *             return l
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.sensitivity)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":243
 *     # be compared to a Level instance.
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_2__eq__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_2__eq__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/mls.pxi":244
 * 
 *     def __eq__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!Py_OptimizeFlag)) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_7setools_9policyrep_Level); 
    if (unlikely(!((!(__pyx_t_1 != 0)) != 0))) {
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Levels_cannot_be_compared_to_lev);
      __PYX_ERR(3, 244, __pyx_L1_error)
    }
  }
  #endif

  /* "setools/policyrep/mls.pxi":246
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":247
 * 
 *         try:
 *             return self.sensitivity == other.sensitivity             # <<<<<<<<<<<<<<
 *         except AttributeError:
 *             return str(self) == str(other)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 247, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 247, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/mls.pxi":246
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":248
 *         try:
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             return str(self) == str(other)
 * 
 */
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
    if (__pyx_t_7) {
      __Pyx_AddTraceback("setools.policyrep.LevelDecl.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_8) < 0) __PYX_ERR(3, 248, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_8);

      /* "setools/policyrep/mls.pxi":249
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:
 *             return str(self) == str(other)             # <<<<<<<<<<<<<<
 * 
 *     def __ge__(self, other):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 249, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 249, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_t_10, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(3, 249, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 249, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_r = __pyx_t_10;
      __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/mls.pxi":246
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return self.sensitivity == other.sensitivity
 *         except AttributeError:
 */
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":243
 *     # be compared to a Level instance.
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":251
 *             return str(self) == str(other)
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity >= other.sensitivity
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_5__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_5__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ge__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_4__ge__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_4__ge__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ge__", 0);

  /* "setools/policyrep/mls.pxi":252
 * 
 *     def __ge__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 *         return self.sensitivity >= other.sensitivity
 * 
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!Py_OptimizeFlag)) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_7setools_9policyrep_Level); 
    if (unlikely(!((!(__pyx_t_1 != 0)) != 0))) {
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Levels_cannot_be_compared_to_lev);
      __PYX_ERR(3, 252, __pyx_L1_error)
    }
  }
  #endif

  /* "setools/policyrep/mls.pxi":253
 *     def __ge__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity >= other.sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def __gt__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 253, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":251
 *             return str(self) == str(other)
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity >= other.sensitivity
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":255
 *         return self.sensitivity >= other.sensitivity
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity > other.sensitivity
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_7__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_7__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__gt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_6__gt__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_6__gt__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__gt__", 0);

  /* "setools/policyrep/mls.pxi":256
 * 
 *     def __gt__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 *         return self.sensitivity > other.sensitivity
 * 
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!Py_OptimizeFlag)) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_7setools_9policyrep_Level); 
    if (unlikely(!((!(__pyx_t_1 != 0)) != 0))) {
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Levels_cannot_be_compared_to_lev);
      __PYX_ERR(3, 256, __pyx_L1_error)
    }
  }
  #endif

  /* "setools/policyrep/mls.pxi":257
 *     def __gt__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity > other.sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def __le__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 257, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":255
 *         return self.sensitivity >= other.sensitivity
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity > other.sensitivity
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":259
 *         return self.sensitivity > other.sensitivity
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity <= other.sensitivity
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_9__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_9__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__le__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_8__le__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_8__le__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__le__", 0);

  /* "setools/policyrep/mls.pxi":260
 * 
 *     def __le__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 *         return self.sensitivity <= other.sensitivity
 * 
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!Py_OptimizeFlag)) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_7setools_9policyrep_Level); 
    if (unlikely(!((!(__pyx_t_1 != 0)) != 0))) {
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Levels_cannot_be_compared_to_lev);
      __PYX_ERR(3, 260, __pyx_L1_error)
    }
  }
  #endif

  /* "setools/policyrep/mls.pxi":261
 *     def __le__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity <= other.sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_2, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 261, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":259
 *         return self.sensitivity > other.sensitivity
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity <= other.sensitivity
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":263
 *         return self.sensitivity <= other.sensitivity
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity < other.sensitivity
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_10__lt__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_10__lt__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":264
 * 
 *     def __lt__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"             # <<<<<<<<<<<<<<
 *         return self.sensitivity < other.sensitivity
 * 
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!Py_OptimizeFlag)) {
    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_7setools_9policyrep_Level); 
    if (unlikely(!((!(__pyx_t_1 != 0)) != 0))) {
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_Levels_cannot_be_compared_to_lev);
      __PYX_ERR(3, 264, __pyx_L1_error)
    }
  }
  #endif

  /* "setools/policyrep/mls.pxi":265
 *     def __lt__(self, other):
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity < other.sensitivity             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 265, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":263
 *         return self.sensitivity <= other.sensitivity
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         assert not isinstance(other, Level), "Levels cannot be compared to level declarations"
 *         return self.sensitivity < other.sensitivity
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":267
 *         return self.sensitivity < other.sensitivity
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "level {0};".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_13statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_13statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_12statement(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_12statement(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":268
 * 
 *     def statement(self):
 *         return "level {0};".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_level_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":267
 *         return self.sensitivity < other.sensitivity
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "level {0};".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_14__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_14__reduce_cython__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._categories);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._categories);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->__pyx_base._categories);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.sensitivity));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.sensitivity));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.sensitivity));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->__pyx_base._categories != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.sensitivity) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_LevelDecl); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_159260084);
    __Pyx_GIVEREF(__pyx_int_159260084);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_159260084);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, None), state
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_LevelDecl); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_159260084);
    __Pyx_GIVEREF(__pyx_int_159260084);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_159260084);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9LevelDecl_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9LevelDecl_16__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_9LevelDecl_16__setstate_cython__(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_LevelDecl__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_LevelDecl, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_LevelDecl__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.LevelDecl.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":281
 * 
 *     @staticmethod
 *     cdef inline Level factory(SELinuxPolicy policy, sepol.mls_level_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Level objects."""
 *         if not policy.mls:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, mls_level_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_l = 0;
  struct __pyx_obj_7setools_9policyrep_Level *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":283
 *     cdef inline Level factory(SELinuxPolicy policy, sepol.mls_level_t *symbol):
 *         """Factory function for creating Level objects."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_policy->mls != 0)) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":284
 *         """Factory function for creating Level objects."""
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         cdef Level l = Level.__new__(Level)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 284, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":283
 *     cdef inline Level factory(SELinuxPolicy policy, sepol.mls_level_t *symbol):
 *         """Factory function for creating Level objects."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":286
 *             raise MLSDisabled
 * 
 *         cdef Level l = Level.__new__(Level)             # <<<<<<<<<<<<<<
 *         l.policy = policy
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))
 */
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Level(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Level), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 286, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_l = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":287
 * 
 *         cdef Level l = Level.__new__(Level)
 *         l.policy = policy             # <<<<<<<<<<<<<<
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))
 *         l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.cat))
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_l->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy));
  __pyx_v_l->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":288
 *         cdef Level l = Level.__new__(Level)
 *         l.policy = policy
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))             # <<<<<<<<<<<<<<
 *         l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.cat))
 *         return l
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_11Sensitivity_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->sens - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_l->__pyx_base.sensitivity);
  __Pyx_DECREF(((PyObject *)__pyx_v_l->__pyx_base.sensitivity));
  __pyx_v_l->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":289
 *         l.policy = policy
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))
 *         l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.cat))             # <<<<<<<<<<<<<<
 *         return l
 * 
 */
  __pyx_t_2 = __pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->cat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_l->__pyx_base._categories);
  __Pyx_DECREF(__pyx_v_l->__pyx_base._categories);
  __pyx_v_l->__pyx_base._categories = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/mls.pxi":290
 *         l.sensitivity = Sensitivity.factory(policy, policy.level_value_to_datum(symbol.sens - 1))
 *         l._categories = set(CategoryEbitmapIterator.factory(policy, &symbol.cat))
 *         return l             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_l));
  __pyx_r = __pyx_v_l;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":281
 * 
 *     @staticmethod
 *     cdef inline Level factory(SELinuxPolicy policy, sepol.mls_level_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Level objects."""
 *         if not policy.mls:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Level.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_l);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":293
 * 
 *     @staticmethod
 *     cdef inline Level factory_from_string(SELinuxPolicy policy, str name):             # <<<<<<<<<<<<<<
 *         """Factory function variant for constructing Level objects by a string."""
 *         if not policy.mls:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Level *__pyx_f_7setools_9policyrep_5Level_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_name) {
  struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_l = 0;
  PyObject *__pyx_v_sens_split = 0;
  PyObject *__pyx_v_sens = 0;
  PyObject *__pyx_v_cats = 0;
  PyObject *__pyx_v_catrange = 0;
  PyObject *__pyx_v_group = 0;
  PyObject *__pyx_v_ex = NULL;
  struct __pyx_obj_7setools_9policyrep_Level *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  char const *__pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  Py_ssize_t __pyx_t_23;
  Py_ssize_t __pyx_t_24;
  PyObject *__pyx_t_25 = NULL;
  char const *__pyx_t_26;
  PyObject *__pyx_t_27 = NULL;
  PyObject *__pyx_t_28 = NULL;
  PyObject *__pyx_t_29 = NULL;
  int __pyx_t_30;
  char const *__pyx_t_31;
  int __pyx_t_32;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_string", 0);

  /* "setools/policyrep/mls.pxi":295
 *     cdef inline Level factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Level objects by a string."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_policy->mls != 0)) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":296
 *         """Factory function variant for constructing Level objects by a string."""
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         cdef:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 296, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":295
 *     cdef inline Level factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Level objects by a string."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":299
 * 
 *         cdef:
 *             Level l = Level.__new__(Level)             # <<<<<<<<<<<<<<
 *             list sens_split = name.split(":")
 *             str sens = sens_split[0]
 */
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Level(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Level), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 299, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_l = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":300
 *         cdef:
 *             Level l = Level.__new__(Level)
 *             list sens_split = name.split(":")             # <<<<<<<<<<<<<<
 *             str sens = sens_split[0]
 *             Sensitivity s
 */
  if (unlikely(__pyx_v_name == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split");
    __PYX_ERR(3, 300, __pyx_L1_error)
  }
  __pyx_t_2 = PyUnicode_Split(__pyx_v_name, __pyx_kp_u__33, -1L); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_sens_split = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":301
 *             Level l = Level.__new__(Level)
 *             list sens_split = name.split(":")
 *             str sens = sens_split[0]             # <<<<<<<<<<<<<<
 *             Sensitivity s
 *             list c
 */
  if (unlikely(__pyx_v_sens_split == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(3, 301, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_sens_split, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(3, 301, __pyx_L1_error)
  __pyx_v_sens = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":308
 *             str group
 * 
 *         l.policy = policy             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_l->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_l->__pyx_base.__pyx_base.policy));
  __pyx_v_l->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":310
 *         l.policy = policy
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":311
 * 
 *         try:
 *             l.sensitivity = policy.lookup_sensitivity(sens)             # <<<<<<<<<<<<<<
 *         except InvalidSensitivity as ex:
 *             raise InvalidLevel("{0} is not a valid level ({1} is not a valid sensitivity)". \
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_policy), __pyx_n_s_lookup_sensitivity); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 311, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_sens) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_sens);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 311, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(3, 311, __pyx_L4_error)
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_v_l->__pyx_base.sensitivity);
      __Pyx_DECREF(((PyObject *)__pyx_v_l->__pyx_base.sensitivity));
      __pyx_v_l->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/mls.pxi":310
 *         l.policy = policy
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/mls.pxi":312
 *         try:
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidLevel("{0} is not a valid level ({1} is not a valid sensitivity)". \
 *                                format(name, sens)) from ex
 */
    __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_6, &__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_InvalidSensitivity); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 312, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_ErrRestore(__pyx_t_2, __pyx_t_6, __pyx_t_7);
    __pyx_t_2 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0;
    if (__pyx_t_9) {
      __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(3, 312, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_ex = __pyx_t_6;
      /*try:*/ {

        /* "setools/policyrep/mls.pxi":313
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:
 *             raise InvalidLevel("{0} is not a valid level ({1} is not a valid sensitivity)". \             # <<<<<<<<<<<<<<
 *                                format(name, sens)) from ex
 * 
 */
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_InvalidLevel); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 313, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_10);

        /* "setools/policyrep/mls.pxi":314
 *         except InvalidSensitivity as ex:
 *             raise InvalidLevel("{0} is not a valid level ({1} is not a valid sensitivity)". \
 *                                format(name, sens)) from ex             # <<<<<<<<<<<<<<
 * 
 *         l._categories = set()
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_level_1_is_not, __pyx_n_s_format_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 313, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = NULL;
        __pyx_t_9 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
            __pyx_t_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_12)) {
          PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_name, __pyx_v_sens};
          __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 314, __pyx_L15_error)
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GOTREF(__pyx_t_11);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) {
          PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_name, __pyx_v_sens};
          __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 314, __pyx_L15_error)
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GOTREF(__pyx_t_11);
        } else
        #endif
        {
          __pyx_t_14 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 314, __pyx_L15_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_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_9, __pyx_v_name);
          __Pyx_INCREF(__pyx_v_sens);
          __Pyx_GIVEREF(__pyx_v_sens);
          PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_9, __pyx_v_sens);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_14, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 314, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
          }
        }
        __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 313, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_Raise(__pyx_t_8, 0, 0, __pyx_v_ex);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __PYX_ERR(3, 313, __pyx_L15_error)
      }

      /* "setools/policyrep/mls.pxi":312
 *         try:
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidLevel("{0} is not a valid level ({1} is not a valid sensitivity)". \
 *                                format(name, sens)) from ex
 */
      /*finally:*/ {
        __pyx_L15_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_9 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex);
            __pyx_v_ex = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
          }
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19);
          __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
          goto __pyx_L6_except_error;
        }
      }
    }
    goto __pyx_L6_except_error;
    __pyx_L6_except_error:;

    /* "setools/policyrep/mls.pxi":310
 *         l.policy = policy
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             l.sensitivity = policy.lookup_sensitivity(sens)
 *         except InvalidSensitivity as ex:
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L9_try_end:;
  }

  /* "setools/policyrep/mls.pxi":316
 *                                format(name, sens)) from ex
 * 
 *         l._categories = set()             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_l->__pyx_base._categories);
  __Pyx_DECREF(__pyx_v_l->__pyx_base._categories);
  __pyx_v_l->__pyx_base._categories = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":318
 *         l._categories = set()
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             cats = sens_split[1]
 *         except IndexError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_4, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":319
 * 
 *         try:
 *             cats = sens_split[1]             # <<<<<<<<<<<<<<
 *         except IndexError:
 *             pass
 */
      if (unlikely(__pyx_v_sens_split == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(3, 319, __pyx_L21_error)
      }
      __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_sens_split, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 319, __pyx_L21_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(3, 319, __pyx_L21_error)
      __pyx_v_cats = ((PyObject*)__pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/mls.pxi":318
 *         l._categories = set()
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             cats = sens_split[1]
 *         except IndexError:
 */
    }

    /* "setools/policyrep/mls.pxi":323
 *             pass
 *         else:
 *             for group in cats.split(","):             # <<<<<<<<<<<<<<
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
 */
    /*else:*/ {
      if (unlikely(__pyx_v_cats == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split");
        __PYX_ERR(3, 323, __pyx_L23_except_error)
      }
      __pyx_t_2 = PyUnicode_Split(__pyx_v_cats, __pyx_kp_u__34, -1L); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 323, __pyx_L23_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_23); __Pyx_INCREF(__pyx_t_2); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(3, 323, __pyx_L23_except_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 323, __pyx_L23_except_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
        if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(3, 323, __pyx_L23_except_error)
        __Pyx_XDECREF_SET(__pyx_v_group, ((PyObject*)__pyx_t_2));
        __pyx_t_2 = 0;

        /* "setools/policyrep/mls.pxi":324
 *         else:
 *             for group in cats.split(","):
 *                 catrange = group.split(".")             # <<<<<<<<<<<<<<
 *                 if len(catrange) == 2:
 *                     try:
 */
        if (unlikely(__pyx_v_group == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split");
          __PYX_ERR(3, 324, __pyx_L23_except_error)
        }
        __pyx_t_2 = PyUnicode_Split(__pyx_v_group, __pyx_kp_u__35, -1L); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 324, __pyx_L23_except_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_v_catrange, ((PyObject*)__pyx_t_2));
        __pyx_t_2 = 0;

        /* "setools/policyrep/mls.pxi":325
 *             for group in cats.split(","):
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:             # <<<<<<<<<<<<<<
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,
 */
        if (unlikely(__pyx_v_catrange == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
          __PYX_ERR(3, 325, __pyx_L23_except_error)
        }
        __pyx_t_24 = PyList_GET_SIZE(__pyx_v_catrange); if (unlikely(__pyx_t_24 == ((Py_ssize_t)-1))) __PYX_ERR(3, 325, __pyx_L23_except_error)
        __pyx_t_1 = ((__pyx_t_24 == 2) != 0);
        if (__pyx_t_1) {

          /* "setools/policyrep/mls.pxi":326
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),
 */
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20);
            __Pyx_XGOTREF(__pyx_t_22);
            __Pyx_XGOTREF(__pyx_t_21);
            __Pyx_XGOTREF(__pyx_t_20);
            /*try:*/ {

              /* "setools/policyrep/mls.pxi":327
 *                 if len(catrange) == 2:
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,             # <<<<<<<<<<<<<<
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))
 */
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_l->__pyx_base._categories, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 327, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_7);

              /* "setools/policyrep/mls.pxi":328
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),             # <<<<<<<<<<<<<<
 *                                                               policy.lookup_category(catrange[1])))
 *                     except InvalidCategory as ex:
 */
              __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_policy), __pyx_n_s_lookup_category); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 328, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_10);
              if (unlikely(__pyx_v_catrange == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                __PYX_ERR(3, 328, __pyx_L30_error)
              }
              __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_catrange, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 328, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_12 = NULL;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_10, function);
                }
              }
              __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11);
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 328, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_7setools_9policyrep_Category))))) __PYX_ERR(3, 328, __pyx_L30_error)

              /* "setools/policyrep/mls.pxi":329
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))             # <<<<<<<<<<<<<<
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(
 */
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_policy), __pyx_n_s_lookup_category); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 329, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_11);
              if (unlikely(__pyx_v_catrange == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                __PYX_ERR(3, 329, __pyx_L30_error)
              }
              __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_catrange, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 329, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_14 = NULL;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
                __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_11);
                if (likely(__pyx_t_14)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
                  __Pyx_INCREF(__pyx_t_14);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_11, function);
                }
              }
              __pyx_t_10 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_14, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_12);
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 329, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_10);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_7setools_9policyrep_Category))))) __PYX_ERR(3, 329, __pyx_L30_error)

              /* "setools/policyrep/mls.pxi":327
 *                 if len(catrange) == 2:
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,             # <<<<<<<<<<<<<<
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))
 */
              __pyx_t_11 = __pyx_f_7setools_9policyrep_expand_cat_range(__pyx_v_policy, ((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_t_8), ((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 327, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              __pyx_t_10 = NULL;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
                __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
                if (likely(__pyx_t_10)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
                  __Pyx_INCREF(__pyx_t_10);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_7, function);
                }
              }
              __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_11);
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 327, __pyx_L30_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

              /* "setools/policyrep/mls.pxi":326
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),
 */
            }
            __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
            goto __pyx_L37_try_end;
            __pyx_L30_error:;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

            /* "setools/policyrep/mls.pxi":330
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))
 *                     except InvalidCategory as ex:             # <<<<<<<<<<<<<<
 *                         raise InvalidLevel(
 *                             "{0} is not a valid level ({1} is not a valid category range)".
 */
            __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_7, &__pyx_t_11);
            __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_InvalidCategory); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 330, __pyx_L32_except_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_15 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_10);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_7, __pyx_t_11);
            __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_11 = 0;
            if (__pyx_t_15) {
              __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_7, &__pyx_t_2) < 0) __PYX_ERR(3, 330, __pyx_L32_except_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_7);
              __pyx_v_ex = __pyx_t_7;
              /*try:*/ {

                /* "setools/policyrep/mls.pxi":331
 *                                                               policy.lookup_category(catrange[1])))
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(             # <<<<<<<<<<<<<<
 *                             "{0} is not a valid level ({1} is not a valid category range)".
 *                             format(name, group)) from ex
 */
                __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_InvalidLevel); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 331, __pyx_L43_error)
                __Pyx_GOTREF(__pyx_t_8);

                /* "setools/policyrep/mls.pxi":332
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel(
 *                             "{0} is not a valid level ({1} is not a valid category range)".             # <<<<<<<<<<<<<<
 *                             format(name, group)) from ex
 * 
 */
                __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_level_1_is_not_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 332, __pyx_L43_error)
                __Pyx_GOTREF(__pyx_t_14);

                /* "setools/policyrep/mls.pxi":333
 *                         raise InvalidLevel(
 *                             "{0} is not a valid level ({1} is not a valid category range)".
 *                             format(name, group)) from ex             # <<<<<<<<<<<<<<
 * 
 *                 elif len(catrange) == 1:
 */
                __pyx_t_13 = NULL;
                __pyx_t_15 = 0;
                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_15 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_14)) {
                  PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_name, __pyx_v_group};
                  __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 333, __pyx_L43_error)
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_GOTREF(__pyx_t_12);
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
                  PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_name, __pyx_v_group};
                  __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 333, __pyx_L43_error)
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_GOTREF(__pyx_t_12);
                } else
                #endif
                {
                  __pyx_t_25 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_25)) __PYX_ERR(3, 333, __pyx_L43_error)
                  __Pyx_GOTREF(__pyx_t_25);
                  if (__pyx_t_13) {
                    __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_13); __pyx_t_13 = NULL;
                  }
                  __Pyx_INCREF(__pyx_v_name);
                  __Pyx_GIVEREF(__pyx_v_name);
                  PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_15, __pyx_v_name);
                  __Pyx_INCREF(__pyx_v_group);
                  __Pyx_GIVEREF(__pyx_v_group);
                  PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_15, __pyx_v_group);
                  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_25, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 333, __pyx_L43_error)
                  __Pyx_GOTREF(__pyx_t_12);
                  __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
                }
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __pyx_t_14 = NULL;
                if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
                  __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_8);
                  if (likely(__pyx_t_14)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
                    __Pyx_INCREF(__pyx_t_14);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_8, function);
                  }
                }
                __pyx_t_10 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_14, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12);
                __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 331, __pyx_L43_error)
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __Pyx_Raise(__pyx_t_10, 0, 0, __pyx_v_ex);
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                __PYX_ERR(3, 331, __pyx_L43_error)
              }

              /* "setools/policyrep/mls.pxi":330
 *                                                               policy.lookup_category(catrange[0]),
 *                                                               policy.lookup_category(catrange[1])))
 *                     except InvalidCategory as ex:             # <<<<<<<<<<<<<<
 *                         raise InvalidLevel(
 *                             "{0} is not a valid level ({1} is not a valid category range)".
 */
              /*finally:*/ {
                __pyx_L43_error:;
                /*exception exit:*/{
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0;
                  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
                  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                  if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_27, &__pyx_t_28, &__pyx_t_29);
                  if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_18, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_18, &__pyx_t_17);
                  __Pyx_XGOTREF(__pyx_t_19);
                  __Pyx_XGOTREF(__pyx_t_18);
                  __Pyx_XGOTREF(__pyx_t_17);
                  __Pyx_XGOTREF(__pyx_t_27);
                  __Pyx_XGOTREF(__pyx_t_28);
                  __Pyx_XGOTREF(__pyx_t_29);
                  __pyx_t_15 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_26 = __pyx_filename;
                  {
                    __Pyx_DECREF(__pyx_v_ex);
                    __pyx_v_ex = NULL;
                  }
                  if (PY_MAJOR_VERSION >= 3) {
                    __Pyx_XGIVEREF(__pyx_t_27);
                    __Pyx_XGIVEREF(__pyx_t_28);
                    __Pyx_XGIVEREF(__pyx_t_29);
                    __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_28, __pyx_t_29);
                  }
                  __Pyx_XGIVEREF(__pyx_t_19);
                  __Pyx_XGIVEREF(__pyx_t_18);
                  __Pyx_XGIVEREF(__pyx_t_17);
                  __Pyx_ErrRestore(__pyx_t_19, __pyx_t_18, __pyx_t_17);
                  __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0;
                  __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_26;
                  goto __pyx_L32_except_error;
                }
              }
            }
            goto __pyx_L32_except_error;
            __pyx_L32_except_error:;

            /* "setools/policyrep/mls.pxi":326
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.update(expand_cat_range(policy,
 *                                                               policy.lookup_category(catrange[0]),
 */
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_21, __pyx_t_20);
            goto __pyx_L23_except_error;
            __pyx_L37_try_end:;
          }

          /* "setools/policyrep/mls.pxi":325
 *             for group in cats.split(","):
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:             # <<<<<<<<<<<<<<
 *                     try:
 *                         l._categories.update(expand_cat_range(policy,
 */
          goto __pyx_L29;
        }

        /* "setools/policyrep/mls.pxi":335
 *                             format(name, group)) from ex
 * 
 *                 elif len(catrange) == 1:             # <<<<<<<<<<<<<<
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 */
        if (unlikely(__pyx_v_catrange == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
          __PYX_ERR(3, 335, __pyx_L23_except_error)
        }
        __pyx_t_24 = PyList_GET_SIZE(__pyx_v_catrange); if (unlikely(__pyx_t_24 == ((Py_ssize_t)-1))) __PYX_ERR(3, 335, __pyx_L23_except_error)
        __pyx_t_1 = ((__pyx_t_24 == 1) != 0);
        if (likely(__pyx_t_1)) {

          /* "setools/policyrep/mls.pxi":336
 * 
 *                 elif len(catrange) == 1:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:
 */
          {
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __Pyx_ExceptionSave(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
            __Pyx_XGOTREF(__pyx_t_20);
            __Pyx_XGOTREF(__pyx_t_21);
            __Pyx_XGOTREF(__pyx_t_22);
            /*try:*/ {

              /* "setools/policyrep/mls.pxi":337
 *                 elif len(catrange) == 1:
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))             # <<<<<<<<<<<<<<
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel("{0} is not a valid level ({1} is not a valid category)".
 */
              if (unlikely(__pyx_v_l->__pyx_base._categories == Py_None)) {
                PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
                __PYX_ERR(3, 337, __pyx_L49_error)
              }
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_policy), __pyx_n_s_lookup_category); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 337, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_7);
              if (unlikely(__pyx_v_catrange == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                __PYX_ERR(3, 337, __pyx_L49_error)
              }
              __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_catrange, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 337, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_10 = NULL;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
                __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
                if (likely(__pyx_t_10)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
                  __Pyx_INCREF(__pyx_t_10);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_7, function);
                }
              }
              __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_11);
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 337, __pyx_L49_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_30 = PySet_Add(__pyx_v_l->__pyx_base._categories, __pyx_t_2); if (unlikely(__pyx_t_30 == ((int)-1))) __PYX_ERR(3, 337, __pyx_L49_error)
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

              /* "setools/policyrep/mls.pxi":336
 * 
 *                 elif len(catrange) == 1:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:
 */
            }
            __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
            __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
            goto __pyx_L56_try_end;
            __pyx_L49_error:;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

            /* "setools/policyrep/mls.pxi":338
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:             # <<<<<<<<<<<<<<
 *                         raise InvalidLevel("{0} is not a valid level ({1} is not a valid category)".
 *                                            format(name, group)) from ex
 */
            __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_7, &__pyx_t_11);
            __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_InvalidCategory); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 338, __pyx_L51_except_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_10);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_ErrRestore(__pyx_t_2, __pyx_t_7, __pyx_t_11);
            __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_11 = 0;
            if (__pyx_t_9) {
              __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_7, &__pyx_t_2) < 0) __PYX_ERR(3, 338, __pyx_L51_except_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_7);
              __pyx_v_ex = __pyx_t_7;
              /*try:*/ {

                /* "setools/policyrep/mls.pxi":339
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel("{0} is not a valid level ({1} is not a valid category)".             # <<<<<<<<<<<<<<
 *                                            format(name, group)) from ex
 * 
 */
                __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_InvalidLevel); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 339, __pyx_L62_error)
                __Pyx_GOTREF(__pyx_t_8);

                /* "setools/policyrep/mls.pxi":340
 *                     except InvalidCategory as ex:
 *                         raise InvalidLevel("{0} is not a valid level ({1} is not a valid category)".
 *                                            format(name, group)) from ex             # <<<<<<<<<<<<<<
 * 
 *                 else:
 */
                __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_level_1_is_not_3, __pyx_n_s_format_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 339, __pyx_L62_error)
                __Pyx_GOTREF(__pyx_t_14);
                __pyx_t_25 = NULL;
                __pyx_t_9 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
                  __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_14);
                  if (likely(__pyx_t_25)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
                    __Pyx_INCREF(__pyx_t_25);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_14, function);
                    __pyx_t_9 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_14)) {
                  PyObject *__pyx_temp[3] = {__pyx_t_25, __pyx_v_name, __pyx_v_group};
                  __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 340, __pyx_L62_error)
                  __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
                  __Pyx_GOTREF(__pyx_t_12);
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
                  PyObject *__pyx_temp[3] = {__pyx_t_25, __pyx_v_name, __pyx_v_group};
                  __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 340, __pyx_L62_error)
                  __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
                  __Pyx_GOTREF(__pyx_t_12);
                } else
                #endif
                {
                  __pyx_t_13 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 340, __pyx_L62_error)
                  __Pyx_GOTREF(__pyx_t_13);
                  if (__pyx_t_25) {
                    __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_25); __pyx_t_25 = NULL;
                  }
                  __Pyx_INCREF(__pyx_v_name);
                  __Pyx_GIVEREF(__pyx_v_name);
                  PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_9, __pyx_v_name);
                  __Pyx_INCREF(__pyx_v_group);
                  __Pyx_GIVEREF(__pyx_v_group);
                  PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_9, __pyx_v_group);
                  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_13, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 340, __pyx_L62_error)
                  __Pyx_GOTREF(__pyx_t_12);
                  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
                }
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __pyx_t_14 = NULL;
                if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
                  __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_8);
                  if (likely(__pyx_t_14)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
                    __Pyx_INCREF(__pyx_t_14);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_8, function);
                  }
                }
                __pyx_t_10 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_14, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12);
                __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 339, __pyx_L62_error)
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __Pyx_Raise(__pyx_t_10, 0, 0, __pyx_v_ex);
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                __PYX_ERR(3, 339, __pyx_L62_error)
              }

              /* "setools/policyrep/mls.pxi":338
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:             # <<<<<<<<<<<<<<
 *                         raise InvalidLevel("{0} is not a valid level ({1} is not a valid category)".
 *                                            format(name, group)) from ex
 */
              /*finally:*/ {
                __pyx_L62_error:;
                /*exception exit:*/{
                  __Pyx_PyThreadState_declare
                  __Pyx_PyThreadState_assign
                  __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
                  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
                  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
                  __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
                  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                  if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
                  if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_29, &__pyx_t_28, &__pyx_t_27) < 0)) __Pyx_ErrFetch(&__pyx_t_29, &__pyx_t_28, &__pyx_t_27);
                  __Pyx_XGOTREF(__pyx_t_29);
                  __Pyx_XGOTREF(__pyx_t_28);
                  __Pyx_XGOTREF(__pyx_t_27);
                  __Pyx_XGOTREF(__pyx_t_17);
                  __Pyx_XGOTREF(__pyx_t_18);
                  __Pyx_XGOTREF(__pyx_t_19);
                  __pyx_t_9 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_31 = __pyx_filename;
                  {
                    __Pyx_DECREF(__pyx_v_ex);
                    __pyx_v_ex = NULL;
                  }
                  if (PY_MAJOR_VERSION >= 3) {
                    __Pyx_XGIVEREF(__pyx_t_17);
                    __Pyx_XGIVEREF(__pyx_t_18);
                    __Pyx_XGIVEREF(__pyx_t_19);
                    __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
                  }
                  __Pyx_XGIVEREF(__pyx_t_29);
                  __Pyx_XGIVEREF(__pyx_t_28);
                  __Pyx_XGIVEREF(__pyx_t_27);
                  __Pyx_ErrRestore(__pyx_t_29, __pyx_t_28, __pyx_t_27);
                  __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
                  __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_31;
                  goto __pyx_L51_except_error;
                }
              }
            }
            goto __pyx_L51_except_error;
            __pyx_L51_except_error:;

            /* "setools/policyrep/mls.pxi":336
 * 
 *                 elif len(catrange) == 1:
 *                     try:             # <<<<<<<<<<<<<<
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 *                     except InvalidCategory as ex:
 */
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
            goto __pyx_L23_except_error;
            __pyx_L56_try_end:;
          }

          /* "setools/policyrep/mls.pxi":335
 *                             format(name, group)) from ex
 * 
 *                 elif len(catrange) == 1:             # <<<<<<<<<<<<<<
 *                     try:
 *                         l._categories.add(policy.lookup_category(catrange[0]))
 */
          goto __pyx_L29;
        }

        /* "setools/policyrep/mls.pxi":343
 * 
 *                 else:
 *                     raise InvalidLevel("{0} is not a valid level (level parsing error)".format(name))             # <<<<<<<<<<<<<<
 * 
 *         # verify level is valid
 */
        /*else*/ {
          __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_InvalidLevel); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 343, __pyx_L23_except_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_level_level_pa, __pyx_n_s_format_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 343, __pyx_L23_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_8 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
            __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10);
            if (likely(__pyx_t_8)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
              __Pyx_INCREF(__pyx_t_8);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_10, function);
            }
          }
          __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_name);
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 343, __pyx_L23_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
            __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
            if (likely(__pyx_t_10)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
              __Pyx_INCREF(__pyx_t_10);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_7, function);
            }
          }
          __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_11);
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 343, __pyx_L23_except_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_Raise(__pyx_t_2, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __PYX_ERR(3, 343, __pyx_L23_except_error)
        }
        __pyx_L29:;

        /* "setools/policyrep/mls.pxi":323
 *             pass
 *         else:
 *             for group in cats.split(","):             # <<<<<<<<<<<<<<
 *                 catrange = group.split(".")
 *                 if len(catrange) == 2:
 */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L26_try_end;
    __pyx_L21_error:;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "setools/policyrep/mls.pxi":320
 *         try:
 *             cats = sens_split[1]
 *         except IndexError:             # <<<<<<<<<<<<<<
 *             pass
 *         else:
 */
    __pyx_t_15 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError);
    if (__pyx_t_15) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L22_exception_handled;
    }
    goto __pyx_L23_except_error;
    __pyx_L23_except_error:;

    /* "setools/policyrep/mls.pxi":318
 *         l._categories = set()
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             cats = sens_split[1]
 *         except IndexError:
 */
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L22_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
    __pyx_L26_try_end:;
  }

  /* "setools/policyrep/mls.pxi":346
 * 
 *         # verify level is valid
 *         if not l <= l.sensitivity.level_decl():             # <<<<<<<<<<<<<<
 *             raise InvalidLevel(
 *                 "{0} is not a valid level (one or more categories are not associated with the "
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_l->__pyx_base.sensitivity), __pyx_n_s_level_decl); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_l), __pyx_t_6, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 346, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(3, 346, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_32 = ((!__pyx_t_1) != 0);
  if (unlikely(__pyx_t_32)) {

    /* "setools/policyrep/mls.pxi":347
 *         # verify level is valid
 *         if not l <= l.sensitivity.level_decl():
 *             raise InvalidLevel(             # <<<<<<<<<<<<<<
 *                 "{0} is not a valid level (one or more categories are not associated with the "
 *                 "sensitivity)".format(name))
 */
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_InvalidLevel); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 347, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);

    /* "setools/policyrep/mls.pxi":349
 *             raise InvalidLevel(
 *                 "{0} is not a valid level (one or more categories are not associated with the "
 *                 "sensitivity)".format(name))             # <<<<<<<<<<<<<<
 * 
 *         return l
 */
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_level_one_or_m, __pyx_n_s_format_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_7 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_name);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_2 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 347, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 347, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":346
 * 
 *         # verify level is valid
 *         if not l <= l.sensitivity.level_decl():             # <<<<<<<<<<<<<<
 *             raise InvalidLevel(
 *                 "{0} is not a valid level (one or more categories are not associated with the "
 */
  }

  /* "setools/policyrep/mls.pxi":351
 *                 "sensitivity)".format(name))
 * 
 *         return l             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_l));
  __pyx_r = __pyx_v_l;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":293
 * 
 *     @staticmethod
 *     cdef inline Level factory_from_string(SELinuxPolicy policy, str name):             # <<<<<<<<<<<<<<
 *         """Factory function variant for constructing Level objects by a string."""
 *         if not policy.mls:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_25);
  __Pyx_AddTraceback("setools.policyrep.Level.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_l);
  __Pyx_XDECREF(__pyx_v_sens_split);
  __Pyx_XDECREF(__pyx_v_sens);
  __Pyx_XDECREF(__pyx_v_cats);
  __Pyx_XDECREF(__pyx_v_catrange);
  __Pyx_XDECREF(__pyx_v_group);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":353
 *         return l
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_5Level_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_5Level_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level___hash__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_5Level___hash__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":354
 * 
 *     def __hash__(self):
 *         return hash(str(self))             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":353
 *         return l
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Level.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":356
 *         return hash(str(self))
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             othercats = set(other.categories())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_3__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_2__eq__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_2__eq__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/mls.pxi":357
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             othercats = set(other.categories())
 *         except AttributeError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":358
 *     def __eq__(self, other):
 *         try:
 *             othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         except AttributeError:
 *             return str(self) == str(other)
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_categories); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 358, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 358, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PySet_New(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 358, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_othercats = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/mls.pxi":357
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             othercats = set(other.categories())
 *         except AttributeError:
 */
    }

    /* "setools/policyrep/mls.pxi":362
 *             return str(self) == str(other)
 *         else:
 *             return self.sensitivity == other.sensitivity and self._categories == othercats             # <<<<<<<<<<<<<<
 * 
 *     def __ge__(self, other):
 */
    /*else:*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 362, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 362, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(3, 362, __pyx_L5_except_error)
      if (__pyx_t_7) {
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_5 = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 362, __pyx_L5_except_error)
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_5 = __pyx_t_6;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_L9_bool_binop_done:;
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      goto __pyx_L6_except_return;
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":359
 *         try:
 *             othercats = set(other.categories())
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             return str(self) == str(other)
 *         else:
 */
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
    if (__pyx_t_8) {
      __Pyx_AddTraceback("setools.policyrep.Level.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(3, 359, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);

      /* "setools/policyrep/mls.pxi":360
 *             othercats = set(other.categories())
 *         except AttributeError:
 *             return str(self) == str(other)             # <<<<<<<<<<<<<<
 *         else:
 *             return self.sensitivity == other.sensitivity and self._categories == othercats
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 360, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 360, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_t_10, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(3, 360, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 360, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_r = __pyx_t_10;
      __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/mls.pxi":357
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             othercats = set(other.categories())
 *         except AttributeError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":356
 *         return hash(str(self))
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             othercats = set(other.categories())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.Level.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":364
 *             return self.sensitivity == other.sensitivity and self._categories == othercats
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         # Dom operator
 *         othercats = set(other.categories())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_5__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_5__ge__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ge__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_4__ge__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_4__ge__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ge__", 0);

  /* "setools/policyrep/mls.pxi":366
 *     def __ge__(self, other):
 *         # Dom operator
 *         othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         return self.sensitivity >= other.sensitivity and self._categories >= othercats
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_categories); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_othercats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":367
 *         # Dom operator
 *         othercats = set(other.categories())
 *         return self.sensitivity >= other.sensitivity and self._categories >= othercats             # <<<<<<<<<<<<<<
 * 
 *     def __gt__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 367, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 367, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_2 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 367, __pyx_L1_error)
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_2 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":364
 *             return self.sensitivity == other.sensitivity and self._categories == othercats
 * 
 *     def __ge__(self, other):             # <<<<<<<<<<<<<<
 *         # Dom operator
 *         othercats = set(other.categories())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Level.__ge__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":369
 *         return self.sensitivity >= other.sensitivity and self._categories >= othercats
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         othercats = set(other.categories())
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_7__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_7__gt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__gt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_6__gt__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_6__gt__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__gt__", 0);

  /* "setools/policyrep/mls.pxi":370
 * 
 *     def __gt__(self, other):
 *         othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_categories); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_othercats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":371
 *     def __gt__(self, other):
 *         othercats = set(other.categories())
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or             # <<<<<<<<<<<<<<
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_4) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 371, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 371, __pyx_L1_error)
  if (!__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_2 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;

  /* "setools/policyrep/mls.pxi":372
 *         othercats = set(other.categories())
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))             # <<<<<<<<<<<<<<
 * 
 *     def __le__(self, other):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 372, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 372, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 372, __pyx_L1_error)
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":369
 *         return self.sensitivity >= other.sensitivity and self._categories >= othercats
 * 
 *     def __gt__(self, other):             # <<<<<<<<<<<<<<
 *         othercats = set(other.categories())
 *         return ((self.sensitivity > other.sensitivity and self._categories >= othercats) or
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Level.__gt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":374
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         # Domby operator
 *         othercats = set(other.categories())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_9__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_9__le__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__le__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_8__le__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_8__le__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__le__", 0);

  /* "setools/policyrep/mls.pxi":376
 *     def __le__(self, other):
 *         # Domby operator
 *         othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         return self.sensitivity <= other.sensitivity and self._categories <= othercats
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_categories); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_othercats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":377
 *         # Domby operator
 *         othercats = set(other.categories())
 *         return self.sensitivity <= other.sensitivity and self._categories <= othercats             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_1, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 377, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 377, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_2 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 377, __pyx_L1_error)
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_2 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":374
 *                 (self.sensitivity >= other.sensitivity and self._categories > othercats))
 * 
 *     def __le__(self, other):             # <<<<<<<<<<<<<<
 *         # Domby operator
 *         othercats = set(other.categories())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Level.__le__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":379
 *         return self.sensitivity <= other.sensitivity and self._categories <= othercats
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         othercats = set(other.categories())
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_10__lt__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_10__lt__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_othercats = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mls.pxi":380
 * 
 *     def __lt__(self, other):
 *         othercats = set(other.categories())             # <<<<<<<<<<<<<<
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_categories); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_othercats = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":381
 *     def __lt__(self, other):
 *         othercats = set(other.categories())
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or             # <<<<<<<<<<<<<<
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_4) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 381, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 381, __pyx_L1_error)
  if (!__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_2 = __pyx_t_3;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;

  /* "setools/policyrep/mls.pxi":382
 *         othercats = set(other.categories())
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))             # <<<<<<<<<<<<<<
 * 
 *     def __xor__(self, other):
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_sensitivity); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.sensitivity), __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 382, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(3, 382, __pyx_L1_error)
  if (__pyx_t_4) {
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->__pyx_base._categories, __pyx_v_othercats, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 382, __pyx_L1_error)
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":379
 *         return self.sensitivity <= other.sensitivity and self._categories <= othercats
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         othercats = set(other.categories())
 *         return ((self.sensitivity < other.sensitivity and self._categories <= othercats) or
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Level.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_othercats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":384
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))
 * 
 *     def __xor__(self, other):             # <<<<<<<<<<<<<<
 *         # Incomp operator
 *         return not (self >= other or self <= other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_13__xor__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_13__xor__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__xor__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_12__xor__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_12__xor__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__xor__", 0);

  /* "setools/policyrep/mls.pxi":386
 *     def __xor__(self, other):
 *         # Incomp operator
 *         return not (self >= other or self <= other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_self, __pyx_v_other, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 386, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(3, 386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_self, __pyx_v_other, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 386, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(3, 386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_3;
  __pyx_L3_bool_binop_done:;
  __pyx_t_2 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":384
 *                 (self.sensitivity <= other.sensitivity and self._categories < othercats))
 * 
 *     def __xor__(self, other):             # <<<<<<<<<<<<<<
 *         # Incomp operator
 *         return not (self >= other or self <= other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Level.__xor__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":388
 *         return not (self >= other or self <= other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_15statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_15statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_14statement(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_14statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":389
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(3, 389, __pyx_L1_error)

  /* "setools/policyrep/mls.pxi":388
 *         return not (self >= other or self <= other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Level.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_17__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_17__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_16__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_16__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base._categories);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base._categories);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->__pyx_base._categories);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.sensitivity));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.sensitivity));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.sensitivity));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._categories, self.key, self.policy, self.sensitivity)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->__pyx_base._categories != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.sensitivity) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Level); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_159260084);
    __Pyx_GIVEREF(__pyx_int_159260084);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_159260084);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._categories is not None or self.policy is not None or self.sensitivity is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, None), state
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Level); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_159260084);
    __Pyx_GIVEREF(__pyx_int_159260084);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_159260084);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Level.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Level_19__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Level_19__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Level_18__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Level_18__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Level__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Level, (type(self), 0x97e1db4, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Level__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Level.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":401
 * 
 *     @staticmethod
 *     cdef inline Range factory(SELinuxPolicy policy, sepol.mls_range_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Range objects."""
 *         if not policy.mls:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, mls_range_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_Range *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":403
 *     cdef inline Range factory(SELinuxPolicy policy, sepol.mls_range_t *symbol):
 *         """Factory function for creating Range objects."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_policy->mls != 0)) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":404
 *         """Factory function for creating Range objects."""
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         cdef Range r = Range.__new__(Range)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 404, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":403
 *     cdef inline Range factory(SELinuxPolicy policy, sepol.mls_range_t *symbol):
 *         """Factory function for creating Range objects."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":406
 *             raise MLSDisabled
 * 
 *         cdef Range r = Range.__new__(Range)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.low = Level.factory(policy, &symbol.level[0])
 */
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Range(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Range), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 406, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":407
 * 
 *         cdef Range r = Range.__new__(Range)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.low = Level.factory(policy, &symbol.level[0])
 *         r.high = Level.factory(policy, &symbol.level[1])
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.policy));
  __pyx_v_r->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":408
 *         cdef Range r = Range.__new__(Range)
 *         r.policy = policy
 *         r.low = Level.factory(policy, &symbol.level[0])             # <<<<<<<<<<<<<<
 *         r.high = Level.factory(policy, &symbol.level[1])
 *         return r
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory(__pyx_v_policy, (&(__pyx_v_symbol->level[0])))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->low);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->low));
  __pyx_v_r->low = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":409
 *         r.policy = policy
 *         r.low = Level.factory(policy, &symbol.level[0])
 *         r.high = Level.factory(policy, &symbol.level[1])             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory(__pyx_v_policy, (&(__pyx_v_symbol->level[1])))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->high);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->high));
  __pyx_v_r->high = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":410
 *         r.low = Level.factory(policy, &symbol.level[0])
 *         r.high = Level.factory(policy, &symbol.level[1])
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":401
 * 
 *     @staticmethod
 *     cdef inline Range factory(SELinuxPolicy policy, sepol.mls_range_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Range objects."""
 *         if not policy.mls:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Range.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":413
 * 
 *     @staticmethod
 *     cdef inline Range factory_from_string(SELinuxPolicy policy, str name):             # <<<<<<<<<<<<<<
 *         """Factory function variant for constructing Range objects by name."""
 *         if not policy.mls:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Range *__pyx_f_7setools_9policyrep_5Range_factory_from_string(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, PyObject *__pyx_v_name) {
  struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_r = 0;
  PyObject *__pyx_v_levels = 0;
  PyObject *__pyx_v_ex = NULL;
  struct __pyx_obj_7setools_9policyrep_Range *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  char const *__pyx_t_16;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  char const *__pyx_t_23;
  int __pyx_t_24;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_string", 0);

  /* "setools/policyrep/mls.pxi":415
 *     cdef inline Range factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Range objects by name."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_policy->mls != 0)) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/mls.pxi":416
 *         """Factory function variant for constructing Range objects by name."""
 *         if not policy.mls:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *         cdef Range r = Range.__new__(Range)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 416, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":415
 *     cdef inline Range factory_from_string(SELinuxPolicy policy, str name):
 *         """Factory function variant for constructing Range objects by name."""
 *         if not policy.mls:             # <<<<<<<<<<<<<<
 *             raise MLSDisabled
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":418
 *             raise MLSDisabled
 * 
 *         cdef Range r = Range.__new__(Range)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Range(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Range), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 418, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":419
 * 
 *         cdef Range r = Range.__new__(Range)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 * 
 *         # build range:
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.policy));
  __pyx_v_r->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":422
 * 
 *         # build range:
 *         cdef list levels = name.split("-")             # <<<<<<<<<<<<<<
 * 
 *         # strip() levels to handle ranges with spaces in them,
 */
  if (unlikely(__pyx_v_name == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split");
    __PYX_ERR(3, 422, __pyx_L1_error)
  }
  __pyx_t_2 = PyUnicode_Split(__pyx_v_name, __pyx_kp_u__36, -1L); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_levels = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":426
 *         # strip() levels to handle ranges with spaces in them,
 *         # e.g. s0:c1 - s0:c0.c255
 *         try:             # <<<<<<<<<<<<<<
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":427
 *         # e.g. s0:c1 - s0:c0.c255
 *         try:
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())             # <<<<<<<<<<<<<<
 *         except InvalidLevel as ex:
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 */
      if (unlikely(__pyx_v_levels == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(3, 427, __pyx_L4_error)
      }
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_levels, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 427, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_strip); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 427, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 427, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(3, 427, __pyx_L4_error)
      __pyx_t_7 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory_from_string(__pyx_v_policy, ((PyObject*)__pyx_t_2))); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 427, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_v_r->low);
      __Pyx_DECREF(((PyObject *)__pyx_v_r->low));
      __pyx_v_r->low = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_7);
      __pyx_t_7 = 0;

      /* "setools/policyrep/mls.pxi":426
 *         # strip() levels to handle ranges with spaces in them,
 *         # e.g. s0:c1 - s0:c0.c255
 *         try:             # <<<<<<<<<<<<<<
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L9_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/mls.pxi":428
 *         try:
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 * 
 */
    __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_2, &__pyx_t_6);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_InvalidLevel); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 428, __pyx_L6_except_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_7, __pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_ErrRestore(__pyx_t_7, __pyx_t_2, __pyx_t_6);
    __pyx_t_7 = 0; __pyx_t_2 = 0; __pyx_t_6 = 0;
    if (__pyx_t_9) {
      __Pyx_AddTraceback("setools.policyrep.Range.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(3, 428, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_v_ex = __pyx_t_2;
      /*try:*/ {

        /* "setools/policyrep/mls.pxi":429
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_InvalidRange); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 429, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_range_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 429, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = NULL;
        __pyx_t_9 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
            __pyx_t_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_12)) {
          PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_name, __pyx_v_ex};
          __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 429, __pyx_L15_error)
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GOTREF(__pyx_t_11);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) {
          PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_name, __pyx_v_ex};
          __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 429, __pyx_L15_error)
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GOTREF(__pyx_t_11);
        } else
        #endif
        {
          __pyx_t_14 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 429, __pyx_L15_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_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_9, __pyx_v_name);
          __Pyx_INCREF(__pyx_v_ex);
          __Pyx_GIVEREF(__pyx_v_ex);
          PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_9, __pyx_v_ex);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_14, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 429, __pyx_L15_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
          }
        }
        __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 429, __pyx_L15_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_Raise(__pyx_t_8, 0, 0, __pyx_v_ex);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __PYX_ERR(3, 429, __pyx_L15_error)
      }

      /* "setools/policyrep/mls.pxi":428
 *         try:
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 * 
 */
      /*finally:*/ {
        __pyx_L15_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_9 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex);
            __pyx_v_ex = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
          }
          __Pyx_XGIVEREF(__pyx_t_17);
          __Pyx_XGIVEREF(__pyx_t_18);
          __Pyx_XGIVEREF(__pyx_t_19);
          __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19);
          __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
          goto __pyx_L6_except_error;
        }
      }
    }
    goto __pyx_L6_except_error;
    __pyx_L6_except_error:;

    /* "setools/policyrep/mls.pxi":426
 *         # strip() levels to handle ranges with spaces in them,
 *         # e.g. s0:c1 - s0:c0.c255
 *         try:             # <<<<<<<<<<<<<<
 *             r.low  = Level.factory_from_string(policy, levels[0].strip())
 *         except InvalidLevel as ex:
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L9_try_end:;
  }

  /* "setools/policyrep/mls.pxi":431
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_4, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":432
 * 
 *         try:
 *             r.high = Level.factory_from_string(policy, levels[1].strip())             # <<<<<<<<<<<<<<
 *         except InvalidLevel as ex:
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 */
      if (unlikely(__pyx_v_levels == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(3, 432, __pyx_L21_error)
      }
      __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_levels, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 432, __pyx_L21_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_strip); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 432, __pyx_L21_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_7 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 432, __pyx_L21_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(3, 432, __pyx_L21_error)
      __pyx_t_6 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory_from_string(__pyx_v_policy, ((PyObject*)__pyx_t_7))); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 432, __pyx_L21_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_v_r->high);
      __Pyx_DECREF(((PyObject *)__pyx_v_r->high));
      __pyx_v_r->high = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/mls.pxi":431
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:
 */
    }
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L26_try_end;
    __pyx_L21_error:;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "setools/policyrep/mls.pxi":433
 *         try:
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 *         except IndexError:
 */
    __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_InvalidLevel); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 433, __pyx_L23_except_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_15 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_6, __pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_2);
    __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0;
    if (__pyx_t_15) {
      __Pyx_AddTraceback("setools.policyrep.Range.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(3, 433, __pyx_L23_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_ex = __pyx_t_7;
      /*try:*/ {

        /* "setools/policyrep/mls.pxi":434
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex             # <<<<<<<<<<<<<<
 *         except IndexError:
 *             r.high = r.low
 */
        __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_InvalidRange); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 434, __pyx_L32_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_range_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 434, __pyx_L32_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_14 = NULL;
        __pyx_t_15 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_14)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_14);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
            __pyx_t_15 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_12)) {
          PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_name, __pyx_v_ex};
          __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 434, __pyx_L32_error)
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_GOTREF(__pyx_t_11);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) {
          PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_name, __pyx_v_ex};
          __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 434, __pyx_L32_error)
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_GOTREF(__pyx_t_11);
        } else
        #endif
        {
          __pyx_t_13 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_13)) __PYX_ERR(3, 434, __pyx_L32_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_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_15, __pyx_v_name);
          __Pyx_INCREF(__pyx_v_ex);
          __Pyx_GIVEREF(__pyx_v_ex);
          PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_15, __pyx_v_ex);
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_13, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 434, __pyx_L32_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
          }
        }
        __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 434, __pyx_L32_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_Raise(__pyx_t_8, 0, 0, __pyx_v_ex);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __PYX_ERR(3, 434, __pyx_L32_error)
      }

      /* "setools/policyrep/mls.pxi":433
 *         try:
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:             # <<<<<<<<<<<<<<
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 *         except IndexError:
 */
      /*finally:*/ {
        __pyx_L32_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_18, &__pyx_t_17);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_19);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_17);
          __pyx_t_15 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_23 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex);
            __pyx_v_ex = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_18, __pyx_t_17);
          }
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_ErrRestore(__pyx_t_22, __pyx_t_21, __pyx_t_20);
          __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0;
          __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_23;
          goto __pyx_L23_except_error;
        }
      }
    }

    /* "setools/policyrep/mls.pxi":435
 *         except InvalidLevel as ex:
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 *         except IndexError:             # <<<<<<<<<<<<<<
 *             r.high = r.low
 * 
 */
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError);
    if (__pyx_t_9) {
      __Pyx_AddTraceback("setools.policyrep.Range.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_2) < 0) __PYX_ERR(3, 435, __pyx_L23_except_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_2);

      /* "setools/policyrep/mls.pxi":436
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 *         except IndexError:
 *             r.high = r.low             # <<<<<<<<<<<<<<
 * 
 *         # verify high level dominates low range
 */
      __pyx_t_8 = ((PyObject *)__pyx_v_r->low);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_r->high);
      __Pyx_DECREF(((PyObject *)__pyx_v_r->high));
      __pyx_v_r->high = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L22_exception_handled;
    }
    goto __pyx_L23_except_error;
    __pyx_L23_except_error:;

    /* "setools/policyrep/mls.pxi":431
 *             raise InvalidRange("{0} is not a valid range ({1}).".format(name, ex)) from ex
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             r.high = Level.factory_from_string(policy, levels[1].strip())
 *         except InvalidLevel as ex:
 */
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L22_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
    __pyx_L26_try_end:;
  }

  /* "setools/policyrep/mls.pxi":439
 * 
 *         # verify high level dominates low range
 *         if not r.high >= r.low:             # <<<<<<<<<<<<<<
 *             raise InvalidRange("{0} is not a valid range ({1.low} is not dominated by {1.high})".
 *                                format(name, r))
 */
  __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_r->high), ((PyObject *)__pyx_v_r->low), Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 439, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(3, 439, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_24 = ((!__pyx_t_1) != 0);
  if (unlikely(__pyx_t_24)) {

    /* "setools/policyrep/mls.pxi":440
 *         # verify high level dominates low range
 *         if not r.high >= r.low:
 *             raise InvalidRange("{0} is not a valid range ({1.low} is not dominated by {1.high})".             # <<<<<<<<<<<<<<
 *                                format(name, r))
 *         return r
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_InvalidRange); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);

    /* "setools/policyrep/mls.pxi":441
 *         if not r.high >= r.low:
 *             raise InvalidRange("{0} is not a valid range ({1.low} is not dominated by {1.high})".
 *                                format(name, r))             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_range_1_low_is, __pyx_n_s_format_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_8)) {
      PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_name, ((PyObject *)__pyx_v_r)};
      __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 441, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
      PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_name, ((PyObject *)__pyx_v_r)};
      __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 441, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else
    #endif
    {
      __pyx_t_11 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 441, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      if (__pyx_t_10) {
        __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __pyx_t_10 = NULL;
      }
      __Pyx_INCREF(__pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_9, __pyx_v_name);
      __Pyx_INCREF(((PyObject *)__pyx_v_r));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_r));
      PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_9, ((PyObject *)__pyx_v_r));
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 441, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(3, 440, __pyx_L1_error)

    /* "setools/policyrep/mls.pxi":439
 * 
 *         # verify high level dominates low range
 *         if not r.high >= r.low:             # <<<<<<<<<<<<<<
 *             raise InvalidRange("{0} is not a valid range ({1.low} is not dominated by {1.high})".
 *                                format(name, r))
 */
  }

  /* "setools/policyrep/mls.pxi":442
 *             raise InvalidRange("{0} is not a valid range ({1.low} is not dominated by {1.high})".
 *                                format(name, r))
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":413
 * 
 *     @staticmethod
 *     cdef inline Range factory_from_string(SELinuxPolicy policy, str name):             # <<<<<<<<<<<<<<
 *         """Factory function variant for constructing Range objects by name."""
 *         if not policy.mls:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("setools.policyrep.Range.factory_from_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XDECREF(__pyx_v_levels);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":444
 *         return r
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.high == self.low:
 *             return str(self.low)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_1__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range___str__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Range___str__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/mls.pxi":445
 * 
 *     def __str__(self):
 *         if self.high == self.low:             # <<<<<<<<<<<<<<
 *             return str(self.low)
 * 
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->high), ((PyObject *)__pyx_v_self->low), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 445, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(3, 445, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "setools/policyrep/mls.pxi":446
 *     def __str__(self):
 *         if self.high == self.low:
 *             return str(self.low)             # <<<<<<<<<<<<<<
 * 
 *         return "{0.low} - {0.high}".format(self)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self->low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/mls.pxi":445
 * 
 *     def __str__(self):
 *         if self.high == self.low:             # <<<<<<<<<<<<<<
 *             return str(self.low)
 * 
 */
  }

  /* "setools/policyrep/mls.pxi":448
 *             return str(self.low)
 * 
 *         return "{0.low} - {0.high}".format(self)             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_low_0_high, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":444
 *         return r
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         if self.high == self.low:
 *             return str(self.low)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Range.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":450
 *         return "{0.low} - {0.high}".format(self)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_5Range_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_5Range_3__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_2__hash__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_5Range_2__hash__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mls.pxi":451
 * 
 *     def __hash__(self):
 *         return hash(str(self))             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(3, 451, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":450
 *         return "{0.low} - {0.high}".format(self)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":453
 *         return hash(str(self))
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self.low == other.low and self.high == other.high
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_5__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_5__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_4__eq__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Range_4__eq__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_v_other_str = NULL;
  PyObject *__pyx_v_self_str = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/mls.pxi":454
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.low == other.low and self.high == other.high
 *         except AttributeError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/mls.pxi":455
 *     def __eq__(self, other):
 *         try:
 *             return self.low == other.low and self.high == other.high             # <<<<<<<<<<<<<<
 *         except AttributeError:
 *             # remove all spaces in the string representations
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_low); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 455, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyObject_RichCompare(((PyObject *)__pyx_v_self->low), __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 455, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(3, 455, __pyx_L3_error)
      if (__pyx_t_7) {
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_4 = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_high); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 455, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_v_self->high), __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 455, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = __pyx_t_5;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_L9_bool_binop_done:;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/mls.pxi":454
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.low == other.low and self.high == other.high
 *         except AttributeError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/mls.pxi":456
 *         try:
 *             return self.low == other.low and self.high == other.high
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             # remove all spaces in the string representations
 *             # to handle cases where the other object does not
 */
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
    if (__pyx_t_8) {
      __Pyx_AddTraceback("setools.policyrep.Range.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(3, 456, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);

      /* "setools/policyrep/mls.pxi":460
 *             # to handle cases where the other object does not
 *             # have spaces around the '-'
 *             other_str = str(other).replace(" ", "")             # <<<<<<<<<<<<<<
 *             self_str = str(self).replace(" ", "")
 *             return self_str == other_str
 */
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 460, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = PyUnicode_Replace(((PyObject*)__pyx_t_9), __pyx_kp_u__3, __pyx_kp_u__37, -1L); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 460, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_v_other_str = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "setools/policyrep/mls.pxi":461
 *             # have spaces around the '-'
 *             other_str = str(other).replace(" ", "")
 *             self_str = str(self).replace(" ", "")             # <<<<<<<<<<<<<<
 *             return self_str == other_str
 * 
 */
      __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 461, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_9 = PyUnicode_Replace(((PyObject*)__pyx_t_10), __pyx_kp_u__3, __pyx_kp_u__37, -1L); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 461, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_v_self_str = __pyx_t_9;
      __pyx_t_9 = 0;

      /* "setools/policyrep/mls.pxi":462
 *             other_str = str(other).replace(" ", "")
 *             self_str = str(self).replace(" ", "")
 *             return self_str == other_str             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = PyObject_RichCompare(__pyx_v_self_str, __pyx_v_other_str, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 462, __pyx_L5_except_error)
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/mls.pxi":454
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.low == other.low and self.high == other.high
 *         except AttributeError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/mls.pxi":453
 *         return hash(str(self))
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self.low == other.low and self.high == other.high
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.Range.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other_str);
  __Pyx_XDECREF(__pyx_v_self_str);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":464
 *             return self_str == other_str
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return self.low <= other <= self.high
 * 
 */

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_5Range_7__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_5Range_7__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_6__contains__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static int __pyx_pf_7setools_9policyrep_5Range_6__contains__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/mls.pxi":465
 * 
 *     def __contains__(self, other):
 *         return self.low <= other <= self.high             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self->low), __pyx_v_other, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 465, __pyx_L1_error)
  if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_other, ((PyObject *)__pyx_v_self->high), Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 465, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":464
 *             return self_str == other_str
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return self.low <= other <= self.high
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":467
 *         return self.low <= other <= self.high
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_9statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_9statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_8statement(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Range_8statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mls.pxi":468
 * 
 *     def statement(self):
 *         raise NoStatement             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NoStatement); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(3, 468, __pyx_L1_error)

  /* "setools/policyrep/mls.pxi":467
 *         return self.low <= other <= self.high
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         raise NoStatement
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":397
 * 
 *     cdef:
 *         readonly Level low             # <<<<<<<<<<<<<<
 *         readonly Level high
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_3low_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_3low_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_3low___get__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Range_3low___get__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->low));
  __pyx_r = ((PyObject *)__pyx_v_self->low);
  goto __pyx_L0;

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

/* "setools/policyrep/mls.pxi":398
 *     cdef:
 *         readonly Level low
 *         readonly Level high             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_4high_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_4high_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_4high___get__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Range_4high___get__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->high));
  __pyx_r = ((PyObject *)__pyx_v_self->high);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_10__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Range_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.high, self.key, self.low, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->high));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->high));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->high));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->low));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->low));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->low));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.high, self.key, self.low, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.high, self.key, self.low, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.high, self.key, self.low, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->high) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->low) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Range); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_244981763);
    __Pyx_GIVEREF(__pyx_int_244981763);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_244981763);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.high is not None or self.low is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, None), state
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Range); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_244981763);
    __Pyx_GIVEREF(__pyx_int_244981763);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_244981763);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Range.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5Range_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_5Range_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_5Range_12__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_5Range_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Range__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Range, (type(self), 0xe9a2003, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Range__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Range.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":479
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating category iterators."""
 *         i = CategoryHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_23CategoryHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":481
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating category iterators."""
 *         i = CategoryHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":482
 *         """Factory function for creating category iterators."""
 *         i = CategoryHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":483
 *         i = CategoryHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/mls.pxi":484
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":485
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":479
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating category iterators."""
 *         i = CategoryHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":487
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self) {
  cat_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  cat_datum_t *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mls.pxi":488
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 488, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 488, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":489
 *     def __next__(self):
 *         super().__next__()
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         while datum != NULL and datum.isalias:
 */
  if ((__pyx_v_self->__pyx_base.curr != 0)) {
    __pyx_t_4 = ((cat_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  } else {
    __pyx_t_4 = NULL;
  }
  __pyx_v_datum = __pyx_t_4;

  /* "setools/policyrep/mls.pxi":491
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 */
  while (1) {
    __pyx_t_6 = ((__pyx_v_datum != NULL) != 0);
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_datum->isalias != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_5) break;

    /* "setools/policyrep/mls.pxi":492
 * 
 *         while datum != NULL and datum.isalias:
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 * 
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
    __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 492, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 492, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":493
 *         while datum != NULL and datum.isalias:
 *             super().__next__()
 *             datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         return Category.factory(self.policy, datum)
 */
    if ((__pyx_v_self->__pyx_base.curr != 0)) {
      __pyx_t_4 = ((cat_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
    } else {
      __pyx_t_4 = NULL;
    }
    __pyx_v_datum = __pyx_t_4;
  }

  /* "setools/policyrep/mls.pxi":495
 *             datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         return Category.factory(self.policy, datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8Category_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_datum)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":487
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.cat_datum_t *> self.curr.datum if self.curr else NULL
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":497
 *         return Category.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.cat_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self) {
  cat_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  cat_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/mls.pxi":500
 *         cdef sepol.cat_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/mls.pxi":501
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/mls.pxi":503
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_1 = ((__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/mls.pxi":504
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/mls.pxi":505
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 */
    while (1) {
      __pyx_t_1 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/mls.pxi":506
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_2 = ((cat_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/mls.pxi":507
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      __pyx_t_3 = ((__pyx_v_datum != NULL) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = ((!(__pyx_v_datum->isalias != 0)) != 0);
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/mls.pxi":508
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/mls.pxi":507
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      }

      /* "setools/policyrep/mls.pxi":510
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/mls.pxi":512
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/mls.pxi":514
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":497
 *         return Category.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.cat_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

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

/* "setools/policyrep/mls.pxi":516
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self) {
  cat_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  cat_datum_t *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/mls.pxi":517
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         cdef sepol.cat_datum_t *datum = <sepol.cat_datum_t *> self.node.datum if self.node else NULL
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 517, __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_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 517, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":519
 *         super().reset()
 * 
 *         cdef sepol.cat_datum_t *datum = <sepol.cat_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
 */
  if ((__pyx_v_self->__pyx_base.node != 0)) {
    __pyx_t_4 = ((cat_datum_t *)__pyx_v_self->__pyx_base.node->datum);
  } else {
    __pyx_t_4 = NULL;
  }
  __pyx_v_datum = __pyx_t_4;

  /* "setools/policyrep/mls.pxi":522
 * 
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  while (1) {
    __pyx_t_6 = ((__pyx_v_datum != NULL) != 0);
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_datum->isalias != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_5) break;

    /* "setools/policyrep/mls.pxi":523
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 */
    ((struct __pyx_vtabstruct_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

    /* "setools/policyrep/mls.pxi":525
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
    __pyx_t_6 = ((__pyx_v_self->__pyx_base.node == NULL) != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_6 = ((__pyx_v_self->__pyx_base.bucket >= (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_5) {

      /* "setools/policyrep/mls.pxi":526
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *             datum = <sepol.cat_datum_t *> self.node.datum if self.node else NULL
 */
      goto __pyx_L4_break;

      /* "setools/policyrep/mls.pxi":525
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
    }

    /* "setools/policyrep/mls.pxi":528
 *                 break
 * 
 *             datum = <sepol.cat_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
    if ((__pyx_v_self->__pyx_base.node != 0)) {
      __pyx_t_4 = ((cat_datum_t *)__pyx_v_self->__pyx_base.node->datum);
    } else {
      __pyx_t_4 = NULL;
    }
    __pyx_v_datum = __pyx_t_4;
  }
  __pyx_L4_break:;

  /* "setools/policyrep/mls.pxi":516
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.CategoryHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":536
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating category iterators."""
 *         i = SensitivityHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_26SensitivityHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":538
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating category iterators."""
 *         i = SensitivityHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":539
 *         """Factory function for creating category iterators."""
 *         i = SensitivityHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":540
 *         i = SensitivityHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/mls.pxi":541
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":542
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":536
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating category iterators."""
 *         i = SensitivityHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":544
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  level_datum_t *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mls.pxi":545
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 545, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 545, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":546
 *     def __next__(self):
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         while datum != NULL and datum.isalias:
 */
  if ((__pyx_v_self->__pyx_base.curr != 0)) {
    __pyx_t_4 = ((level_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  } else {
    __pyx_t_4 = NULL;
  }
  __pyx_v_datum = __pyx_t_4;

  /* "setools/policyrep/mls.pxi":548
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 */
  while (1) {
    __pyx_t_6 = ((__pyx_v_datum != NULL) != 0);
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_datum->isalias != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_5) break;

    /* "setools/policyrep/mls.pxi":549
 * 
 *         while datum != NULL and datum.isalias:
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
    __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 549, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 549, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":550
 *         while datum != NULL and datum.isalias:
 *             super().__next__()
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         return Sensitivity.factory(self.policy, datum)
 */
    if ((__pyx_v_self->__pyx_base.curr != 0)) {
      __pyx_t_4 = ((level_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
    } else {
      __pyx_t_4 = NULL;
    }
    __pyx_v_datum = __pyx_t_4;
  }

  /* "setools/policyrep/mls.pxi":552
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         return Sensitivity.factory(self.policy, datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_11Sensitivity_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_datum)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":544
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":554
 *         return Sensitivity.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  level_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/mls.pxi":557
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/mls.pxi":558
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/mls.pxi":560
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_1 = ((__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/mls.pxi":561
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/mls.pxi":562
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 */
    while (1) {
      __pyx_t_1 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/mls.pxi":563
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_2 = ((level_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/mls.pxi":564
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      __pyx_t_3 = ((__pyx_v_datum != NULL) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = ((!(__pyx_v_datum->isalias != 0)) != 0);
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/mls.pxi":565
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/mls.pxi":564
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      }

      /* "setools/policyrep/mls.pxi":567
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/mls.pxi":569
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/mls.pxi":571
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":554
 *         return Sensitivity.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

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

/* "setools/policyrep/mls.pxi":573
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  level_datum_t *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/mls.pxi":574
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         cdef sepol.level_datum_t *datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 574, __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_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 574, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":576
 *         super().reset()
 * 
 *         cdef sepol.level_datum_t *datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
 */
  if ((__pyx_v_self->__pyx_base.node != 0)) {
    __pyx_t_4 = ((level_datum_t *)__pyx_v_self->__pyx_base.node->datum);
  } else {
    __pyx_t_4 = NULL;
  }
  __pyx_v_datum = __pyx_t_4;

  /* "setools/policyrep/mls.pxi":579
 * 
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  while (1) {
    __pyx_t_6 = ((__pyx_v_datum != NULL) != 0);
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_datum->isalias != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_5) break;

    /* "setools/policyrep/mls.pxi":580
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 */
    ((struct __pyx_vtabstruct_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

    /* "setools/policyrep/mls.pxi":582
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
    __pyx_t_6 = ((__pyx_v_self->__pyx_base.node == NULL) != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_6 = ((__pyx_v_self->__pyx_base.bucket >= (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_5) {

      /* "setools/policyrep/mls.pxi":583
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *             datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL
 */
      goto __pyx_L4_break;

      /* "setools/policyrep/mls.pxi":582
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
    }

    /* "setools/policyrep/mls.pxi":585
 *                 break
 * 
 *             datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
    if ((__pyx_v_self->__pyx_base.node != 0)) {
      __pyx_t_4 = ((level_datum_t *)__pyx_v_self->__pyx_base.node->datum);
    } else {
      __pyx_t_4 = NULL;
    }
    __pyx_v_datum = __pyx_t_4;
  }
  __pyx_L4_break:;

  /* "setools/policyrep/mls.pxi":573
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_26SensitivityHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SensitivityHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":593
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating level declarations iterators."""
 *         i = LevelDeclHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_24LevelDeclHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":595
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating level declarations iterators."""
 *         i = LevelDeclHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":596
 *         """Factory function for creating level declarations iterators."""
 *         i = LevelDeclHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":597
 *         i = LevelDeclHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/mls.pxi":598
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":599
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":593
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating level declarations iterators."""
 *         i = LevelDeclHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":601
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  level_datum_t *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mls.pxi":602
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 602, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 602, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":603
 *     def __next__(self):
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         while datum != NULL and datum.isalias:
 */
  if ((__pyx_v_self->__pyx_base.curr != 0)) {
    __pyx_t_4 = ((level_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  } else {
    __pyx_t_4 = NULL;
  }
  __pyx_v_datum = __pyx_t_4;

  /* "setools/policyrep/mls.pxi":605
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 */
  while (1) {
    __pyx_t_6 = ((__pyx_v_datum != NULL) != 0);
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_datum->isalias != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_5) break;

    /* "setools/policyrep/mls.pxi":606
 * 
 *         while datum != NULL and datum.isalias:
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 606, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
    __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 606, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 606, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 606, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/mls.pxi":607
 *         while datum != NULL and datum.isalias:
 *             super().__next__()
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL             # <<<<<<<<<<<<<<
 * 
 *         return LevelDecl.factory(self.policy, datum)
 */
    if ((__pyx_v_self->__pyx_base.curr != 0)) {
      __pyx_t_4 = ((level_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
    } else {
      __pyx_t_4 = NULL;
    }
    __pyx_v_datum = __pyx_t_4;
  }

  /* "setools/policyrep/mls.pxi":609
 *             datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 * 
 *         return LevelDecl.factory(self.policy, datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_9LevelDecl_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_datum)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":601
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         datum = <sepol.level_datum_t *> self.curr.datum if self.curr else NULL
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":611
 *         return LevelDecl.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  level_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/mls.pxi":614
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/mls.pxi":615
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/mls.pxi":617
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_1 = ((__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/mls.pxi":618
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/mls.pxi":619
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 */
    while (1) {
      __pyx_t_1 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/mls.pxi":620
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_2 = ((level_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/mls.pxi":621
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      __pyx_t_3 = ((__pyx_v_datum != NULL) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = ((!(__pyx_v_datum->isalias != 0)) != 0);
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/mls.pxi":622
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/mls.pxi":621
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and not datum.isalias:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      }

      /* "setools/policyrep/mls.pxi":624
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/mls.pxi":626
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/mls.pxi":628
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":611
 *         return LevelDecl.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.level_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

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

/* "setools/policyrep/mls.pxi":630
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self) {
  level_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  level_datum_t *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/mls.pxi":631
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         cdef sepol.level_datum_t *datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 631, __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_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 631, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":633
 *         super().reset()
 * 
 *         cdef sepol.level_datum_t *datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
 */
  if ((__pyx_v_self->__pyx_base.node != 0)) {
    __pyx_t_4 = ((level_datum_t *)__pyx_v_self->__pyx_base.node->datum);
  } else {
    __pyx_t_4 = NULL;
  }
  __pyx_v_datum = __pyx_t_4;

  /* "setools/policyrep/mls.pxi":636
 * 
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  while (1) {
    __pyx_t_6 = ((__pyx_v_datum != NULL) != 0);
    if (__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_datum->isalias != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_5) break;

    /* "setools/policyrep/mls.pxi":637
 *         # advance over any attributes or aliases
 *         while datum != NULL and datum.isalias:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 */
    ((struct __pyx_vtabstruct_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

    /* "setools/policyrep/mls.pxi":639
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
    __pyx_t_6 = ((__pyx_v_self->__pyx_base.node == NULL) != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L8_bool_binop_done;
    }
    __pyx_t_6 = ((__pyx_v_self->__pyx_base.bucket >= (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L8_bool_binop_done:;
    if (__pyx_t_5) {

      /* "setools/policyrep/mls.pxi":640
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:
 *                 break             # <<<<<<<<<<<<<<
 * 
 *             datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL
 */
      goto __pyx_L4_break;

      /* "setools/policyrep/mls.pxi":639
 *             self._next_node()
 * 
 *             if self.node == NULL or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
    }

    /* "setools/policyrep/mls.pxi":642
 *                 break
 * 
 *             datum = <sepol.level_datum_t *> self.node.datum if self.node else NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
    if ((__pyx_v_self->__pyx_base.node != 0)) {
      __pyx_t_4 = ((level_datum_t *)__pyx_v_self->__pyx_base.node->datum);
    } else {
      __pyx_t_4 = NULL;
    }
    __pyx_v_datum = __pyx_t_4;
  }
  __pyx_L4_break:;

  /* "setools/policyrep/mls.pxi":630
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_24LevelDeclHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.LevelDeclHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":653
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating CategoryEbitmapIterator."""
 *         i = CategoryEbitmapIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mls.pxi":655
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):
 *         """Factory function for creating CategoryEbitmapIterator."""
 *         i = CategoryEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = symbol
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":656
 *         """Factory function for creating CategoryEbitmapIterator."""
 *         i = CategoryEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = symbol
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mls.pxi":657
 *         i = CategoryEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = symbol             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.bmap = __pyx_v_symbol;

  /* "setools/policyrep/mls.pxi":658
 *         i.policy = policy
 *         i.bmap = symbol
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":659
 *         i.bmap = symbol
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":653
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating CategoryEbitmapIterator."""
 *         i = CategoryEbitmapIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mls.pxi":661
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Category.factory(self.policy, self.policy.category_value_to_datum(self.bit))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mls.pxi":662
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Category.factory(self.policy, self.policy.category_value_to_datum(self.bit))
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 662, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 662, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":663
 *     def __next__(self):
 *         super().__next__()
 *         return Category.factory(self.policy, self.policy.category_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8Category_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mls.pxi":661
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Category.factory(self.policy, self.policy.category_value_to_datum(self.bit))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_23CategoryEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.CategoryEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":38
 * 
 *     @staticmethod
 *     cdef inline MLSRule factory(SELinuxPolicy policy, sepol.range_trans_t *symbol,             # <<<<<<<<<<<<<<
 *                                 sepol.mls_range_t *rng):
 *         """Factory function for creating MLSRule objects."""
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_f_7setools_9policyrep_7MLSRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, range_trans_t *__pyx_v_symbol, mls_range_t *__pyx_v_rng) {
  struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mlsrule.pxi":41
 *                                 sepol.mls_range_t *rng):
 *         """Factory function for creating MLSRule objects."""
 *         cdef MLSRule r = MLSRule.__new__(MLSRule)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_MLSRule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_MLSRule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 41, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":42
 *         """Factory function for creating MLSRule objects."""
 *         cdef MLSRule r = MLSRule.__new__(MLSRule)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = MLSRuletype.range_transition
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mlsrule.pxi":43
 *         cdef MLSRule r = MLSRule.__new__(MLSRule)
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         r.ruletype = MLSRuletype.range_transition
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))
 */
  __pyx_v_r->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/mlsrule.pxi":44
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = MLSRuletype.range_transition             # <<<<<<<<<<<<<<
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MLSRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_range_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":45
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = MLSRuletype.range_transition
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->source_type - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.source);
  __pyx_v_r->__pyx_base.source = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":46
 *         r.ruletype = MLSRuletype.range_transition
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))
 *         r.rng = Range.factory(policy, rng)
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->target_type - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.target);
  __pyx_v_r->__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":47
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))             # <<<<<<<<<<<<<<
 *         r.rng = Range.factory(policy, rng)
 *         r.origin = None
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->target_class - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->tclass));
  __pyx_v_r->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":48
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))
 *         r.rng = Range.factory(policy, rng)             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         return r
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_5Range_factory(__pyx_v_policy, __pyx_v_rng)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->rng);
  __Pyx_DECREF(__pyx_v_r->rng);
  __pyx_v_r->rng = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/mlsrule.pxi":49
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.target_class - 1))
 *         r.rng = Range.factory(policy, rng)
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.origin);
  __pyx_v_r->__pyx_base.origin = Py_None;

  /* "setools/policyrep/mlsrule.pxi":50
 *         r.rng = Range.factory(policy, rng)
 *         r.origin = None
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":38
 * 
 *     @staticmethod
 *     cdef inline MLSRule factory(SELinuxPolicy policy, sepol.range_trans_t *symbol,             # <<<<<<<<<<<<<<
 *                                 sepol.mls_range_t *rng):
 *         """Factory function for creating MLSRule objects."""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":52
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_7MLSRule_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_7MLSRule_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule___hash__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_7MLSRule___hash__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/mlsrule.pxi":53
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(12, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":52
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":55
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_2__lt__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_2__lt__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/mlsrule.pxi":56
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":55
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":59
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default range."""
 *         return self.rng
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_7default_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_7default___get__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_7default___get__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/mlsrule.pxi":61
 *     def default(self):
 *         """The rule's default range."""
 *         return self.rng             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->rng);
  __pyx_r = __pyx_v_self->rng;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":59
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default range."""
 *         return self.rng
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_7MLSRule_6generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/mlsrule.pxi":63
 *         return self.rng
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_7MLSRule_4expand[] = "Expand the rule into an equivalent set of rules without attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_4expand(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_4expand(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(12, 63, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_7MLSRule_6generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_MLSRule_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(12, 63, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.MLSRule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_7MLSRule_6generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *(*__pyx_t_12)(PyObject *);
  uintptr_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L10_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(12, 63, __pyx_L1_error)

  /* "setools/policyrep/mlsrule.pxi":66
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = MLSRule.__new__(MLSRule)
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.origin == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/mlsrule.pxi":67
 *         cdef MLSRule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = MLSRule.__new__(MLSRule)
 *                 r.policy = self.policy
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.source, __pyx_n_s_expand); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.target, __pyx_n_s_expand); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 67, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 67, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 67, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 67, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_6);
      __pyx_t_4 = 0;
      __pyx_t_6 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 67, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __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(12, 67, __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(12, 67, __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(12, 67, __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(12, 67, __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(12, 67, __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(12, 67, __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(12, 67, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(12, 67, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 67, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 67, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 67, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_4), 2) < 0) __PYX_ERR(12, 67, __pyx_L1_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(12, 67, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/mlsrule.pxi":68
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = MLSRule.__new__(MLSRule)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
 */
      __pyx_t_3 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_MLSRule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_MLSRule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 68, __pyx_L1_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_t_3));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "setools/policyrep/mlsrule.pxi":69
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = MLSRule.__new__(MLSRule)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/mlsrule.pxi":70
 *                 r = MLSRule.__new__(MLSRule)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 */
      __pyx_t_13 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.key = __pyx_t_13;

      /* "setools/policyrep/mlsrule.pxi":71
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "setools/policyrep/mlsrule.pxi":72
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/mlsrule.pxi":73
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.rng = self.rng
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/mlsrule.pxi":74
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.rng = self.rng
 *                 r.origin = self
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->tclass);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->tclass);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->tclass));
      __pyx_cur_scope->__pyx_v_r->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/mlsrule.pxi":75
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.rng = self.rng             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->rng;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->rng);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->rng);
      __pyx_cur_scope->__pyx_v_r->rng = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "setools/policyrep/mlsrule.pxi":76
 *                 r.tclass = self.tclass
 *                 r.rng = self.rng
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/mlsrule.pxi":77
 *                 r.rng = self.rng
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_10;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_11;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_11 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(12, 77, __pyx_L1_error)

      /* "setools/policyrep/mlsrule.pxi":67
 *         cdef MLSRule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = MLSRule.__new__(MLSRule)
 *                 r.policy = self.policy
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/mlsrule.pxi":66
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = MLSRule.__new__(MLSRule)
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/mlsrule.pxi":81
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L10_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(12, 81, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/mlsrule.pxi":63
 *         return self.rng
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef MLSRule r
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":83
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_7statement(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_7statement(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/mlsrule.pxi":84
 * 
 *     def statement(self):
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":83
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":34
 * 
 *     cdef:
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         object rng
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_6tclass_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_6tclass___get__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.rng, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(9); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->__pyx_base.origin);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->rng);
  __Pyx_GIVEREF(__pyx_v_self->rng);
  PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->rng);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.source);
  PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.source);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.target);
  PyTuple_SET_ITEM(__pyx_t_3, 7, __pyx_v_self->__pyx_base.target);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tclass));
  PyTuple_SET_ITEM(__pyx_t_3, 8, ((PyObject *)__pyx_v_self->tclass));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.rng, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.rng, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.rng, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->__pyx_base.origin != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->rng != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.source != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.target != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_MLSRule); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_46041621);
    __Pyx_GIVEREF(__pyx_int_46041621);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_46041621);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.rng is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, None), state
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_MLSRule); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_46041621);
    __Pyx_GIVEREF(__pyx_int_46041621);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_46041621);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7MLSRule_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7MLSRule_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_7MLSRule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_MLSRule__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MLSRule, (type(self), 0x2be8a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MLSRule__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.MLSRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":95
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating MLS rule iterators."""
 *         i = MLSRuleIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_15MLSRuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/mlsrule.pxi":97
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating MLS rule iterators."""
 *         i = MLSRuleIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_MLSRuleIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":98
 *         """Factory function for creating MLS rule iterators."""
 *         i = MLSRuleIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/mlsrule.pxi":99
 *         i = MLSRuleIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/mlsrule.pxi":100
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":101
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":95
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating MLS rule iterators."""
 *         i = MLSRuleIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/mlsrule.pxi":103
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15MLSRuleIterator___next__(((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator___next__(struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/mlsrule.pxi":104
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,
 *                                <sepol.mls_range_t *>self.curr.datum)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_MLSRuleIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_MLSRuleIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_MLSRuleIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 104, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 104, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":105
 *     def __next__(self):
 *         super().__next__()
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,             # <<<<<<<<<<<<<<
 *                                <sepol.mls_range_t *>self.curr.datum)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/mlsrule.pxi":106
 *         super().__next__()
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,
 *                                <sepol.mls_range_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7MLSRule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((range_trans_t *)__pyx_v_self->__pyx_base.curr->key), ((mls_range_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/mlsrule.pxi":103
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return MLSRule.factory(self.policy, <sepol.range_trans_t *>self.curr.key,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15MLSRuleIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__46, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15MLSRuleIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_15MLSRuleIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.MLSRuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":36
 * 
 *     @staticmethod
 *     cdef inline Ibendportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ibendportcon objects."""
 *         cdef Ibendportcon i = Ibendportcon.__new__(Ibendportcon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_f_7setools_9policyrep_12Ibendportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_i = 0;
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  uint8_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":38
 *     cdef inline Ibendportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ibendportcon objects."""
 *         cdef Ibendportcon i = Ibendportcon.__new__(Ibendportcon)             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Ibendportcon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Ibendportcon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 38, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":39
 *         """Factory function for creating Ibendportcon objects."""
 *         cdef Ibendportcon i = Ibendportcon.__new__(Ibendportcon)
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.name = intern(symbol.u.ibendport.dev_name)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":40
 *         cdef Ibendportcon i = Ibendportcon.__new__(Ibendportcon)
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.name = intern(symbol.u.ibendport.dev_name)
 *         i.port = symbol.u.ibendport.port
 */
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":41
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.name = intern(symbol.u.ibendport.dev_name)             # <<<<<<<<<<<<<<
 *         i.port = symbol.u.ibendport.port
 *         i.context = Context.factory(policy, symbol.context)
 */
  __pyx_t_1 = __Pyx_PyStr_FromString(__pyx_v_symbol->u.ibendport.dev_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(13, 41, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_i->name);
  __Pyx_DECREF(__pyx_v_i->name);
  __pyx_v_i->name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":42
 *         i.key = <uintptr_t>symbol
 *         i.name = intern(symbol.u.ibendport.dev_name)
 *         i.port = symbol.u.ibendport.port             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 *         return i
 */
  __pyx_t_3 = __pyx_v_symbol->u.ibendport.port;
  __pyx_v_i->port = __pyx_t_3;

  /* "setools/policyrep/netcontext.pxi":43
 *         i.name = intern(symbol.u.ibendport.dev_name)
 *         i.port = symbol.u.ibendport.port
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.context));
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":44
 *         i.port = symbol.u.ibendport.port
 *         i.context = Context.factory(policy, symbol.context)
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":36
 * 
 *     @staticmethod
 *     cdef inline Ibendportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ibendportcon objects."""
 *         cdef Ibendportcon i = Ibendportcon.__new__(Ibendportcon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":46
 *         return i
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("ibendportcon|{0.name}|{0.port}".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_12Ibendportcon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_12Ibendportcon_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon___hash__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_12Ibendportcon___hash__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":47
 * 
 *     def __hash__(self):
 *         return hash("ibendportcon|{0.name}|{0.port}".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_ibendportcon_0_name_0_port, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 47, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(13, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":46
 *         return i
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("ibendportcon|{0.name}|{0.port}".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":49
 *         return hash("ibendportcon|{0.name}|{0.port}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":51
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":49
 *         return hash("ibendportcon|{0.name}|{0.port}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":53
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "ibendportcon {0.name} {0.port} {0.context}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_4statement(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4statement(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":54
 * 
 *     def statement(self):
 *         return "ibendportcon {0.name} {0.port} {0.context}".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_ibendportcon_0_name_0_port_0_con, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":53
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "ibendportcon {0.name} {0.port} {0.context}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":32
 * 
 *     cdef:
 *         readonly str name             # <<<<<<<<<<<<<<
 *         readonly unsigned int port
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_4name_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_4name___get__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4name___get__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

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

/* "setools/policyrep/netcontext.pxi":33
 *     cdef:
 *         readonly str name
 *         readonly unsigned int port             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_4port_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_4port_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_4port___get__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_4port___get__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->port); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 33, __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("setools.policyrep.Ibendportcon.port.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.name, self.policy, self.port)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->port); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.name, self.policy, self.port)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.name, self.policy, self.port)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.name, self.policy, self.port)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->name != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Ibendportcon); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_219516990);
    __Pyx_GIVEREF(__pyx_int_219516990);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_219516990);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, None), state
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Ibendportcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_219516990);
    __Pyx_GIVEREF(__pyx_int_219516990);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_219516990);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Ibendportcon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Ibendportcon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Ibendportcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ibendportcon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibendportcon, (type(self), 0xd15903e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibendportcon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Ibendportcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":66
 * 
 *     @staticmethod
 *     cdef inline Ibpkeycon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ibpkeycon objects."""
 *         cdef:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_f_7setools_9policyrep_9Ibpkeycon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_i = 0;
  char *__pyx_v_prefix;
  uint32_t *__pyx_v_full_address;
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":69
 *         """Factory function for creating Ibpkeycon objects."""
 *         cdef:
 *             Ibpkeycon i = Ibpkeycon.__new__(Ibpkeycon)             # <<<<<<<<<<<<<<
 *             char * prefix
 *             uint32_t *full_address
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Ibpkeycon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Ibpkeycon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 69, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":73
 *             uint32_t *full_address
 * 
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.pkeys = IbpkeyconRange(symbol.u.ibpkey.low_pkey, symbol.u.ibpkey.high_pkey)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":74
 * 
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.pkeys = IbpkeyconRange(symbol.u.ibpkey.low_pkey, symbol.u.ibpkey.high_pkey)
 *         i.context = Context.factory(policy, symbol.context)
 */
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":75
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.pkeys = IbpkeyconRange(symbol.u.ibpkey.low_pkey, symbol.u.ibpkey.high_pkey)             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IbpkeyconRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_uint16_t(__pyx_v_symbol->u.ibpkey.low_pkey); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_uint16_t(__pyx_v_symbol->u.ibpkey.high_pkey); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(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_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 75, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __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_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 75, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->pkeys);
  __Pyx_DECREF(__pyx_v_i->pkeys);
  __pyx_v_i->pkeys = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":76
 *         i.key = <uintptr_t>symbol
 *         i.pkeys = IbpkeyconRange(symbol.u.ibpkey.low_pkey, symbol.u.ibpkey.high_pkey)
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 * 
 *         #
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.context));
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":82
 *         # prefix.  Create a full IPv6 address for inet_ntop use
 *         #
 *         full_address = <uint32_t*>PyMem_Malloc(4 * sizeof(uint32_t))             # <<<<<<<<<<<<<<
 *         if full_address == NULL:
 *             raise MemoryError
 */
  __pyx_v_full_address = ((uint32_t *)PyMem_Malloc((4 * (sizeof(uint32_t)))));

  /* "setools/policyrep/netcontext.pxi":83
 *         #
 *         full_address = <uint32_t*>PyMem_Malloc(4 * sizeof(uint32_t))
 *         if full_address == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  __pyx_t_8 = ((__pyx_v_full_address == NULL) != 0);
  if (unlikely(__pyx_t_8)) {

    /* "setools/policyrep/netcontext.pxi":84
 *         full_address = <uint32_t*>PyMem_Malloc(4 * sizeof(uint32_t))
 *         if full_address == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         memset(full_address, 0, 4 * sizeof(uint32_t))
 */
    PyErr_NoMemory(); __PYX_ERR(13, 84, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":83
 *         #
 *         full_address = <uint32_t*>PyMem_Malloc(4 * sizeof(uint32_t))
 *         if full_address == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/netcontext.pxi":86
 *             raise MemoryError
 * 
 *         memset(full_address, 0, 4 * sizeof(uint32_t))             # <<<<<<<<<<<<<<
 *         memcpy(full_address, &symbol.u.ibpkey.subnet_prefix, sizeof(uint64_t))
 * 
 */
  (void)(memset(__pyx_v_full_address, 0, (4 * (sizeof(uint32_t)))));

  /* "setools/policyrep/netcontext.pxi":87
 * 
 *         memset(full_address, 0, 4 * sizeof(uint32_t))
 *         memcpy(full_address, &symbol.u.ibpkey.subnet_prefix, sizeof(uint64_t))             # <<<<<<<<<<<<<<
 * 
 *         #
 */
  (void)(memcpy(__pyx_v_full_address, (&__pyx_v_symbol->u.ibpkey.subnet_prefix), (sizeof(uint64_t))));

  /* "setools/policyrep/netcontext.pxi":92
 *         # Create IPv6Address object for the subnet prefix
 *         #
 *         prefix = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))             # <<<<<<<<<<<<<<
 *         if prefix == NULL:
 *             PyMem_Free(full_address)
 */
  __pyx_v_prefix = ((char *)PyMem_Malloc((INET6_ADDRSTRLEN * (sizeof(char)))));

  /* "setools/policyrep/netcontext.pxi":93
 *         #
 *         prefix = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if prefix == NULL:             # <<<<<<<<<<<<<<
 *             PyMem_Free(full_address)
 *             raise MemoryError
 */
  __pyx_t_8 = ((__pyx_v_prefix == NULL) != 0);
  if (unlikely(__pyx_t_8)) {

    /* "setools/policyrep/netcontext.pxi":94
 *         prefix = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if prefix == NULL:
 *             PyMem_Free(full_address)             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
    PyMem_Free(__pyx_v_full_address);

    /* "setools/policyrep/netcontext.pxi":95
 *         if prefix == NULL:
 *             PyMem_Free(full_address)
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         inet_ntop(AF_INET6, full_address, prefix, INET6_ADDRSTRLEN)
 */
    PyErr_NoMemory(); __PYX_ERR(13, 95, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":93
 *         #
 *         prefix = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if prefix == NULL:             # <<<<<<<<<<<<<<
 *             PyMem_Free(full_address)
 *             raise MemoryError
 */
  }

  /* "setools/policyrep/netcontext.pxi":97
 *             raise MemoryError
 * 
 *         inet_ntop(AF_INET6, full_address, prefix, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 *         i.subnet_prefix = ipaddress.IPv6Address(prefix)
 * 
 */
  (void)(inet_ntop(AF_INET6, __pyx_v_full_address, __pyx_v_prefix, INET6_ADDRSTRLEN));

  /* "setools/policyrep/netcontext.pxi":98
 * 
 *         inet_ntop(AF_INET6, full_address, prefix, INET6_ADDRSTRLEN)
 *         i.subnet_prefix = ipaddress.IPv6Address(prefix)             # <<<<<<<<<<<<<<
 * 
 *         PyMem_Free(full_address)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ipaddress); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IPv6Address); if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyStr_FromString(__pyx_v_prefix); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->subnet_prefix);
  __Pyx_DECREF(__pyx_v_i->subnet_prefix);
  __pyx_v_i->subnet_prefix = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":100
 *         i.subnet_prefix = ipaddress.IPv6Address(prefix)
 * 
 *         PyMem_Free(full_address)             # <<<<<<<<<<<<<<
 *         PyMem_Free(prefix)
 *         return i
 */
  PyMem_Free(__pyx_v_full_address);

  /* "setools/policyrep/netcontext.pxi":101
 * 
 *         PyMem_Free(full_address)
 *         PyMem_Free(prefix)             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  PyMem_Free(__pyx_v_prefix);

  /* "setools/policyrep/netcontext.pxi":102
 *         PyMem_Free(full_address)
 *         PyMem_Free(prefix)
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":66
 * 
 *     @staticmethod
 *     cdef inline Ibpkeycon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ibpkeycon objects."""
 *         cdef:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":104
 *         return i
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("ibpkeycon|{0.subnet_prefix}|{0.pkeys.low}|{0.pkeys.high}".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_9Ibpkeycon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_9Ibpkeycon_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon___hash__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_9Ibpkeycon___hash__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":105
 * 
 *     def __hash__(self):
 *         return hash("ibpkeycon|{0.subnet_prefix}|{0.pkeys.low}|{0.pkeys.high}".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(13, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":104
 *         return i
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("ibpkeycon|{0.subnet_prefix}|{0.pkeys.low}|{0.pkeys.high}".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":107
 *         return hash("ibpkeycon|{0.subnet_prefix}|{0.pkeys.low}|{0.pkeys.high}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_2__lt__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":109
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":107
 *         return hash("ibpkeycon|{0.subnet_prefix}|{0.pkeys.low}|{0.pkeys.high}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":111
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if self.pkeys.low == self.pkeys.high:
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x} {0.context}".format(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_4statement(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_4statement(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":112
 * 
 *     def statement(self):
 *         if self.pkeys.low == self.pkeys.high:             # <<<<<<<<<<<<<<
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x} {0.context}".format(self)
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->pkeys, __pyx_n_s_low); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->pkeys, __pyx_n_s_high); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(13, 112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {

    /* "setools/policyrep/netcontext.pxi":113
 *     def statement(self):
 *         if self.pkeys.low == self.pkeys.high:
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x} {0.context}".format(self)             # <<<<<<<<<<<<<<
 *         else:
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x}-{0.pkeys.high:#x} {0.context}". \
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/netcontext.pxi":112
 * 
 *     def statement(self):
 *         if self.pkeys.low == self.pkeys.high:             # <<<<<<<<<<<<<<
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x} {0.context}".format(self)
 *         else:
 */
  }

  /* "setools/policyrep/netcontext.pxi":115
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x} {0.context}".format(self)
 *         else:
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x}-{0.pkeys.high:#x} {0.context}". \             # <<<<<<<<<<<<<<
 *                     format(self)
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);

    /* "setools/policyrep/netcontext.pxi":116
 *         else:
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x}-{0.pkeys.high:#x} {0.context}". \
 *                     format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey_3, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/netcontext.pxi":111
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if self.pkeys.low == self.pkeys.high:
 *             return "ibpkeycon {0.subnet_prefix} {0.pkeys.low:#x} {0.context}".format(self)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":62
 * 
 *     cdef:
 *         readonly object subnet_prefix             # <<<<<<<<<<<<<<
 *         readonly object pkeys
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_13subnet_prefix_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_13subnet_prefix_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_13subnet_prefix___get__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_13subnet_prefix___get__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->subnet_prefix);
  __pyx_r = __pyx_v_self->subnet_prefix;
  goto __pyx_L0;

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

/* "setools/policyrep/netcontext.pxi":63
 *     cdef:
 *         readonly object subnet_prefix
 *         readonly object pkeys             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_5pkeys_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_5pkeys_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_5pkeys___get__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_5pkeys___get__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->pkeys);
  __pyx_r = __pyx_v_self->pkeys;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.pkeys, self.policy, self.subnet_prefix)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->pkeys);
  __Pyx_GIVEREF(__pyx_v_self->pkeys);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->pkeys);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->subnet_prefix);
  __Pyx_GIVEREF(__pyx_v_self->subnet_prefix);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->subnet_prefix);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.pkeys, self.policy, self.subnet_prefix)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.pkeys, self.policy, self.subnet_prefix)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.pkeys, self.policy, self.subnet_prefix)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->pkeys != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->subnet_prefix != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Ibpkeycon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_48073796);
    __Pyx_GIVEREF(__pyx_int_48073796);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_48073796);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.pkeys is not None or self.policy is not None or self.subnet_prefix is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, None), state
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Ibpkeycon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_48073796);
    __Pyx_GIVEREF(__pyx_int_48073796);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_48073796);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ibpkeycon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ibpkeycon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ibpkeycon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ibpkeycon, (type(self), 0x2dd8c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ibpkeycon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Ibpkeycon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":128
 * 
 *     @staticmethod
 *     cdef inline Netifcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Netifcon objects."""
 *         cdef Netifcon n = Netifcon.__new__(Netifcon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_f_7setools_9policyrep_8Netifcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_n = 0;
  struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":130
 *     cdef inline Netifcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Netifcon objects."""
 *         cdef Netifcon n = Netifcon.__new__(Netifcon)             # <<<<<<<<<<<<<<
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Netifcon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Netifcon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 130, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_n = ((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":131
 *         """Factory function for creating Netifcon objects."""
 *         cdef Netifcon n = Netifcon.__new__(Netifcon)
 *         n.policy = policy             # <<<<<<<<<<<<<<
 *         n.key = <uintptr_t>symbol
 *         n.netif = intern(symbol.u.name)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_n->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_n->__pyx_base.__pyx_base.policy));
  __pyx_v_n->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":132
 *         cdef Netifcon n = Netifcon.__new__(Netifcon)
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         n.netif = intern(symbol.u.name)
 *         n.context = Context.factory(policy, symbol.context)
 */
  __pyx_v_n->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":133
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
 *         n.netif = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 *         n.context = Context.factory(policy, symbol.context)
 *         n.packet = Context.factory(policy, &symbol.context[1])
 */
  __pyx_t_1 = __Pyx_PyStr_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(13, 133, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_n->netif);
  __Pyx_DECREF(__pyx_v_n->netif);
  __pyx_v_n->netif = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":134
 *         n.key = <uintptr_t>symbol
 *         n.netif = intern(symbol.u.name)
 *         n.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         n.packet = Context.factory(policy, &symbol.context[1])
 *         return n
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_n->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_n->__pyx_base.context));
  __pyx_v_n->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":135
 *         n.netif = intern(symbol.u.name)
 *         n.context = Context.factory(policy, symbol.context)
 *         n.packet = Context.factory(policy, &symbol.context[1])             # <<<<<<<<<<<<<<
 *         return n
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, (&(__pyx_v_symbol->context[1])))); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_n->packet);
  __Pyx_DECREF(((PyObject *)__pyx_v_n->packet));
  __pyx_v_n->packet = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":136
 *         n.context = Context.factory(policy, symbol.context)
 *         n.packet = Context.factory(policy, &symbol.context[1])
 *         return n             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_n));
  __pyx_r = __pyx_v_n;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":128
 * 
 *     @staticmethod
 *     cdef inline Netifcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Netifcon objects."""
 *         cdef Netifcon n = Netifcon.__new__(Netifcon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_n);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":138
 *         return n
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("netifcon|{0.netif}".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_8Netifcon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_8Netifcon_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon___hash__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_8Netifcon___hash__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":139
 * 
 *     def __hash__(self):
 *         return hash("netifcon|{0.netif}".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_netifcon_0_netif, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(13, 139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":138
 *         return n
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("netifcon|{0.netif}".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":141
 *         return hash("netifcon|{0.netif}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":143
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 143, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":141
 *         return hash("netifcon|{0.netif}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":145
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "netifcon {0.netif} {0.context} {0.packet}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_4statement(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_4statement(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":146
 * 
 *     def statement(self):
 *         return "netifcon {0.netif} {0.context} {0.packet}".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_netifcon_0_netif_0_context_0_pac, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":145
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "netifcon {0.netif} {0.context} {0.packet}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":124
 * 
 *     cdef:
 *         readonly str netif             # <<<<<<<<<<<<<<
 *         readonly Context packet
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_5netif_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_5netif_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_5netif___get__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_5netif___get__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->netif);
  __pyx_r = __pyx_v_self->netif;
  goto __pyx_L0;

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

/* "setools/policyrep/netcontext.pxi":125
 *     cdef:
 *         readonly str netif
 *         readonly Context packet             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_6packet_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_6packet_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_6packet___get__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_6packet___get__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->packet));
  __pyx_r = ((PyObject *)__pyx_v_self->packet);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.netif, self.packet, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->netif);
  __Pyx_GIVEREF(__pyx_v_self->netif);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->netif);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->packet));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->packet));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->packet));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.netif, self.packet, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.netif, self.packet, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.netif, self.packet, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->netif != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->packet) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Netifcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_178203351);
    __Pyx_GIVEREF(__pyx_int_178203351);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_178203351);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.netif is not None or self.packet is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, None), state
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Netifcon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_178203351);
    __Pyx_GIVEREF(__pyx_int_178203351);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_178203351);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Netifcon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Netifcon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Netifcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Netifcon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Netifcon, (type(self), 0xa9f2ad7, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Netifcon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Netifcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":166
 * 
 *     @staticmethod
 *     cdef inline Nodecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, ip_version):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Nodecon objects."""
 *         cdef:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_f_7setools_9policyrep_7Nodecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol, PyObject *__pyx_v_ip_version) {
  char *__pyx_v_addr;
  char *__pyx_v_mask;
  int __pyx_v_CIDR;
  int __pyx_v_i;
  uint32_t __pyx_v_block;
  struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_n = 0;
  PyObject *__pyx_v_net_with_mask = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_ex = NULL;
  PyObject *__pyx_v_log = NULL;
  struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  uint32_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  PyObject *__pyx_t_25 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":171
 *             char * addr
 *             char * mask
 *             int CIDR = 0             # <<<<<<<<<<<<<<
 *             int i
 *             uint32_t block
 */
  __pyx_v_CIDR = 0;

  /* "setools/policyrep/netcontext.pxi":174
 *             int i
 *             uint32_t block
 *             Nodecon n = Nodecon.__new__(Nodecon)             # <<<<<<<<<<<<<<
 * 
 *         n.policy = policy
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Nodecon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Nodecon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 174, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_n = ((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":176
 *             Nodecon n = Nodecon.__new__(Nodecon)
 * 
 *         n.policy = policy             # <<<<<<<<<<<<<<
 *         n.key = <uintptr_t>symbol
 *         n.ip_version = ip_version
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_n->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_n->__pyx_base.__pyx_base.policy));
  __pyx_v_n->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":177
 * 
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         n.ip_version = ip_version
 *         n.context = Context.factory(policy, symbol.context)
 */
  __pyx_v_n->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":178
 *         n.policy = policy
 *         n.key = <uintptr_t>symbol
 *         n.ip_version = ip_version             # <<<<<<<<<<<<<<
 *         n.context = Context.factory(policy, symbol.context)
 * 
 */
  __Pyx_INCREF(__pyx_v_ip_version);
  __Pyx_GIVEREF(__pyx_v_ip_version);
  __Pyx_GOTREF(__pyx_v_n->ip_version);
  __Pyx_DECREF(__pyx_v_n->ip_version);
  __pyx_v_n->ip_version = __pyx_v_ip_version;

  /* "setools/policyrep/netcontext.pxi":179
 *         n.key = <uintptr_t>symbol
 *         n.ip_version = ip_version
 *         n.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 * 
 *         #
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_n->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_n->__pyx_base.context));
  __pyx_v_n->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":184
 *         # Retrieve address and netmask
 *         #
 *         addr = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))             # <<<<<<<<<<<<<<
 *         if addr == NULL:
 *             raise MemoryError
 */
  __pyx_v_addr = ((char *)PyMem_Malloc((INET6_ADDRSTRLEN * (sizeof(char)))));

  /* "setools/policyrep/netcontext.pxi":185
 *         #
 *         addr = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if addr == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  __pyx_t_2 = ((__pyx_v_addr == NULL) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/netcontext.pxi":186
 *         addr = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if addr == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 */
    PyErr_NoMemory(); __PYX_ERR(13, 186, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":185
 *         #
 *         addr = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if addr == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/netcontext.pxi":188
 *             raise MemoryError
 * 
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))             # <<<<<<<<<<<<<<
 *         if mask == NULL:
 *             PyMem_Free(addr)
 */
  __pyx_v_mask = ((char *)PyMem_Malloc((INET6_ADDRSTRLEN * (sizeof(char)))));

  /* "setools/policyrep/netcontext.pxi":189
 * 
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if mask == NULL:             # <<<<<<<<<<<<<<
 *             PyMem_Free(addr)
 *             raise MemoryError
 */
  __pyx_t_2 = ((__pyx_v_mask == NULL) != 0);
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/netcontext.pxi":190
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if mask == NULL:
 *             PyMem_Free(addr)             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
    PyMem_Free(__pyx_v_addr);

    /* "setools/policyrep/netcontext.pxi":191
 *         if mask == NULL:
 *             PyMem_Free(addr)
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         #
 */
    PyErr_NoMemory(); __PYX_ERR(13, 191, __pyx_L1_error)

    /* "setools/policyrep/netcontext.pxi":189
 * 
 *         mask = <char *>PyMem_Malloc(INET6_ADDRSTRLEN * sizeof(char))
 *         if mask == NULL:             # <<<<<<<<<<<<<<
 *             PyMem_Free(addr)
 *             raise MemoryError
 */
  }

  /* "setools/policyrep/netcontext.pxi":202
 *         # If the netmask happens to be invalid, this will
 *         # not detect it.
 *         if ip_version == NodeconIPVersion.ipv4:             # <<<<<<<<<<<<<<
 *             # convert network order to string
 *             inet_ntop(AF_INET, &symbol.u.node.addr, addr, INET6_ADDRSTRLEN)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_NodeconIPVersion); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ipv4); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_ip_version, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(13, 202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "setools/policyrep/netcontext.pxi":204
 *         if ip_version == NodeconIPVersion.ipv4:
 *             # convert network order to string
 *             inet_ntop(AF_INET, &symbol.u.node.addr, addr, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 *             inet_ntop(AF_INET, &symbol.u.node.mask, mask, INET6_ADDRSTRLEN)
 * 
 */
    (void)(inet_ntop(AF_INET, (&__pyx_v_symbol->u.node.addr), __pyx_v_addr, INET6_ADDRSTRLEN));

    /* "setools/policyrep/netcontext.pxi":205
 *             # convert network order to string
 *             inet_ntop(AF_INET, &symbol.u.node.addr, addr, INET6_ADDRSTRLEN)
 *             inet_ntop(AF_INET, &symbol.u.node.mask, mask, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 * 
 *             # count bits
 */
    (void)(inet_ntop(AF_INET, (&__pyx_v_symbol->u.node.mask), __pyx_v_mask, INET6_ADDRSTRLEN));

    /* "setools/policyrep/netcontext.pxi":208
 * 
 *             # count bits
 *             block = symbol.u.node.mask             # <<<<<<<<<<<<<<
 *             while block:
 *                 block &= block - 1
 */
    __pyx_t_4 = __pyx_v_symbol->u.node.mask;
    __pyx_v_block = __pyx_t_4;

    /* "setools/policyrep/netcontext.pxi":209
 *             # count bits
 *             block = symbol.u.node.mask
 *             while block:             # <<<<<<<<<<<<<<
 *                 block &= block - 1
 *                 CIDR += 1
 */
    while (1) {
      __pyx_t_2 = (__pyx_v_block != 0);
      if (!__pyx_t_2) break;

      /* "setools/policyrep/netcontext.pxi":210
 *             block = symbol.u.node.mask
 *             while block:
 *                 block &= block - 1             # <<<<<<<<<<<<<<
 *                 CIDR += 1
 * 
 */
      __pyx_v_block = (__pyx_v_block & (__pyx_v_block - 1));

      /* "setools/policyrep/netcontext.pxi":211
 *             while block:
 *                 block &= block - 1
 *                 CIDR += 1             # <<<<<<<<<<<<<<
 * 
 *         else:  # NodeconIPVersion.ipv6
 */
      __pyx_v_CIDR = (__pyx_v_CIDR + 1);
    }

    /* "setools/policyrep/netcontext.pxi":202
 *         # If the netmask happens to be invalid, this will
 *         # not detect it.
 *         if ip_version == NodeconIPVersion.ipv4:             # <<<<<<<<<<<<<<
 *             # convert network order to string
 *             inet_ntop(AF_INET, &symbol.u.node.addr, addr, INET6_ADDRSTRLEN)
 */
    goto __pyx_L5;
  }

  /* "setools/policyrep/netcontext.pxi":215
 *         else:  # NodeconIPVersion.ipv6
 *             # convert network order to string
 *             inet_ntop(AF_INET6, &symbol.u.node6.addr, addr, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 *             inet_ntop(AF_INET6, &symbol.u.node6.mask, mask, INET6_ADDRSTRLEN)
 * 
 */
  /*else*/ {
    (void)(inet_ntop(AF_INET6, (&__pyx_v_symbol->u.node6.addr), __pyx_v_addr, INET6_ADDRSTRLEN));

    /* "setools/policyrep/netcontext.pxi":216
 *             # convert network order to string
 *             inet_ntop(AF_INET6, &symbol.u.node6.addr, addr, INET6_ADDRSTRLEN)
 *             inet_ntop(AF_INET6, &symbol.u.node6.mask, mask, INET6_ADDRSTRLEN)             # <<<<<<<<<<<<<<
 * 
 *             # count bits
 */
    (void)(inet_ntop(AF_INET6, (&__pyx_v_symbol->u.node6.mask), __pyx_v_mask, INET6_ADDRSTRLEN));

    /* "setools/policyrep/netcontext.pxi":219
 * 
 *             # count bits
 *             for i in range(4):             # <<<<<<<<<<<<<<
 *                 block = symbol.u.node6.mask[i]
 *                 while block:
 */
    for (__pyx_t_5 = 0; __pyx_t_5 < 4; __pyx_t_5+=1) {
      __pyx_v_i = __pyx_t_5;

      /* "setools/policyrep/netcontext.pxi":220
 *             # count bits
 *             for i in range(4):
 *                 block = symbol.u.node6.mask[i]             # <<<<<<<<<<<<<<
 *                 while block:
 *                     block &= block - 1
 */
      __pyx_v_block = (__pyx_v_symbol->u.node6.mask[__pyx_v_i]);

      /* "setools/policyrep/netcontext.pxi":221
 *             for i in range(4):
 *                 block = symbol.u.node6.mask[i]
 *                 while block:             # <<<<<<<<<<<<<<
 *                     block &= block - 1
 *                     CIDR += 1
 */
      while (1) {
        __pyx_t_2 = (__pyx_v_block != 0);
        if (!__pyx_t_2) break;

        /* "setools/policyrep/netcontext.pxi":222
 *                 block = symbol.u.node6.mask[i]
 *                 while block:
 *                     block &= block - 1             # <<<<<<<<<<<<<<
 *                     CIDR += 1
 * 
 */
        __pyx_v_block = (__pyx_v_block & (__pyx_v_block - 1));

        /* "setools/policyrep/netcontext.pxi":223
 *                 while block:
 *                     block &= block - 1
 *                     CIDR += 1             # <<<<<<<<<<<<<<
 * 
 *         net_with_mask = "{0}/{1}".format(addr, CIDR)
 */
        __pyx_v_CIDR = (__pyx_v_CIDR + 1);
      }
    }
  }
  __pyx_L5:;

  /* "setools/policyrep/netcontext.pxi":225
 *                     CIDR += 1
 * 
 *         net_with_mask = "{0}/{1}".format(addr, CIDR)             # <<<<<<<<<<<<<<
 *         try:
 *             # checkpolicy does not verify that no host bits are set,
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_PyStr_FromString(__pyx_v_addr); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_CIDR); if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_5 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 225, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 225, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else
  #endif
  {
    __pyx_t_9 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(13, 225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__pyx_t_8) {
      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_5, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_5, __pyx_t_7);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_net_with_mask = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":226
 * 
 *         net_with_mask = "{0}/{1}".format(addr, CIDR)
 *         try:             # <<<<<<<<<<<<<<
 *             # checkpolicy does not verify that no host bits are set,
 *             # so strict will raise an exception if host bits are set.
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
    __Pyx_XGOTREF(__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_11);
    __Pyx_XGOTREF(__pyx_t_12);
    /*try:*/ {

      /* "setools/policyrep/netcontext.pxi":229
 *             # checkpolicy does not verify that no host bits are set,
 *             # so strict will raise an exception if host bits are set.
 *             n.network = ipaddress.ip_network(net_with_mask)             # <<<<<<<<<<<<<<
 *         except ValueError as ex:
 *             log = logging.getLogger(__name__)
 */
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ipaddress); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 229, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ip_network); if (unlikely(!__pyx_t_9)) __PYX_ERR(13, 229, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_3, __pyx_v_net_with_mask) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_net_with_mask);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 229, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_v_n->network);
      __Pyx_DECREF(__pyx_v_n->network);
      __pyx_v_n->network = __pyx_t_1;
      __pyx_t_1 = 0;

      /* "setools/policyrep/netcontext.pxi":226
 * 
 *         net_with_mask = "{0}/{1}".format(addr, CIDR)
 *         try:             # <<<<<<<<<<<<<<
 *             # checkpolicy does not verify that no host bits are set,
 *             # so strict will raise an exception if host bits are set.
 */
    }
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L17_try_end;
    __pyx_L12_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

    /* "setools/policyrep/netcontext.pxi":230
 *             # so strict will raise an exception if host bits are set.
 *             n.network = ipaddress.ip_network(net_with_mask)
 *         except ValueError as ex:             # <<<<<<<<<<<<<<
 *             log = logging.getLogger(__name__)
 *             log.warning("Nodecon with network {} {} has host bits set. Analyses may have "
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError);
    if (__pyx_t_5) {
      __Pyx_AddTraceback("setools.policyrep.Nodecon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_9, &__pyx_t_3) < 0) __PYX_ERR(13, 230, __pyx_L14_except_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __pyx_v_ex = __pyx_t_9;
      /*try:*/ {

        /* "setools/policyrep/netcontext.pxi":231
 *             n.network = ipaddress.ip_network(net_with_mask)
 *         except ValueError as ex:
 *             log = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 *             log.warning("Nodecon with network {} {} has host bits set. Analyses may have "
 *                         "unexpected results.".format(addr, mask))
 */
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_logging); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 231, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 231, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 231, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_13 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
          }
        }
        __pyx_t_7 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_13, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 231, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_log = __pyx_t_7;
        __pyx_t_7 = 0;

        /* "setools/policyrep/netcontext.pxi":232
 *         except ValueError as ex:
 *             log = logging.getLogger(__name__)
 *             log.warning("Nodecon with network {} {} has host bits set. Analyses may have "             # <<<<<<<<<<<<<<
 *                         "unexpected results.".format(addr, mask))
 *             n.network = ipaddress.ip_network(net_with_mask, strict=False)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_log, __pyx_n_s_warning); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 232, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_8);

        /* "setools/policyrep/netcontext.pxi":233
 *             log = logging.getLogger(__name__)
 *             log.warning("Nodecon with network {} {} has host bits set. Analyses may have "
 *                         "unexpected results.".format(addr, mask))             # <<<<<<<<<<<<<<
 *             n.network = ipaddress.ip_network(net_with_mask, strict=False)
 * 
 */
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Nodecon_with_network_has_host_bi, __pyx_n_s_format_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(13, 233, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_14 = __Pyx_PyStr_FromString(__pyx_v_addr); if (unlikely(!__pyx_t_14)) __PYX_ERR(13, 233, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15 = __Pyx_PyStr_FromString(__pyx_v_mask); if (unlikely(!__pyx_t_15)) __PYX_ERR(13, 233, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_16 = NULL;
        __pyx_t_5 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_13);
          if (likely(__pyx_t_16)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
            __Pyx_INCREF(__pyx_t_16);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_13, function);
            __pyx_t_5 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_13)) {
          PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_t_14, __pyx_t_15};
          __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 233, __pyx_L23_error)
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
          PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_t_14, __pyx_t_15};
          __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 233, __pyx_L23_error)
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        } else
        #endif
        {
          __pyx_t_17 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(13, 233, __pyx_L23_error)
          __Pyx_GOTREF(__pyx_t_17);
          if (__pyx_t_16) {
            __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_16); __pyx_t_16 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_14);
          PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_5, __pyx_t_14);
          __Pyx_GIVEREF(__pyx_t_15);
          PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_5, __pyx_t_15);
          __pyx_t_14 = 0;
          __pyx_t_15 = 0;
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_17, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 233, __pyx_L23_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
          }
        }
        __pyx_t_7 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_13, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 232, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

        /* "setools/policyrep/netcontext.pxi":234
 *             log.warning("Nodecon with network {} {} has host bits set. Analyses may have "
 *                         "unexpected results.".format(addr, mask))
 *             n.network = ipaddress.ip_network(net_with_mask, strict=False)             # <<<<<<<<<<<<<<
 * 
 *         PyMem_Free(addr)
 */
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_ipaddress); if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 234, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_ip_network); if (unlikely(!__pyx_t_8)) __PYX_ERR(13, 234, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 234, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_v_net_with_mask);
        __Pyx_GIVEREF(__pyx_v_net_with_mask);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_net_with_mask);
        __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 234, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_strict, Py_False) < 0) __PYX_ERR(13, 234, __pyx_L23_error)
        __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(13, 234, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GIVEREF(__pyx_t_13);
        __Pyx_GOTREF(__pyx_v_n->network);
        __Pyx_DECREF(__pyx_v_n->network);
        __pyx_v_n->network = __pyx_t_13;
        __pyx_t_13 = 0;
      }

      /* "setools/policyrep/netcontext.pxi":230
 *             # so strict will raise an exception if host bits are set.
 *             n.network = ipaddress.ip_network(net_with_mask)
 *         except ValueError as ex:             # <<<<<<<<<<<<<<
 *             log = logging.getLogger(__name__)
 *             log.warning("Nodecon with network {} {} has host bits set. Analyses may have "
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_ex);
          __pyx_v_ex = NULL;
          goto __pyx_L24;
        }
        __pyx_L23_error:;
        /*exception exit:*/{
          __Pyx_PyThreadState_declare
          __Pyx_PyThreadState_assign
          __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_20);
          __Pyx_XGOTREF(__pyx_t_21);
          __Pyx_XGOTREF(__pyx_t_22);
          __Pyx_XGOTREF(__pyx_t_23);
          __Pyx_XGOTREF(__pyx_t_24);
          __Pyx_XGOTREF(__pyx_t_25);
          __pyx_t_5 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_ex);
            __pyx_v_ex = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_23);
            __Pyx_XGIVEREF(__pyx_t_24);
            __Pyx_XGIVEREF(__pyx_t_25);
            __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
          }
          __Pyx_XGIVEREF(__pyx_t_20);
          __Pyx_XGIVEREF(__pyx_t_21);
          __Pyx_XGIVEREF(__pyx_t_22);
          __Pyx_ErrRestore(__pyx_t_20, __pyx_t_21, __pyx_t_22);
          __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
          __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
          goto __pyx_L14_except_error;
        }
        __pyx_L24:;
      }
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L13_exception_handled;
    }
    goto __pyx_L14_except_error;
    __pyx_L14_except_error:;

    /* "setools/policyrep/netcontext.pxi":226
 * 
 *         net_with_mask = "{0}/{1}".format(addr, CIDR)
 *         try:             # <<<<<<<<<<<<<<
 *             # checkpolicy does not verify that no host bits are set,
 *             # so strict will raise an exception if host bits are set.
 */
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_XGIVEREF(__pyx_t_11);
    __Pyx_XGIVEREF(__pyx_t_12);
    __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
    goto __pyx_L1_error;
    __pyx_L13_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_XGIVEREF(__pyx_t_11);
    __Pyx_XGIVEREF(__pyx_t_12);
    __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
    __pyx_L17_try_end:;
  }

  /* "setools/policyrep/netcontext.pxi":236
 *             n.network = ipaddress.ip_network(net_with_mask, strict=False)
 * 
 *         PyMem_Free(addr)             # <<<<<<<<<<<<<<
 *         PyMem_Free(mask)
 * 
 */
  PyMem_Free(__pyx_v_addr);

  /* "setools/policyrep/netcontext.pxi":237
 * 
 *         PyMem_Free(addr)
 *         PyMem_Free(mask)             # <<<<<<<<<<<<<<
 * 
 *         return n
 */
  PyMem_Free(__pyx_v_mask);

  /* "setools/policyrep/netcontext.pxi":239
 *         PyMem_Free(mask)
 * 
 *         return n             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_n));
  __pyx_r = __pyx_v_n;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":166
 * 
 *     @staticmethod
 *     cdef inline Nodecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol, ip_version):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Nodecon objects."""
 *         cdef:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_n);
  __Pyx_XDECREF(__pyx_v_net_with_mask);
  __Pyx_XDECREF(__pyx_v_ex);
  __Pyx_XDECREF(__pyx_v_log);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":241
 *         return n
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("nodecon|{}".format(self.network.with_netmask))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_7Nodecon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_7Nodecon_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon___hash__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_7Nodecon___hash__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_hash_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":242
 * 
 *     def __hash__(self):
 *         return hash("nodecon|{}".format(self.network.with_netmask))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_nodecon, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->network, __pyx_n_s_with_netmask); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_hash_t)-1))) __PYX_ERR(13, 242, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":241
 *         return n
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("nodecon|{}".format(self.network.with_netmask))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":244
 *         return hash("nodecon|{}".format(self.network.with_netmask))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_2__lt__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":246
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":244
 *         return hash("nodecon|{}".format(self.network.with_netmask))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":248
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "nodecon {1} {0.context}".format(self, self.network.with_netmask.replace("/", " "))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_4statement(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_4statement(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":249
 * 
 *     def statement(self):
 *         return "nodecon {1} {0.context}".format(self, self.network.with_netmask.replace("/", " "))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_nodecon_1_0_context, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->network, __pyx_n_s_with_netmask); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_replace); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__49, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  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 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_self), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 249, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __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, ((PyObject *)__pyx_v_self), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 249, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(13, 249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":248
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "nodecon {1} {0.context}".format(self, self.network.with_netmask.replace("/", " "))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":162
 * 
 *     cdef:
 *         readonly object ip_version             # <<<<<<<<<<<<<<
 *         readonly object network
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_10ip_version_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_10ip_version_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_10ip_version___get__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_10ip_version___get__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ip_version);
  __pyx_r = __pyx_v_self->ip_version;
  goto __pyx_L0;

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

/* "setools/policyrep/netcontext.pxi":163
 *     cdef:
 *         readonly object ip_version
 *         readonly object network             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_7network_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_7network_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_7network___get__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_7network___get__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->network);
  __pyx_r = __pyx_v_self->network;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.ip_version, self.key, self.network, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_INCREF(__pyx_v_self->ip_version);
  __Pyx_GIVEREF(__pyx_v_self->ip_version);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->ip_version);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->network);
  __Pyx_GIVEREF(__pyx_v_self->network);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->network);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.ip_version, self.key, self.network, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.ip_version, self.key, self.network, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.ip_version, self.key, self.network, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->ip_version != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->network != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Nodecon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_223953213);
    __Pyx_GIVEREF(__pyx_int_223953213);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_223953213);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.ip_version is not None or self.network is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, None), state
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Nodecon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_223953213);
    __Pyx_GIVEREF(__pyx_int_223953213);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_223953213);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Nodecon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Nodecon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Nodecon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Nodecon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nodecon, (type(self), 0xd59413d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nodecon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Nodecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":271
 * 
 *     @staticmethod
 *     cdef inline Portcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Portcon objects."""
 *         cdef Portcon p = Portcon.__new__(Portcon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_f_7setools_9policyrep_7Portcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_p = 0;
  struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":273
 *     cdef inline Portcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Portcon objects."""
 *         cdef Portcon p = Portcon.__new__(Portcon)             # <<<<<<<<<<<<<<
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Portcon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Portcon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 273, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_p = ((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":274
 *         """Factory function for creating Portcon objects."""
 *         cdef Portcon p = Portcon.__new__(Portcon)
 *         p.policy = policy             # <<<<<<<<<<<<<<
 *         p.key = <uintptr_t>symbol
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_p->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy));
  __pyx_v_p->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":275
 *         cdef Portcon p = Portcon.__new__(Portcon)
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)
 */
  __pyx_v_p->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/netcontext.pxi":276
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)             # <<<<<<<<<<<<<<
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)
 *         p.context = Context.factory(policy, symbol.context)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PortconRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_uint16_t(__pyx_v_symbol->u.port.low_port); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_uint16_t(__pyx_v_symbol->u.port.high_port); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(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_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 276, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __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_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 276, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->ports);
  __Pyx_DECREF(__pyx_v_p->ports);
  __pyx_v_p->ports = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":277
 *         p.key = <uintptr_t>symbol
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)             # <<<<<<<<<<<<<<
 *         p.context = Context.factory(policy, symbol.context)
 *         return p
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PortconProtocol); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyInt_From_uint8_t(__pyx_v_symbol->u.port.protocol); if (unlikely(!__pyx_t_7)) __PYX_ERR(13, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = NULL;
  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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->protocol);
  __Pyx_DECREF(__pyx_v_p->protocol);
  __pyx_v_p->protocol = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":278
 *         p.ports = PortconRange(symbol.u.port.low_port, symbol.u.port.high_port)
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)
 *         p.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return p
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.context));
  __pyx_v_p->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":279
 *         p.protocol = PortconProtocol(symbol.u.port.protocol)
 *         p.context = Context.factory(policy, symbol.context)
 *         return p             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_p));
  __pyx_r = __pyx_v_p;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":271
 * 
 *     @staticmethod
 *     cdef inline Portcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Portcon objects."""
 *         cdef Portcon p = Portcon.__new__(Portcon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.Portcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_p);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":281
 *         return p
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *             return hash("portcon|{0.protocol}|{1.low}|{1.high}".format(self, self.ports))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_7Portcon_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_7Portcon_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon___hash__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_7Portcon___hash__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_hash_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/netcontext.pxi":282
 * 
 *     def __hash__(self):
 *             return hash("portcon|{0.protocol}|{1.low}|{1.high}".format(self, self.ports))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_portcon_0_protocol_1_low_1_high, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  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_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), __pyx_v_self->ports};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 282, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), __pyx_v_self->ports};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 282, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(13, 282, __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(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, ((PyObject *)__pyx_v_self));
    __Pyx_INCREF(__pyx_v_self->ports);
    __Pyx_GIVEREF(__pyx_v_self->ports);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_self->ports);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_hash_t)-1))) __PYX_ERR(13, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":281
 *         return p
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *             return hash("portcon|{0.protocol}|{1.low}|{1.high}".format(self, self.ports))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.Portcon.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":284
 *             return hash("portcon|{0.protocol}|{1.low}|{1.high}".format(self, self.ports))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_2__lt__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_2__lt__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/netcontext.pxi":286
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 286, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":284
 *             return hash("portcon|{0.protocol}|{1.low}|{1.high}".format(self, self.ports))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Portcon.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":288
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         low, high = self.ports
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_4statement(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_4statement(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  PyObject *__pyx_v_low = NULL;
  PyObject *__pyx_v_high = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/netcontext.pxi":289
 * 
 *     def statement(self):
 *         low, high = self.ports             # <<<<<<<<<<<<<<
 * 
 *         if low == high:
 */
  __pyx_t_1 = __pyx_v_self->ports;
  __Pyx_INCREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(13, 289, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(13, 289, __pyx_L1_error)
    __pyx_t_5 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(13, 289, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_low = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_high = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "setools/policyrep/netcontext.pxi":291
 *         low, high = self.ports
 * 
 *         if low == high:             # <<<<<<<<<<<<<<
 *             return "portcon {0.protocol} {1} {0.context}".format(self, low)
 *         else:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_low, __pyx_v_high, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 291, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(13, 291, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "setools/policyrep/netcontext.pxi":292
 * 
 *         if low == high:
 *             return "portcon {0.protocol} {1} {0.context}".format(self, low)             # <<<<<<<<<<<<<<
 *         else:
 *             return "portcon {0.protocol} {1}-{2} {0.context}".format(self, low, high)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_portcon_0_protocol_1_0_context, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = NULL;
    __pyx_t_7 = 0;
    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_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_self), __pyx_v_low};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 292, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_self), __pyx_v_low};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 292, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 292, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(((PyObject *)__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, ((PyObject *)__pyx_v_self));
      __Pyx_INCREF(__pyx_v_low);
      __Pyx_GIVEREF(__pyx_v_low);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_v_low);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 292, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/netcontext.pxi":291
 *         low, high = self.ports
 * 
 *         if low == high:             # <<<<<<<<<<<<<<
 *             return "portcon {0.protocol} {1} {0.context}".format(self, low)
 *         else:
 */
  }

  /* "setools/policyrep/netcontext.pxi":294
 *             return "portcon {0.protocol} {1} {0.context}".format(self, low)
 *         else:
 *             return "portcon {0.protocol} {1}-{2} {0.context}".format(self, low, high)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_portcon_0_protocol_1_2_0_context, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    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_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[4] = {__pyx_t_4, ((PyObject *)__pyx_v_self), __pyx_v_low, __pyx_v_high};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 294, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[4] = {__pyx_t_4, ((PyObject *)__pyx_v_self), __pyx_v_low, __pyx_v_high};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 294, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 294, __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(((PyObject *)__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, ((PyObject *)__pyx_v_self));
      __Pyx_INCREF(__pyx_v_low);
      __Pyx_GIVEREF(__pyx_v_low);
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_v_low);
      __Pyx_INCREF(__pyx_v_high);
      __Pyx_GIVEREF(__pyx_v_high);
      PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_7, __pyx_v_high);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/netcontext.pxi":288
 *         return str(self) < str(other)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         low, high = self.ports
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Portcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_low);
  __Pyx_XDECREF(__pyx_v_high);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":267
 * 
 *     cdef:
 *         readonly object ports             # <<<<<<<<<<<<<<
 *         readonly object protocol
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_5ports_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_5ports_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_5ports___get__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_5ports___get__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ports);
  __pyx_r = __pyx_v_self->ports;
  goto __pyx_L0;

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

/* "setools/policyrep/netcontext.pxi":268
 *     cdef:
 *         readonly object ports
 *         readonly object protocol             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_8protocol_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_8protocol_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_8protocol___get__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_8protocol___get__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->protocol);
  __pyx_r = __pyx_v_self->protocol;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy, self.ports, self.protocol)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->ports);
  __Pyx_GIVEREF(__pyx_v_self->ports);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->ports);
  __Pyx_INCREF(__pyx_v_self->protocol);
  __Pyx_GIVEREF(__pyx_v_self->protocol);
  PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_self->protocol);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy, self.ports, self.protocol)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy, self.ports, self.protocol)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy, self.ports, self.protocol)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->ports != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->protocol != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Portcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_230096861);
    __Pyx_GIVEREF(__pyx_int_230096861);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_230096861);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None or self.protocol is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, None), state
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Portcon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_230096861);
    __Pyx_GIVEREF(__pyx_int_230096861);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_230096861);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Portcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Portcon_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Portcon_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Portcon_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Portcon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Portcon, (type(self), 0xdb6ffdd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Portcon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Portcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":305
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ibendportcon iterators."""
 *         i = IbendportconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_20IbendportconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":307
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ibendportcon iterators."""
 *         i = IbendportconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_IbendportconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":308
 *         """Factory function for creating Ibendportcon iterators."""
 *         i = IbendportconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":309
 *         i = IbendportconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":310
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":305
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ibendportcon iterators."""
 *         i = IbendportconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":312
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ibendportcon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20IbendportconIterator___next__(((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator___next__(struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":313
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Ibendportcon.factory(self.policy, self.ocon)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IbendportconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IbendportconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_IbendportconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 313, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 313, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":314
 *     def __next__(self):
 *         super().__next__()
 *         return Ibendportcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_12Ibendportcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":312
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ibendportcon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20IbendportconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__50, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20IbendportconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_20IbendportconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbendportconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__51, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IbendportconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":322
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ibpkeycon iterators."""
 *         i = IbpkeyconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_17IbpkeyconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":324
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ibpkeycon iterators."""
 *         i = IbpkeyconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_IbpkeyconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":325
 *         """Factory function for creating Ibpkeycon iterators."""
 *         i = IbpkeyconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":326
 *         i = IbpkeyconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":327
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":322
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ibpkeycon iterators."""
 *         i = IbpkeyconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":329
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ibpkeycon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17IbpkeyconIterator___next__(((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator___next__(struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":330
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Ibpkeycon.factory(self.policy, self.ocon)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IbpkeyconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IbpkeyconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_IbpkeyconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 330, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 330, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":331
 *     def __next__(self):
 *         super().__next__()
 *         return Ibpkeycon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_9Ibpkeycon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":329
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ibpkeycon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17IbpkeyconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__52, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17IbpkeyconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_17IbpkeyconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__53, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IbpkeyconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":339
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Netifcon iterators."""
 *         i = NetifconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_16NetifconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":341
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Netifcon iterators."""
 *         i = NetifconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_NetifconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":342
 *         """Factory function for creating Netifcon iterators."""
 *         i = NetifconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":343
 *         i = NetifconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":344
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":339
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Netifcon iterators."""
 *         i = NetifconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":346
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Netifcon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16NetifconIterator___next__(((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator___next__(struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":347
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Netifcon.factory(self.policy, self.ocon)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_NetifconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_NetifconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_NetifconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 347, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 347, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":348
 *     def __next__(self):
 *         super().__next__()
 *         return Netifcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8Netifcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":346
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Netifcon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16NetifconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__54, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16NetifconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16NetifconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_16NetifconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NetifconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.NetifconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":358
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, ip_version):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Nodecon iterators."""
 *         i = NodeconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_15NodeconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head, PyObject *__pyx_v_ip_version) {
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":360
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, ip_version):
 *         """Factory function for creating Nodecon iterators."""
 *         i = NodeconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_NodeconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":361
 *         """Factory function for creating Nodecon iterators."""
 *         i = NodeconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         i.ip_version = ip_version
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":362
 *         i = NodeconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         i.ip_version = ip_version
 *         return i
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":363
 *         i.policy = policy
 *         i.head = i.curr = head
 *         i.ip_version = ip_version             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __Pyx_INCREF(__pyx_v_ip_version);
  __Pyx_GIVEREF(__pyx_v_ip_version);
  __Pyx_GOTREF(__pyx_v_i->ip_version);
  __Pyx_DECREF(__pyx_v_i->ip_version);
  __pyx_v_i->ip_version = __pyx_v_ip_version;

  /* "setools/policyrep/netcontext.pxi":364
 *         i.head = i.curr = head
 *         i.ip_version = ip_version
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":358
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head, ip_version):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Nodecon iterators."""
 *         i = NodeconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":366
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Nodecon.factory(self.policy, self.ocon, self.ip_version)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15NodeconIterator___next__(((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator___next__(struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":367
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Nodecon.factory(self.policy, self.ocon, self.ip_version)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_NodeconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_NodeconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_NodeconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 367, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 367, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":368
 *     def __next__(self):
 *         super().__next__()
 *         return Nodecon.factory(self.policy, self.ocon, self.ip_version)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_v_self->ip_version;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_7Nodecon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":366
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Nodecon.factory(self.policy, self.ocon, self.ip_version)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15NodeconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15NodeconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15NodeconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_15NodeconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_NodeconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__57, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.NodeconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":376
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Portcon iterators."""
 *         i = PortconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_15PortconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/netcontext.pxi":378
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Portcon iterators."""
 *         i = PortconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_PortconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PortconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":379
 *         """Factory function for creating Portcon iterators."""
 *         i = PortconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/netcontext.pxi":380
 *         i = PortconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/netcontext.pxi":381
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":376
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Portcon iterators."""
 *         i = PortconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/netcontext.pxi":383
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Portcon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15PortconIterator___next__(((struct __pyx_obj_7setools_9policyrep_PortconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator___next__(struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/netcontext.pxi":384
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Portcon.factory(self.policy, self.ocon)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_PortconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_PortconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_PortconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 384, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 384, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":385
 *     def __next__(self):
 *         super().__next__()
 *         return Portcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Portcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/netcontext.pxi":383
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Portcon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15PortconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PortconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15PortconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15PortconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PortconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_15PortconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PortconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PortconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":37
 * 
 *     @staticmethod
 *     cdef inline Common factory(SELinuxPolicy policy, sepol.common_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Common objects."""
 *         cdef:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Common *__pyx_f_7setools_9policyrep_6Common_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, common_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_c = 0;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_key = 0;
  uint32_t __pyx_v_value;
  struct __pyx_obj_7setools_9policyrep_Common *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  uint32_t __pyx_t_11;
  struct hashtab_node *__pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":42
 *             Common c
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             str key
 *             uint32_t value
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/objclass.pxi":47
 *             dict perm_table
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":48
 * 
 *         try:
 *             return _common_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             c = Common.__new__(Common)
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__common_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 48, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(14, 48, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_7setools_9policyrep_Common))))) __PYX_ERR(14, 48, __pyx_L3_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/objclass.pxi":47
 *             dict perm_table
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/objclass.pxi":49
 *         try:
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             c = Common.__new__(Common)
 *             c.policy = policy
 */
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.Common.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(14, 49, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_7);

      /* "setools/policyrep/objclass.pxi":50
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             c = Common.__new__(Common)             # <<<<<<<<<<<<<<
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 */
      __pyx_t_8 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Common(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Common), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 50, __pyx_L5_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":51
 *         except KeyError:
 *             c = Common.__new__(Common)
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.common_value_to_name(symbol.s.value - 1)
 */
      __Pyx_INCREF(((PyObject *)__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy));
      __pyx_v_c->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/objclass.pxi":52
 *             c = Common.__new__(Common)
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             c.name = policy.common_value_to_name(symbol.s.value - 1)
 * 
 */
      __pyx_v_c->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/objclass.pxi":53
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 *             c.name = policy.common_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 * 
 *             #
 */
      __pyx_t_8 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 53, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_c->__pyx_base.name);
      __pyx_v_c->__pyx_base.name = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":58
 *             # Create value:name permission table (reverse of what is in the policydb)
 *             #
 *             c._perm_table = {}             # <<<<<<<<<<<<<<
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]
 */
      __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 58, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->_perm_table);
      __Pyx_DECREF(__pyx_v_c->_perm_table);
      __pyx_v_c->_perm_table = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":59
 *             #
 *             c._perm_table = {}
 *             while bucket < symbol.permissions.table[0].size:             # <<<<<<<<<<<<<<
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:
 */
      while (1) {
        __pyx_t_9 = ((__pyx_v_bucket < (__pyx_v_symbol->permissions.table[0]).size) != 0);
        if (!__pyx_t_9) break;

        /* "setools/policyrep/objclass.pxi":60
 *             c._perm_table = {}
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)
 */
        __pyx_v_node = ((__pyx_v_symbol->permissions.table[0]).htable[__pyx_v_bucket]);

        /* "setools/policyrep/objclass.pxi":61
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:             # <<<<<<<<<<<<<<
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 */
        while (1) {
          __pyx_t_9 = ((__pyx_v_node != NULL) != 0);
          if (!__pyx_t_9) break;

          /* "setools/policyrep/objclass.pxi":62
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)             # <<<<<<<<<<<<<<
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key
 */
          __pyx_t_8 = __Pyx_PyStr_FromString(((char *)__pyx_v_node->key)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 62, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = __Pyx_Intern(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(14, 62, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (!(likely(PyUnicode_CheckExact(__pyx_t_10))||((__pyx_t_10) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_10)->tp_name), 0))) __PYX_ERR(14, 62, __pyx_L5_except_error)
          __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_10));
          __pyx_t_10 = 0;

          /* "setools/policyrep/objclass.pxi":63
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value             # <<<<<<<<<<<<<<
 *                     c._perm_table[value] = key
 *                     node = node.next
 */
          __pyx_t_11 = ((perm_datum_t *)__pyx_v_node->datum)->s.value;
          __pyx_v_value = __pyx_t_11;

          /* "setools/policyrep/objclass.pxi":64
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key             # <<<<<<<<<<<<<<
 *                     node = node.next
 * 
 */
          if (unlikely(__pyx_v_c->_perm_table == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(14, 64, __pyx_L5_except_error)
          }
          __pyx_t_10 = __Pyx_PyInt_From_uint32_t(__pyx_v_value); if (unlikely(!__pyx_t_10)) __PYX_ERR(14, 64, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (unlikely(PyDict_SetItem(__pyx_v_c->_perm_table, __pyx_t_10, __pyx_v_key) < 0)) __PYX_ERR(14, 64, __pyx_L5_except_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

          /* "setools/policyrep/objclass.pxi":65
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key
 *                     node = node.next             # <<<<<<<<<<<<<<
 * 
 *                 bucket += 1
 */
          __pyx_t_12 = __pyx_v_node->next;
          __pyx_v_node = __pyx_t_12;
        }

        /* "setools/policyrep/objclass.pxi":67
 *                     node = node.next
 * 
 *                 bucket += 1             # <<<<<<<<<<<<<<
 * 
 *             c.perms = frozenset(c._perm_table.values())
 */
        __pyx_v_bucket = (__pyx_v_bucket + 1);
      }

      /* "setools/policyrep/objclass.pxi":69
 *                 bucket += 1
 * 
 *             c.perms = frozenset(c._perm_table.values())             # <<<<<<<<<<<<<<
 * 
 *             _common_cache[policy][<uintptr_t>symbol] = c
 */
      if (unlikely(__pyx_v_c->_perm_table == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
        __PYX_ERR(14, 69, __pyx_L5_except_error)
      }
      __pyx_t_10 = __Pyx_PyDict_Values(__pyx_v_c->_perm_table); if (unlikely(!__pyx_t_10)) __PYX_ERR(14, 69, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = __Pyx_PyFrozenSet_New(__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 69, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->perms);
      __Pyx_DECREF(__pyx_v_c->perms);
      __pyx_v_c->perms = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":71
 *             c.perms = frozenset(c._perm_table.values())
 * 
 *             _common_cache[policy][<uintptr_t>symbol] = c             # <<<<<<<<<<<<<<
 *             return c
 * 
 */
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__common_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 71, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_8, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_c), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(14, 71, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":72
 * 
 *             _common_cache[policy][<uintptr_t>symbol] = c
 *             return c             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_c));
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/objclass.pxi":47
 *             dict perm_table
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _common_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/objclass.pxi":37
 * 
 *     @staticmethod
 *     cdef inline Common factory(SELinuxPolicy policy, sepol.common_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Common objects."""
 *         cdef:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.Common.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":74
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return other in self.perms
 * 
 */

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_6Common_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_6Common_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common___contains__(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static int __pyx_pf_7setools_9policyrep_6Common___contains__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/objclass.pxi":75
 * 
 *     def __contains__(self, other):
 *         return other in self.perms             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_v_self->perms, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(14, 75, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":74
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         return other in self.perms
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Common.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":77
 *         return other in self.perms
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "common {0}\n{{\n\t{1}\n}}".format(self, '\n\t'.join(self.perms))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Common_3statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Common_3statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common_2statement(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Common_2statement(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/objclass.pxi":78
 * 
 *     def statement(self):
 *         return "common {0}\n{{\n\t{1}\n}}".format(self, '\n\t'.join(self.perms))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_common_0_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_v_self->perms;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__60, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  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 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 78, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __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, ((PyObject *)__pyx_v_self), __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 78, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 78, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":77
 *         return other in self.perms
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "common {0}\n{{\n\t{1}\n}}".format(self, '\n\t'.join(self.perms))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Common.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":34
 *     cdef:
 *         dict _perm_table
 *         readonly frozenset perms             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Common_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Common_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common_5perms___get__(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Common_5perms___get__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->perms);
  __pyx_r = __pyx_v_self->perms;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Common_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Common_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Common_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._perm_table, self.key, self.name, self.perms, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_perm_table);
  __Pyx_GIVEREF(__pyx_v_self->_perm_table);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_perm_table);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->__pyx_base.name);
  __Pyx_INCREF(__pyx_v_self->perms);
  __Pyx_GIVEREF(__pyx_v_self->perms);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->perms);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._perm_table, self.key, self.name, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._perm_table, self.key, self.name, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._perm_table, self.key, self.name, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->_perm_table != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->perms != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Common); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_189326887);
    __Pyx_GIVEREF(__pyx_int_189326887);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_189326887);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._perm_table is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, None), state
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Common); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_189326887);
    __Pyx_GIVEREF(__pyx_int_189326887);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_189326887);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Common.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6Common_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6Common_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6Common_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_6Common_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Common__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Common, (type(self), 0xb48e627, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Common__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Common.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":97
 * 
 *     @staticmethod
 *     cdef inline ObjClass factory(SELinuxPolicy policy, sepol.class_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating ObjClass objects."""
 *         cdef:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_f_7setools_9policyrep_8ObjClass_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, class_datum_t *__pyx_v_symbol) {
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_key = 0;
  uint32_t __pyx_v_value;
  struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_c = 0;
  struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  uint32_t __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  struct hashtab_node *__pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":101
 *         cdef:
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             str key
 *             uint32_t value
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/objclass.pxi":108
 *             ObjClass c
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _objclass_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":109
 * 
 *         try:
 *             return _objclass_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             #
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__objclass_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 109, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(14, 109, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(14, 109, __pyx_L3_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/objclass.pxi":108
 *             ObjClass c
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _objclass_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/objclass.pxi":110
 *         try:
 *             return _objclass_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             #
 *             # Instantiate object class
 */
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.ObjClass.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(14, 110, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_7);

      /* "setools/policyrep/objclass.pxi":114
 *             # Instantiate object class
 *             #
 *             c = ObjClass.__new__(ObjClass)             # <<<<<<<<<<<<<<
 *             _objclass_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy
 */
      __pyx_t_8 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_ObjClass(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_ObjClass), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 114, __pyx_L5_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":115
 *             #
 *             c = ObjClass.__new__(ObjClass)
 *             _objclass_cache[policy][<uintptr_t>symbol] = c             # <<<<<<<<<<<<<<
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 */
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__objclass_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 115, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_8, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_c), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(14, 115, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":116
 *             c = ObjClass.__new__(ObjClass)
 *             _objclass_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy             # <<<<<<<<<<<<<<
 *             c.key = <uintptr_t>symbol
 *             c.nprim = symbol.permissions.nprim
 */
      __Pyx_INCREF(((PyObject *)__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.__pyx_base.policy));
      __pyx_v_c->__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/objclass.pxi":117
 *             _objclass_cache[policy][<uintptr_t>symbol] = c
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             c.nprim = symbol.permissions.nprim
 *             c.name = policy.class_value_to_name(symbol.s.value - 1)
 */
      __pyx_v_c->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/objclass.pxi":118
 *             c.policy = policy
 *             c.key = <uintptr_t>symbol
 *             c.nprim = symbol.permissions.nprim             # <<<<<<<<<<<<<<
 *             c.name = policy.class_value_to_name(symbol.s.value - 1)
 * 
 */
      __pyx_t_9 = __pyx_v_symbol->permissions.nprim;
      __pyx_v_c->nprim = __pyx_t_9;

      /* "setools/policyrep/objclass.pxi":119
 *             c.key = <uintptr_t>symbol
 *             c.nprim = symbol.permissions.nprim
 *             c.name = policy.class_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 * 
 *             #
 */
      __pyx_t_8 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 119, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_c->__pyx_base.name);
      __pyx_v_c->__pyx_base.name = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":124
 *             # Load common
 *             #
 *             if symbol.comdatum:             # <<<<<<<<<<<<<<
 *                 c._common = Common.factory(policy, symbol.comdatum)
 * 
 */
      __pyx_t_10 = (__pyx_v_symbol->comdatum != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":125
 *             #
 *             if symbol.comdatum:
 *                 c._common = Common.factory(policy, symbol.comdatum)             # <<<<<<<<<<<<<<
 * 
 *             c._perm_table = {}
 */
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_6Common_factory(__pyx_v_policy, __pyx_v_symbol->comdatum)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 125, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_8);
        __Pyx_GOTREF(__pyx_v_c->_common);
        __Pyx_DECREF(((PyObject *)__pyx_v_c->_common));
        __pyx_v_c->_common = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_8);
        __pyx_t_8 = 0;

        /* "setools/policyrep/objclass.pxi":124
 *             # Load common
 *             #
 *             if symbol.comdatum:             # <<<<<<<<<<<<<<
 *                 c._common = Common.factory(policy, symbol.comdatum)
 * 
 */
      }

      /* "setools/policyrep/objclass.pxi":127
 *                 c._common = Common.factory(policy, symbol.comdatum)
 * 
 *             c._perm_table = {}             # <<<<<<<<<<<<<<
 * 
 *             #
 */
      __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 127, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->_perm_table);
      __Pyx_DECREF(__pyx_v_c->_perm_table);
      __pyx_v_c->_perm_table = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":132
 *             # Create value:name permission table (reverse of what is in the policydb)
 *             #
 *             while bucket < symbol.permissions.table[0].size:             # <<<<<<<<<<<<<<
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:
 */
      while (1) {
        __pyx_t_10 = ((__pyx_v_bucket < (__pyx_v_symbol->permissions.table[0]).size) != 0);
        if (!__pyx_t_10) break;

        /* "setools/policyrep/objclass.pxi":133
 *             #
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)
 */
        __pyx_v_node = ((__pyx_v_symbol->permissions.table[0]).htable[__pyx_v_bucket]);

        /* "setools/policyrep/objclass.pxi":134
 *             while bucket < symbol.permissions.table[0].size:
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:             # <<<<<<<<<<<<<<
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 */
        while (1) {
          __pyx_t_10 = ((__pyx_v_node != NULL) != 0);
          if (!__pyx_t_10) break;

          /* "setools/policyrep/objclass.pxi":135
 *                 node = symbol.permissions.table[0].htable[bucket]
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)             # <<<<<<<<<<<<<<
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key
 */
          __pyx_t_8 = __Pyx_PyStr_FromString(((char *)__pyx_v_node->key)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 135, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_11 = __Pyx_Intern(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(14, 135, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (!(likely(PyUnicode_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(14, 135, __pyx_L5_except_error)
          __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_11));
          __pyx_t_11 = 0;

          /* "setools/policyrep/objclass.pxi":136
 *                 while node != NULL:
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value             # <<<<<<<<<<<<<<
 *                     c._perm_table[value] = key
 *                     node = node.next
 */
          __pyx_t_9 = ((perm_datum_t *)__pyx_v_node->datum)->s.value;
          __pyx_v_value = __pyx_t_9;

          /* "setools/policyrep/objclass.pxi":137
 *                     key = intern(<char *>node.key)
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key             # <<<<<<<<<<<<<<
 *                     node = node.next
 * 
 */
          if (unlikely(__pyx_v_c->_perm_table == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(14, 137, __pyx_L5_except_error)
          }
          __pyx_t_11 = __Pyx_PyInt_From_uint32_t(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(14, 137, __pyx_L5_except_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (unlikely(PyDict_SetItem(__pyx_v_c->_perm_table, __pyx_t_11, __pyx_v_key) < 0)) __PYX_ERR(14, 137, __pyx_L5_except_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

          /* "setools/policyrep/objclass.pxi":138
 *                     value = (<sepol.perm_datum_t *>node.datum).s.value
 *                     c._perm_table[value] = key
 *                     node = node.next             # <<<<<<<<<<<<<<
 * 
 *                 bucket += 1
 */
          __pyx_t_12 = __pyx_v_node->next;
          __pyx_v_node = __pyx_t_12;
        }

        /* "setools/policyrep/objclass.pxi":140
 *                     node = node.next
 * 
 *                 bucket += 1             # <<<<<<<<<<<<<<
 * 
 *             c.perms = frozenset(c._perm_table.values())
 */
        __pyx_v_bucket = (__pyx_v_bucket + 1);
      }

      /* "setools/policyrep/objclass.pxi":142
 *                 bucket += 1
 * 
 *             c.perms = frozenset(c._perm_table.values())             # <<<<<<<<<<<<<<
 * 
 *             #
 */
      if (unlikely(__pyx_v_c->_perm_table == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
        __PYX_ERR(14, 142, __pyx_L5_except_error)
      }
      __pyx_t_11 = __Pyx_PyDict_Values(__pyx_v_c->_perm_table); if (unlikely(!__pyx_t_11)) __PYX_ERR(14, 142, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_8 = __Pyx_PyFrozenSet_New(__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 142, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->perms);
      __Pyx_DECREF(__pyx_v_c->perms);
      __pyx_v_c->perms = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":147
 *             # Load defaults
 *             #
 *             c._defaults = []             # <<<<<<<<<<<<<<
 *             if symbol.default_user:
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 */
      __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 147, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_c->_defaults);
      __Pyx_DECREF(__pyx_v_c->_defaults);
      __pyx_v_c->_defaults = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/objclass.pxi":148
 *             #
 *             c._defaults = []
 *             if symbol.default_user:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 * 
 */
      __pyx_t_10 = (__pyx_v_symbol->default_user != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":149
 *             c._defaults = []
 *             if symbol.default_user:
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))             # <<<<<<<<<<<<<<
 * 
 *             if symbol.default_role:
 */
        if (unlikely(__pyx_v_c->_defaults == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(14, 149, __pyx_L5_except_error)
        }
        __pyx_t_8 = __Pyx_PyInt_From_char(__pyx_v_symbol->default_user); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 149, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_11 = ((PyObject *)__pyx_f_7setools_9policyrep_7Default_factory(__pyx_v_policy, __pyx_v_c, __pyx_t_8, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_11)) __PYX_ERR(14, 149, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_c->_defaults, __pyx_t_11); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(14, 149, __pyx_L5_except_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

        /* "setools/policyrep/objclass.pxi":148
 *             #
 *             c._defaults = []
 *             if symbol.default_user:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 * 
 */
      }

      /* "setools/policyrep/objclass.pxi":151
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 * 
 *             if symbol.default_role:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))
 * 
 */
      __pyx_t_10 = (__pyx_v_symbol->default_role != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":152
 * 
 *             if symbol.default_role:
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))             # <<<<<<<<<<<<<<
 * 
 *             if symbol.default_type:
 */
        if (unlikely(__pyx_v_c->_defaults == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(14, 152, __pyx_L5_except_error)
        }
        __pyx_t_11 = __Pyx_PyInt_From_char(__pyx_v_symbol->default_role); if (unlikely(!__pyx_t_11)) __PYX_ERR(14, 152, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_7Default_factory(__pyx_v_policy, __pyx_v_c, Py_None, __pyx_t_11, Py_None, Py_None)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 152, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_c->_defaults, __pyx_t_8); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(14, 152, __pyx_L5_except_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "setools/policyrep/objclass.pxi":151
 *                 c._defaults.append(Default.factory(policy, c, symbol.default_user, None, None, None))
 * 
 *             if symbol.default_role:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))
 * 
 */
      }

      /* "setools/policyrep/objclass.pxi":154
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))
 * 
 *             if symbol.default_type:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))
 * 
 */
      __pyx_t_10 = (__pyx_v_symbol->default_type != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":155
 * 
 *             if symbol.default_type:
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))             # <<<<<<<<<<<<<<
 * 
 *             if symbol.default_range:
 */
        if (unlikely(__pyx_v_c->_defaults == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(14, 155, __pyx_L5_except_error)
        }
        __pyx_t_8 = __Pyx_PyInt_From_char(__pyx_v_symbol->default_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 155, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_11 = ((PyObject *)__pyx_f_7setools_9policyrep_7Default_factory(__pyx_v_policy, __pyx_v_c, Py_None, Py_None, __pyx_t_8, Py_None)); if (unlikely(!__pyx_t_11)) __PYX_ERR(14, 155, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_c->_defaults, __pyx_t_11); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(14, 155, __pyx_L5_except_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

        /* "setools/policyrep/objclass.pxi":154
 *                 c._defaults.append(Default.factory(policy, c, None, symbol.default_role, None, None))
 * 
 *             if symbol.default_type:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))
 * 
 */
      }

      /* "setools/policyrep/objclass.pxi":157
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))
 * 
 *             if symbol.default_range:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, None, None, symbol.default_range))
 * 
 */
      __pyx_t_10 = (__pyx_v_symbol->default_range != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/objclass.pxi":158
 * 
 *             if symbol.default_range:
 *                 c._defaults.append(Default.factory(policy, c, None, None, None, symbol.default_range))             # <<<<<<<<<<<<<<
 * 
 *             return c
 */
        if (unlikely(__pyx_v_c->_defaults == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(14, 158, __pyx_L5_except_error)
        }
        __pyx_t_11 = __Pyx_PyInt_From_char(__pyx_v_symbol->default_range); if (unlikely(!__pyx_t_11)) __PYX_ERR(14, 158, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_7Default_factory(__pyx_v_policy, __pyx_v_c, Py_None, Py_None, Py_None, __pyx_t_11)); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 158, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_c->_defaults, __pyx_t_8); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(14, 158, __pyx_L5_except_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "setools/policyrep/objclass.pxi":157
 *                 c._defaults.append(Default.factory(policy, c, None, None, symbol.default_type, None))
 * 
 *             if symbol.default_range:             # <<<<<<<<<<<<<<
 *                 c._defaults.append(Default.factory(policy, c, None, None, None, symbol.default_range))
 * 
 */
      }

      /* "setools/policyrep/objclass.pxi":160
 *                 c._defaults.append(Default.factory(policy, c, None, None, None, symbol.default_range))
 * 
 *             return c             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_c));
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/objclass.pxi":108
 *             ObjClass c
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _objclass_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/objclass.pxi":97
 * 
 *     @staticmethod
 *     cdef inline ObjClass factory(SELinuxPolicy policy, sepol.class_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating ObjClass objects."""
 *         cdef:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":162
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             if other in self.common.perms:
 */

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_8ObjClass_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_8ObjClass_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass___contains__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static int __pyx_pf_7setools_9policyrep_8ObjClass___contains__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/objclass.pxi":163
 * 
 *     def __contains__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             if other in self.common.perms:
 *                 return True
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":164
 *     def __contains__(self, other):
 *         try:
 *             if other in self.common.perms:             # <<<<<<<<<<<<<<
 *                 return True
 *         except NoCommon:
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_common); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 164, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_perms); if (unlikely(!__pyx_t_5)) __PYX_ERR(14, 164, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_t_5, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(14, 164, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = (__pyx_t_6 != 0);
      if (__pyx_t_7) {

        /* "setools/policyrep/objclass.pxi":165
 *         try:
 *             if other in self.common.perms:
 *                 return True             # <<<<<<<<<<<<<<
 *         except NoCommon:
 *             pass
 */
        __pyx_r = 1;
        goto __pyx_L7_try_return;

        /* "setools/policyrep/objclass.pxi":164
 *     def __contains__(self, other):
 *         try:
 *             if other in self.common.perms:             # <<<<<<<<<<<<<<
 *                 return True
 *         except NoCommon:
 */
      }

      /* "setools/policyrep/objclass.pxi":163
 * 
 *     def __contains__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             if other in self.common.perms:
 *                 return True
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/objclass.pxi":166
 *             if other in self.common.perms:
 *                 return True
 *         except NoCommon:             # <<<<<<<<<<<<<<
 *             pass
 * 
 */
    __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_4, &__pyx_t_8);
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_NoCommon); if (unlikely(!__pyx_t_9)) __PYX_ERR(14, 166, __pyx_L5_except_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_5, __pyx_t_9);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_ErrRestore(__pyx_t_5, __pyx_t_4, __pyx_t_8);
    __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_8 = 0;
    if (__pyx_t_10) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/objclass.pxi":163
 * 
 *     def __contains__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             if other in self.common.perms:
 *                 return True
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "setools/policyrep/objclass.pxi":169
 *             pass
 * 
 *         return other in self.perms             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_v_self->perms, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(14, 169, __pyx_L1_error)
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":162
 *             return c
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             if other in self.common.perms:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":172
 * 
 *     @property
 *     def common(self):             # <<<<<<<<<<<<<<
 *         """
 *         The common that the object class inherits.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_6common_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_6common_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_6common___get__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_6common___get__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/objclass.pxi":179
 *         NoCommon    The object class does not inherit a common.
 *         """
 *         if self._common:             # <<<<<<<<<<<<<<
 *             return self._common
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_common)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(14, 179, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/objclass.pxi":180
 *         """
 *         if self._common:
 *             return self._common             # <<<<<<<<<<<<<<
 *         else:
 *             raise NoCommon("{0} does not inherit a common.".format(self.name))
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject *)__pyx_v_self->_common));
    __pyx_r = ((PyObject *)__pyx_v_self->_common);
    goto __pyx_L0;

    /* "setools/policyrep/objclass.pxi":179
 *         NoCommon    The object class does not inherit a common.
 *         """
 *         if self._common:             # <<<<<<<<<<<<<<
 *             return self._common
 *         else:
 */
  }

  /* "setools/policyrep/objclass.pxi":182
 *             return self._common
 *         else:
 *             raise NoCommon("{0} does not inherit a common.".format(self.name))             # <<<<<<<<<<<<<<
 * 
 *     def constraints(self):
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_NoCommon); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_does_not_inherit_a_common, __pyx_n_s_format_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(14, 182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_self->__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_self->__pyx_base.name);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 182, __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 && 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_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 182, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(14, 182, __pyx_L1_error)
  }

  /* "setools/policyrep/objclass.pxi":172
 * 
 *     @property
 *     def common(self):             # <<<<<<<<<<<<<<
 *         """
 *         The common that the object class inherits.
 */

  /* function exit code */
  __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_6);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.common.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":184
 *             raise NoCommon("{0} does not inherit a common.".format(self.name))
 * 
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_3constraints(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_8ObjClass_2constraints[] = "Iterator for the constraints that apply to this class.";
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_3constraints(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("constraints (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_2constraints(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_2constraints(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  class_datum_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("constraints", 0);

  /* "setools/policyrep/objclass.pxi":186
 *     def constraints(self):
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._constraints is None:
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,
 */
  __pyx_v_symbol = ((class_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.key);

  /* "setools/policyrep/objclass.pxi":187
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._constraints is None:             # <<<<<<<<<<<<<<
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,
 *                                                                 symbol.constraints))
 */
  __pyx_t_1 = (__pyx_v_self->_constraints == ((PyObject*)Py_None));
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/objclass.pxi":188
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._constraints is None:
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,             # <<<<<<<<<<<<<<
 *                                                                 symbol.constraints))
 * 
 */
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);

    /* "setools/policyrep/objclass.pxi":189
 *         if self._constraints is None:
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,
 *                                                                 symbol.constraints))             # <<<<<<<<<<<<<<
 * 
 *         return iter(self._constraints)
 */
    __pyx_t_4 = __pyx_f_7setools_9policyrep_18ConstraintIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_self, __pyx_v_symbol->constraints); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/objclass.pxi":188
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._constraints is None:
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,             # <<<<<<<<<<<<<<
 *                                                                 symbol.constraints))
 * 
 */
    __pyx_t_3 = PySequence_List(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->_constraints);
    __Pyx_DECREF(__pyx_v_self->_constraints);
    __pyx_v_self->_constraints = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/objclass.pxi":187
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._constraints is None:             # <<<<<<<<<<<<<<
 *             self._constraints = list(ConstraintIterator.factory(self.policy, self,
 *                                                                 symbol.constraints))
 */
  }

  /* "setools/policyrep/objclass.pxi":191
 *                                                                 symbol.constraints))
 * 
 *         return iter(self._constraints)             # <<<<<<<<<<<<<<
 * 
 *     def defaults(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __pyx_v_self->_constraints;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":184
 *             raise NoCommon("{0} does not inherit a common.".format(self.name))
 * 
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the constraints that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.constraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":193
 *         return iter(self._constraints)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the defaults for this object class."""
 *         return iter(self._defaults)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_5defaults(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_8ObjClass_4defaults[] = "Iterator for the defaults for this object class.";
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_5defaults(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("defaults (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_4defaults(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_4defaults(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("defaults", 0);

  /* "setools/policyrep/objclass.pxi":195
 *     def defaults(self):
 *         """Iterator for the defaults for this object class."""
 *         return iter(self._defaults)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_defaults;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":193
 *         return iter(self._constraints)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator for the defaults for this object class."""
 *         return iter(self._defaults)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.defaults", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":197
 *         return iter(self._defaults)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         stmt = "class {0}\n".format(self.name)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_7statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_6statement(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_6statement(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_v_stmt = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/objclass.pxi":198
 * 
 *     def statement(self):
 *         stmt = "class {0}\n".format(self.name)             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_class_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_stmt = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":200
 *         stmt = "class {0}\n".format(self.name)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             stmt += "inherits {0}\n".format(self.common)
 *         except NoCommon:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":201
 * 
 *         try:
 *             stmt += "inherits {0}\n".format(self.common)             # <<<<<<<<<<<<<<
 *         except NoCommon:
 *             pass
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_inherits_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 201, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_common); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 201, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 201, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 201, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_stmt, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "setools/policyrep/objclass.pxi":200
 *         stmt = "class {0}\n".format(self.name)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             stmt += "inherits {0}\n".format(self.common)
 *         except NoCommon:
 */
    }
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/objclass.pxi":202
 *         try:
 *             stmt += "inherits {0}\n".format(self.common)
 *         except NoCommon:             # <<<<<<<<<<<<<<
 *             pass
 * 
 */
    __Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_NoCommon); if (unlikely(!__pyx_t_7)) __PYX_ERR(14, 202, __pyx_L5_except_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_ErrRestore(__pyx_t_2, __pyx_t_1, __pyx_t_3);
    __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0;
    if (__pyx_t_8) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/objclass.pxi":200
 *         stmt = "class {0}\n".format(self.name)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             stmt += "inherits {0}\n".format(self.common)
 *         except NoCommon:
 */
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    __pyx_L8_try_end:;
  }

  /* "setools/policyrep/objclass.pxi":206
 * 
 *         # a class that inherits may not have additional permissions
 *         if len(self.perms) > 0:             # <<<<<<<<<<<<<<
 *             stmt += "{{\n\t{0}\n}}".format('\n\t'.join(self.perms))
 * 
 */
  __pyx_t_3 = __pyx_v_self->perms;
  __Pyx_INCREF(__pyx_t_3);
  if (unlikely(__pyx_t_3 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(14, 206, __pyx_L1_error)
  }
  __pyx_t_9 = PySet_GET_SIZE(__pyx_t_3); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(14, 206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_10 = ((__pyx_t_9 > 0) != 0);
  if (__pyx_t_10) {

    /* "setools/policyrep/objclass.pxi":207
 *         # a class that inherits may not have additional permissions
 *         if len(self.perms) > 0:
 *             stmt += "{{\n\t{0}\n}}".format('\n\t'.join(self.perms))             # <<<<<<<<<<<<<<
 * 
 *         return stmt
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_4, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_self->perms;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_7 = PyUnicode_Join(__pyx_kp_u__60, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(14, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/objclass.pxi":206
 * 
 *         # a class that inherits may not have additional permissions
 *         if len(self.perms) > 0:             # <<<<<<<<<<<<<<
 *             stmt += "{{\n\t{0}\n}}".format('\n\t'.join(self.perms))
 * 
 */
  }

  /* "setools/policyrep/objclass.pxi":209
 *             stmt += "{{\n\t{0}\n}}".format('\n\t'.join(self.perms))
 * 
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 *     def validatetrans(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":197
 *         return iter(self._defaults)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         stmt = "class {0}\n".format(self.name)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":211
 *         return stmt
 * 
 *     def validatetrans(self):             # <<<<<<<<<<<<<<
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_9validatetrans(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_8ObjClass_8validatetrans[] = "Iterator for validatetrans that apply to this class.";
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_9validatetrans(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("validatetrans (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_8validatetrans(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_8validatetrans(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  class_datum_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("validatetrans", 0);

  /* "setools/policyrep/objclass.pxi":213
 *     def validatetrans(self):
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._validatetrans is None:
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,
 */
  __pyx_v_symbol = ((class_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.key);

  /* "setools/policyrep/objclass.pxi":214
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._validatetrans is None:             # <<<<<<<<<<<<<<
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,
 *                                                                      symbol.validatetrans))
 */
  __pyx_t_1 = (__pyx_v_self->_validatetrans == ((PyObject*)Py_None));
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/objclass.pxi":215
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._validatetrans is None:
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,             # <<<<<<<<<<<<<<
 *                                                                      symbol.validatetrans))
 * 
 */
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);

    /* "setools/policyrep/objclass.pxi":216
 *         if self._validatetrans is None:
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,
 *                                                                      symbol.validatetrans))             # <<<<<<<<<<<<<<
 * 
 *         return iter(self._validatetrans)
 */
    __pyx_t_4 = __pyx_f_7setools_9policyrep_21ValidatetransIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_self, __pyx_v_symbol->validatetrans); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/objclass.pxi":215
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._validatetrans is None:
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,             # <<<<<<<<<<<<<<
 *                                                                      symbol.validatetrans))
 * 
 */
    __pyx_t_3 = PySequence_List(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 215, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->_validatetrans);
    __Pyx_DECREF(__pyx_v_self->_validatetrans);
    __pyx_v_self->_validatetrans = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/objclass.pxi":214
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 *         if self._validatetrans is None:             # <<<<<<<<<<<<<<
 *             self._validatetrans = list(ValidatetransIterator.factory(self.policy, self,
 *                                                                      symbol.validatetrans))
 */
  }

  /* "setools/policyrep/objclass.pxi":218
 *                                                                      symbol.validatetrans))
 * 
 *         return iter(self._validatetrans)             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __pyx_v_self->_validatetrans;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(14, 218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":211
 *         return stmt
 * 
 *     def validatetrans(self):             # <<<<<<<<<<<<<<
 *         """Iterator for validatetrans that apply to this class."""
 *         cdef sepol.class_datum_t *symbol = <sepol.class_datum_t *>self.key
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.validatetrans", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":91
 *         list _constraints
 *         list _validatetrans
 *         readonly frozenset perms             # <<<<<<<<<<<<<<
 *         # class_datum_t->permissions.nprim
 *         # is needed for the permission iterator
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_5perms___get__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_5perms___get__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->perms);
  __pyx_r = __pyx_v_self->perms;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_10__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_10__reduce_cython__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._common, self._constraints, self._defaults, self._perm_table, self._validatetrans, self.key, self.name, self.nprim, self.perms, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->nprim); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(10); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_common));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_common));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->_common));
  __Pyx_INCREF(__pyx_v_self->_constraints);
  __Pyx_GIVEREF(__pyx_v_self->_constraints);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->_constraints);
  __Pyx_INCREF(__pyx_v_self->_defaults);
  __Pyx_GIVEREF(__pyx_v_self->_defaults);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->_defaults);
  __Pyx_INCREF(__pyx_v_self->_perm_table);
  __Pyx_GIVEREF(__pyx_v_self->_perm_table);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->_perm_table);
  __Pyx_INCREF(__pyx_v_self->_validatetrans);
  __Pyx_GIVEREF(__pyx_v_self->_validatetrans);
  PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->_validatetrans);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 7, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->perms);
  __Pyx_GIVEREF(__pyx_v_self->perms);
  PyTuple_SET_ITEM(__pyx_t_3, 8, __pyx_v_self->perms);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 9, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._common, self._constraints, self._defaults, self._perm_table, self._validatetrans, self.key, self.name, self.nprim, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._common, self._constraints, self._defaults, self._perm_table, self._validatetrans, self.key, self.name, self.nprim, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._common, self._constraints, self._defaults, self._perm_table, self._validatetrans, self.key, self.name, self.nprim, self.perms, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->_common) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->_constraints != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_defaults != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->_perm_table != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->_validatetrans != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->perms != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    __pyx_t_5 = __pyx_t_4;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_ObjClass); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_108427564);
    __Pyx_GIVEREF(__pyx_int_108427564);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_108427564);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._common is not None or self._constraints is not None or self._defaults is not None or self._perm_table is not None or self._validatetrans is not None or self.name is not None or self.perms is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, None), state
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_ObjClass); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_108427564);
    __Pyx_GIVEREF(__pyx_int_108427564);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_108427564);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8ObjClass_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8ObjClass_12__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_8ObjClass_12__setstate_cython__(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_ObjClass__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ObjClass, (type(self), 0x676792c, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ObjClass__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ObjClass.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":228
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = CommonHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_21CommonHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":230
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = CommonHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_CommonHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":231
 *         """Factory function for creating Role iterators."""
 *         i = CommonHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/objclass.pxi":232
 *         i = CommonHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/objclass.pxi":233
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":234
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":228
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = CommonHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":236
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Common.factory(self.policy, <sepol.common_datum_t *>self.curr.datum)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21CommonHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/objclass.pxi":237
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Common.factory(self.policy, <sepol.common_datum_t *>self.curr.datum)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CommonHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_CommonHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_CommonHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 237, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 237, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":238
 *     def __next__(self):
 *         super().__next__()
 *         return Common.factory(self.policy, <sepol.common_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_6Common_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((common_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":236
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Common.factory(self.policy, <sepol.common_datum_t *>self.curr.datum)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21CommonHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21CommonHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_21CommonHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.CommonHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":246
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = ObjClassHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":248
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = ObjClassHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":249
 *         """Factory function for creating Role iterators."""
 *         i = ObjClassHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/objclass.pxi":250
 *         i = ObjClassHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/objclass.pxi":251
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":252
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":246
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = ObjClassHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":254
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return ObjClass.factory(self.policy, <sepol.class_datum_t *>self.curr.datum)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/objclass.pxi":255
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return ObjClass.factory(self.policy, <sepol.class_datum_t *>self.curr.datum)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 255, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 255, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":256
 *     def __next__(self):
 *         super().__next__()
 *         return ObjClass.factory(self.policy, <sepol.class_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((class_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":254
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return ObjClass.factory(self.policy, <sepol.class_datum_t *>self.curr.datum)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__63, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_23ObjClassHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__64, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ObjClassHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":270
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, uint32_t vector):             # <<<<<<<<<<<<<<
 *         """Factory method for access vectors."""
 *         cdef Common com
 */

static PyObject *__pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v_tclass, uint32_t __pyx_v_vector) {
  struct __pyx_obj_7setools_9policyrep_Common *__pyx_v_com = 0;
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/objclass.pxi":273
 *         """Factory method for access vectors."""
 *         cdef Common com
 *         i = PermissionVectorIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.vector = vector
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_PermissionVectorIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":274
 *         cdef Common com
 *         i = PermissionVectorIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.vector = vector
 *         i.perm_max = tclass.nprim
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.policy));
  __pyx_v_i->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/objclass.pxi":275
 *         i = PermissionVectorIterator()
 *         i.policy = policy
 *         i.vector = vector             # <<<<<<<<<<<<<<
 *         i.perm_max = tclass.nprim
 * 
 */
  __pyx_v_i->vector = __pyx_v_vector;

  /* "setools/policyrep/objclass.pxi":276
 *         i.policy = policy
 *         i.vector = vector
 *         i.perm_max = tclass.nprim             # <<<<<<<<<<<<<<
 * 
 *         i.perm_table = tclass._perm_table.copy()
 */
  __pyx_t_2 = __pyx_v_tclass->nprim;
  __pyx_v_i->perm_max = __pyx_t_2;

  /* "setools/policyrep/objclass.pxi":278
 *         i.perm_max = tclass.nprim
 * 
 *         i.perm_table = tclass._perm_table.copy()             # <<<<<<<<<<<<<<
 *         try:
 *             com = tclass.common
 */
  if (unlikely(__pyx_v_tclass->_perm_table == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "copy");
    __PYX_ERR(14, 278, __pyx_L1_error)
  }
  __pyx_t_1 = PyDict_Copy(__pyx_v_tclass->_perm_table); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->perm_table);
  __Pyx_DECREF(__pyx_v_i->perm_table);
  __pyx_v_i->perm_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":279
 * 
 *         i.perm_table = tclass._perm_table.copy()
 *         try:             # <<<<<<<<<<<<<<
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "setools/policyrep/objclass.pxi":280
 *         i.perm_table = tclass._perm_table.copy()
 *         try:
 *             com = tclass.common             # <<<<<<<<<<<<<<
 *             i.perm_table.update(com._perm_table)
 *         except NoCommon:
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_tclass), __pyx_n_s_common); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 280, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Common))))) __PYX_ERR(14, 280, __pyx_L3_error)
      __pyx_v_com = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_1);
      __pyx_t_1 = 0;

      /* "setools/policyrep/objclass.pxi":281
 *         try:
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)             # <<<<<<<<<<<<<<
 *         except NoCommon:
 *             pass
 */
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_i->perm_table, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 281, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_com->_perm_table) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_com->_perm_table);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 281, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "setools/policyrep/objclass.pxi":279
 * 
 *         i.perm_table = tclass._perm_table.copy()
 *         try:             # <<<<<<<<<<<<<<
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "setools/policyrep/objclass.pxi":282
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)
 *         except NoCommon:             # <<<<<<<<<<<<<<
 *             pass
 * 
 */
    __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_NoCommon); if (unlikely(!__pyx_t_8)) __PYX_ERR(14, 282, __pyx_L5_except_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_ErrRestore(__pyx_t_1, __pyx_t_6, __pyx_t_7);
    __pyx_t_1 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0;
    if (__pyx_t_9) {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/objclass.pxi":279
 * 
 *         i.perm_table = tclass._perm_table.copy()
 *         try:             # <<<<<<<<<<<<<<
 *             com = tclass.common
 *             i.perm_table.update(com._perm_table)
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    __pyx_L8_try_end:;
  }

  /* "setools/policyrep/objclass.pxi":285
 *             pass
 * 
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_6)) __PYX_ERR(14, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_7 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_7)) __PYX_ERR(14, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "setools/policyrep/objclass.pxi":286
 * 
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":270
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, ObjClass tclass, uint32_t vector):             # <<<<<<<<<<<<<<
 *         """Factory method for access vectors."""
 *         cdef Common com
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_com);
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":288
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef str name
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator___next__(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator___next__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/objclass.pxi":291
 *         cdef str name
 * 
 *         if not self.curr < self.perm_max:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((!((__pyx_v_self->curr < __pyx_v_self->perm_max) != 0)) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/objclass.pxi":292
 * 
 *         if not self.curr < self.perm_max:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         name = self.perm_table[self.curr + 1]
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(14, 292, __pyx_L1_error)

    /* "setools/policyrep/objclass.pxi":291
 *         cdef str name
 * 
 *         if not self.curr < self.perm_max:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/objclass.pxi":294
 *             raise StopIteration
 * 
 *         name = self.perm_table[self.curr + 1]             # <<<<<<<<<<<<<<
 * 
 *         self.curr += 1
 */
  if (unlikely(__pyx_v_self->perm_table == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(14, 294, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_self->curr + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_self->perm_table, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(14, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(14, 294, __pyx_L1_error)
  __pyx_v_name = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/objclass.pxi":296
 *         name = self.perm_table[self.curr + 1]
 * 
 *         self.curr += 1             # <<<<<<<<<<<<<<
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):
 *             self.curr += 1
 */
  __pyx_v_self->curr = (__pyx_v_self->curr + 1);

  /* "setools/policyrep/objclass.pxi":297
 * 
 *         self.curr += 1
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):             # <<<<<<<<<<<<<<
 *             self.curr += 1
 * 
 */
  while (1) {
    __pyx_t_4 = ((__pyx_v_self->curr < __pyx_v_self->perm_max) != 0);
    if (__pyx_t_4) {
    } else {
      __pyx_t_1 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = ((!((__pyx_v_self->vector & (1 << __pyx_v_self->curr)) != 0)) != 0);
    __pyx_t_1 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/objclass.pxi":298
 *         self.curr += 1
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):
 *             self.curr += 1             # <<<<<<<<<<<<<<
 * 
 *         return name
 */
    __pyx_v_self->curr = (__pyx_v_self->curr + 1);
  }

  /* "setools/policyrep/objclass.pxi":300
 *             self.curr += 1
 * 
 *         return name             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_name);
  __pyx_r = __pyx_v_name;
  goto __pyx_L0;

  /* "setools/policyrep/objclass.pxi":288
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef str name
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/objclass.pxi":302
 *         return name
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             uint32_t count = 0
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_2__len__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self) {
  uint32_t __pyx_v_count;
  uint32_t __pyx_v_curr;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/objclass.pxi":304
 *     def __len__(self):
 *         cdef:
 *             uint32_t count = 0             # <<<<<<<<<<<<<<
 *             uint32_t curr = 0
 * 
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/objclass.pxi":305
 *         cdef:
 *             uint32_t count = 0
 *             uint32_t curr = 0             # <<<<<<<<<<<<<<
 * 
 *         while curr < self.perm_max:
 */
  __pyx_v_curr = 0;

  /* "setools/policyrep/objclass.pxi":307
 *             uint32_t curr = 0
 * 
 *         while curr < self.perm_max:             # <<<<<<<<<<<<<<
 *             if self.vector & (1 << curr):
 *                 count += 1
 */
  while (1) {
    __pyx_t_1 = ((__pyx_v_curr < __pyx_v_self->perm_max) != 0);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/objclass.pxi":308
 * 
 *         while curr < self.perm_max:
 *             if self.vector & (1 << curr):             # <<<<<<<<<<<<<<
 *                 count += 1
 * 
 */
    __pyx_t_1 = ((__pyx_v_self->vector & (1 << __pyx_v_curr)) != 0);
    if (__pyx_t_1) {

      /* "setools/policyrep/objclass.pxi":309
 *         while curr < self.perm_max:
 *             if self.vector & (1 << curr):
 *                 count += 1             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
      __pyx_v_count = (__pyx_v_count + 1);

      /* "setools/policyrep/objclass.pxi":308
 * 
 *         while curr < self.perm_max:
 *             if self.vector & (1 << curr):             # <<<<<<<<<<<<<<
 *                 count += 1
 * 
 */
    }
  }

  /* "setools/policyrep/objclass.pxi":302
 *         return name
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             uint32_t count = 0
 */

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

/* "setools/policyrep/objclass.pxi":311
 *                 count += 1
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = 0
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_24PermissionVectorIterator_4reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_4reset(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_4reset(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/objclass.pxi":313
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = 0             # <<<<<<<<<<<<<<
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):
 *             self.curr += 1
 */
  __pyx_v_self->curr = 0;

  /* "setools/policyrep/objclass.pxi":314
 *         """Reset the iterator back to the start."""
 *         self.curr = 0
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):             # <<<<<<<<<<<<<<
 *             self.curr += 1
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_self->curr < __pyx_v_self->perm_max) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = ((!((__pyx_v_self->vector & (1 << __pyx_v_self->curr)) != 0)) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/objclass.pxi":315
 *         self.curr = 0
 *         while self.curr < self.perm_max and not self.vector & (1 << self.curr):
 *             self.curr += 1             # <<<<<<<<<<<<<<
 */
    __pyx_v_self->curr = (__pyx_v_self->curr + 1);
  }

  /* "setools/policyrep/objclass.pxi":311
 *                 count += 1
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = 0
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.curr, self.perm_max, self.perm_table, self.policy, self.vector)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->curr); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->perm_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->vector); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->perm_table);
  __Pyx_GIVEREF(__pyx_v_self->perm_table);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->perm_table);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_4, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.curr, self.perm_max, self.perm_table, self.policy, self.vector)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.curr, self.perm_max, self.perm_table, self.policy, self.vector)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.perm_table is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.curr, self.perm_max, self.perm_table, self.policy, self.vector)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.perm_table is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, None), state
 */
  /*else*/ {
    __pyx_t_5 = (__pyx_v_self->perm_table != ((PyObject*)Py_None));
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    __pyx_t_6 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.perm_table is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, None), state
 *     else:
 */
  __pyx_t_6 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":13
 *         use_setstate = self.perm_table is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_PermissionVectorI); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_209890851);
    __Pyx_GIVEREF(__pyx_int_209890851);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_209890851);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.perm_table is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, None), state
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_PermissionVectorI); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_209890851);
    __Pyx_GIVEREF(__pyx_int_209890851);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_209890851);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PermissionVectorIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_24PermissionVectorIterator_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_PermissionVectorIterator__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PermissionVectorIterator, (type(self), 0xc82ae23, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PermissionVectorIterator__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PermissionVectorIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":32
 *         uintptr_t key
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_12PolicyObject_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_12PolicyObject_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject___hash__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_12PolicyObject___hash__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/object.pxi":33
 * 
 *     def __hash__(self):
 *         return hash(str(self))             # <<<<<<<<<<<<<<
 * 
 *     def __copy__(self):
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(4, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":32
 *         uintptr_t key
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(str(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":35
 *         return hash(str(self))
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_3__copy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_3__copy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_2__copy__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_2__copy__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__copy__", 0);

  /* "setools/policyrep/object.pxi":37
 *     def __copy__(self):
 *         # Do not copy.
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __deepcopy__(self, memo):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":35
 *         return hash(str(self))
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
 */

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

/* "setools/policyrep/object.pxi":39
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_5__deepcopy__(PyObject *__pyx_v_self, PyObject *__pyx_v_memo); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_5__deepcopy__(PyObject *__pyx_v_self, PyObject *__pyx_v_memo) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_4__deepcopy__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((PyObject *)__pyx_v_memo));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_4__deepcopy__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_memo) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__deepcopy__", 0);

  /* "setools/policyrep/object.pxi":41
 *     def __deepcopy__(self, memo):
 *         # Do not copy.
 *         memo[id(self)] = self             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_1, ((PyObject *)__pyx_v_self)) < 0)) __PYX_ERR(4, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/object.pxi":42
 *         # Do not copy.
 *         memo[id(self)] = self
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":39
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":44
 *         return self
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             # This is a regular Python function, so it cannot
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_6__eq__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_6__eq__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/object.pxi":45
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             # This is a regular Python function, so it cannot
 *             # access the other.key (C) attribute since it is not
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/object.pxi":49
 *             # access the other.key (C) attribute since it is not
 *             # a public attribute.
 *             return self._eq(other)             # <<<<<<<<<<<<<<
 *         except TypeError:
 *             return str(self) == str(other)
 */
      __Pyx_XDECREF(__pyx_r);
      if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_7setools_9policyrep_PolicyObject))))) __PYX_ERR(4, 49, __pyx_L3_error)
      __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_f_7setools_9policyrep_12PolicyObject__eq(__pyx_v_self, ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_other))); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 49, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/object.pxi":45
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             # This is a regular Python function, so it cannot
 *             # access the other.key (C) attribute since it is not
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "setools/policyrep/object.pxi":50
 *             # a public attribute.
 *             return self._eq(other)
 *         except TypeError:             # <<<<<<<<<<<<<<
 *             return str(self) == str(other)
 * 
 */
    __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError);
    if (__pyx_t_5) {
      __Pyx_AddTraceback("setools.policyrep.PolicyObject.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(4, 50, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      /* "setools/policyrep/object.pxi":51
 *             return self._eq(other)
 *         except TypeError:
 *             return str(self) == str(other)             # <<<<<<<<<<<<<<
 * 
 *     cdef inline bint _eq(self, PolicyObject other):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 51, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 51, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_t_9, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(4, 51, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyBool_FromLong(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 51, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/object.pxi":45
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             # This is a regular Python function, so it cannot
 *             # access the other.key (C) attribute since it is not
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/object.pxi":44
 *         return self
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             # This is a regular Python function, so it cannot
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":53
 *             return str(self) == str(other)
 * 
 *     cdef inline bint _eq(self, PolicyObject other):             # <<<<<<<<<<<<<<
 *         """
 *         Low-level equality check for policy objects (C pointers).
 */

static CYTHON_INLINE int __pyx_f_7setools_9policyrep_12PolicyObject__eq(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_eq", 0);

  /* "setools/policyrep/object.pxi":60
 *         TypeError   other is not a PolicyObject.
 *         """
 *         return self.key == other.key             # <<<<<<<<<<<<<<
 * 
 *     def __ne__(self, other):
 */
  __pyx_r = (__pyx_v_self->key == __pyx_v_other->key);
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":53
 *             return str(self) == str(other)
 * 
 *     cdef inline bint _eq(self, PolicyObject other):             # <<<<<<<<<<<<<<
 *         """
 *         Low-level equality check for policy objects (C pointers).
 */

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

/* "setools/policyrep/object.pxi":62
 *         return self.key == other.key
 * 
 *     def __ne__(self, other):             # <<<<<<<<<<<<<<
 *         return not self == other
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__ne__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_8__ne__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_8__ne__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__ne__", 0);

  /* "setools/policyrep/object.pxi":63
 * 
 *     def __ne__(self, other):
 *         return not self == other             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_self), __pyx_v_other, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 63, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(4, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":62
 *         return self.key == other.key
 * 
 *     def __ne__(self, other):             # <<<<<<<<<<<<<<
 *         return not self == other
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__ne__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":65
 *         return not self == other
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_10__lt__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_10__lt__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/object.pxi":67
 *     def __lt__(self, other):
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":65
 *         return not self == other
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         # this is used by Python sorting functions
 *         return str(self) < str(other)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":69
 *         return str(self) < str(other)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.statement()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_13__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_13__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_12__str__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_12__str__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/object.pxi":70
 * 
 *     def __str__(self):
 *         return self.statement()             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_statement); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":69
 *         return str(self) < str(other)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.statement()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":72
 *         return self.statement()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<{0.__class__.__name__}({1}, \"{0}\")>".format(self, repr(self.policy))
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_14__repr__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_14__repr__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "setools/policyrep/object.pxi":73
 * 
 *     def __repr__(self):
 *         return "<{0.__class__.__name__}({1}, \"{0}\")>".format(self, repr(self.policy))             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0___class_____name___1_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_v_self->policy);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = PyObject_Repr(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  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 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 73, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __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, ((PyObject *)__pyx_v_self), __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 73, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":72
 *         return self.statement()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<{0.__class__.__name__}({1}, \"{0}\")>".format(self, repr(self.policy))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":75
 *         return "<{0.__class__.__name__}({1}, \"{0}\")>".format(self, repr(self.policy))
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """
 *         A rendering of the policy statement.  This should be
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_17statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_12PolicyObject_16statement[] = "\n        A rendering of the policy statement.  This should be\n        overridden by subclasses.\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_17statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_16statement(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_16statement(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/object.pxi":80
 *         overridden by subclasses.
 *         """
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(4, 80, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":75
 *         return "<{0.__class__.__name__}({1}, \"{0}\")>".format(self, repr(self.policy))
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         """
 *         A rendering of the policy statement.  This should be
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":29
 * 
 *     cdef:
 *         readonly SELinuxPolicy policy             # <<<<<<<<<<<<<<
 *         uintptr_t key
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_6policy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_6policy_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_6policy___get__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_6policy___get__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->policy));
  __pyx_r = ((PyObject *)__pyx_v_self->policy);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_19__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_19__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_18__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_18__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->policy));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->policy) != Py_None);
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_PolicyObject); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_98277146);
    __Pyx_GIVEREF(__pyx_int_98277146);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_98277146);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, None), state
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_PolicyObject); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_98277146);
    __Pyx_GIVEREF(__pyx_int_98277146);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_98277146);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_21__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicyObject_21__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicyObject_20__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicyObject_20__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyObject__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyObject, (type(self), 0x5db971a, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyObject__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyObject.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":89
 *     cdef readonly str name
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol___str__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol___str__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/object.pxi":90
 * 
 *     def __str__(self):
 *         return self.name             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":89
 *     cdef readonly str name
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */

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

/* "setools/policyrep/object.pxi":87
 *     """Base class for policy symbols (declared objects: types, users, etc.)"""
 * 
 *     cdef readonly str name             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_4name_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol_4name___get__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_4name___get__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->name);
  __Pyx_GIVEREF(__pyx_v_self->name);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->name != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_PolicySymbol); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_154850352);
    __Pyx_GIVEREF(__pyx_int_154850352);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_154850352);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, None), state
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_PolicySymbol); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_154850352);
    __Pyx_GIVEREF(__pyx_int_154850352);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_154850352);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.PolicySymbol.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12PolicySymbol_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12PolicySymbol_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_12PolicySymbol_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicySymbol__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicySymbol, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicySymbol__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicySymbol.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":97
 *     """Base class for most in-policy labeling statements, (portcon, nodecon, etc.)"""
 * 
 *     cdef readonly Context context             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_7context_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_7context_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Ocontext_7context___get__(((struct __pyx_obj_7setools_9policyrep_Ocontext *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext_7context___get__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->context));
  __pyx_r = ((PyObject *)__pyx_v_self->context);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Ocontext___reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Ocontext *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext___reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Ocontext); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_78114951);
    __Pyx_GIVEREF(__pyx_int_78114951);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_78114951);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, None), state
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Ocontext); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_78114951);
    __Pyx_GIVEREF(__pyx_int_78114951);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_78114951);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Ocontext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Ocontext_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Ocontext_2__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Ocontext *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Ocontext_2__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ocontext__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ocontext, (type(self), 0x4a7f087, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ocontext__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Ocontext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":109
 *     cdef SELinuxPolicy policy
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator___iter__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator___iter__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/object.pxi":110
 * 
 *     def __iter__(self):
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":109
 *     cdef SELinuxPolicy policy
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         return self
 * 
 */

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

/* "setools/policyrep/object.pxi":112
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_2__next__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_2__next__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/object.pxi":113
 * 
 *     def __next__(self):
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(4, 113, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":112
 *         return self
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":115
 *         raise NotImplementedError
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_4__len__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_14PolicyIterator_4__len__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/object.pxi":116
 * 
 *     def __len__(self):
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(4, 116, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":115
 *         raise NotImplementedError
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":118
 *         raise NotImplementedError
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         raise NotImplementedError
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_7reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_14PolicyIterator_6reset[] = "Reset the iterator to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_7reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_6reset(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_6reset(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/object.pxi":120
 *     def reset(self):
 *         """Reset the iterator to the start."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(4, 120, __pyx_L1_error)

  /* "setools/policyrep/object.pxi":118
 *         raise NotImplementedError
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         raise NotImplementedError
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.policy,)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->policy));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->policy));
  __pyx_v_state = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.policy,)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = (self.policy,)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.policy,)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->policy) != Py_None);
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, None), state
 *     else:
 */
  __pyx_t_3 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_3) {

    /* "(tree fragment)":13
 *         use_setstate = self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_PolicyIterator); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_256571573);
    __Pyx_GIVEREF(__pyx_int_256571573);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_256571573);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, None), state
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_PolicyIterator); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_256571573);
    __Pyx_GIVEREF(__pyx_int_256571573);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_256571573);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14PolicyIterator_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14PolicyIterator_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_14PolicyIterator_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyIterator__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyIterator, (type(self), 0xf4af8b5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyIterator__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":144
 *         size_t bit
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr >= self.bmap.highbit:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  size_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/object.pxi":145
 * 
 *     def __next__(self):
 *         if self.curr >= self.bmap.highbit:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr >= __pyx_v_self->bmap->highbit) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/object.pxi":146
 *     def __next__(self):
 *         if self.curr >= self.bmap.highbit:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         # Returning the object is delegated
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(4, 146, __pyx_L1_error)

    /* "setools/policyrep/object.pxi":145
 * 
 *     def __next__(self):
 *         if self.curr >= self.bmap.highbit:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/object.pxi":151
 *         # to subclasses which should returning
 *         # the object based off of self.bit
 *         self.bit = self.curr             # <<<<<<<<<<<<<<
 * 
 *         self.curr = sepol.ebitmap_next(&self.node, self.curr)
 */
  __pyx_t_2 = __pyx_v_self->curr;
  __pyx_v_self->bit = __pyx_t_2;

  /* "setools/policyrep/object.pxi":153
 *         self.bit = self.curr
 * 
 *         self.curr = sepol.ebitmap_next(&self.node, self.curr)             # <<<<<<<<<<<<<<
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 */
  __pyx_v_self->curr = ebitmap_next((&__pyx_v_self->node), __pyx_v_self->curr);

  /* "setools/policyrep/object.pxi":154
 * 
 *         self.curr = sepol.ebitmap_next(&self.node, self.curr)
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):             # <<<<<<<<<<<<<<
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 * 
 */
  while (1) {
    __pyx_t_3 = ((__pyx_v_self->curr < __pyx_v_self->bmap->highbit) != 0);
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = ((!(ebitmap_node_get_bit(__pyx_v_self->node, __pyx_v_self->curr) != 0)) != 0);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L6_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/object.pxi":155
 *         self.curr = sepol.ebitmap_next(&self.node, self.curr)
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
    __pyx_v_self->curr = ebitmap_next((&__pyx_v_self->node), __pyx_v_self->curr);
  }

  /* "setools/policyrep/object.pxi":144
 *         size_t bit
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr >= self.bmap.highbit:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.EbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":157
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.ebitmap_node_t *node
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_15EbitmapIterator_2__len__(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self) {
  ebitmap_node_t *__pyx_v_node;
  size_t __pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/object.pxi":161
 *             sepol.ebitmap_node_t *node
 *             size_t curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         count = 0
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/object.pxi":163
 *             size_t count = 0
 * 
 *         count = 0             # <<<<<<<<<<<<<<
 *         curr = sepol.ebitmap_start(self.bmap, &node)
 *         while curr < self.bmap.highbit:
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/object.pxi":164
 * 
 *         count = 0
 *         curr = sepol.ebitmap_start(self.bmap, &node)             # <<<<<<<<<<<<<<
 *         while curr < self.bmap.highbit:
 *             count += sepol.ebitmap_node_get_bit(node, curr)
 */
  __pyx_v_curr = ebitmap_start(__pyx_v_self->bmap, (&__pyx_v_node));

  /* "setools/policyrep/object.pxi":165
 *         count = 0
 *         curr = sepol.ebitmap_start(self.bmap, &node)
 *         while curr < self.bmap.highbit:             # <<<<<<<<<<<<<<
 *             count += sepol.ebitmap_node_get_bit(node, curr)
 *             curr = sepol.ebitmap_next(&node, curr)
 */
  while (1) {
    __pyx_t_1 = ((__pyx_v_curr < __pyx_v_self->bmap->highbit) != 0);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/object.pxi":166
 *         curr = sepol.ebitmap_start(self.bmap, &node)
 *         while curr < self.bmap.highbit:
 *             count += sepol.ebitmap_node_get_bit(node, curr)             # <<<<<<<<<<<<<<
 *             curr = sepol.ebitmap_next(&node, curr)
 * 
 */
    __pyx_v_count = (__pyx_v_count + ebitmap_node_get_bit(__pyx_v_node, __pyx_v_curr));

    /* "setools/policyrep/object.pxi":167
 *         while curr < self.bmap.highbit:
 *             count += sepol.ebitmap_node_get_bit(node, curr)
 *             curr = sepol.ebitmap_next(&node, curr)             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_v_curr = ebitmap_next((&__pyx_v_node), __pyx_v_curr);
  }

  /* "setools/policyrep/object.pxi":169
 *             curr = sepol.ebitmap_next(&node, curr)
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":157
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.ebitmap_node_t *node
 */

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

/* "setools/policyrep/object.pxi":171
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = sepol.ebitmap_start(self.bmap, &self.node)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_15EbitmapIterator_4reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator_4reset(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_4reset(struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/object.pxi":173
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = sepol.ebitmap_start(self.bmap, &self.node)             # <<<<<<<<<<<<<<
 * 
 *         # advance to first set bit
 */
  __pyx_v_self->curr = ebitmap_start(__pyx_v_self->bmap, (&__pyx_v_self->node));

  /* "setools/policyrep/object.pxi":176
 * 
 *         # advance to first set bit
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):             # <<<<<<<<<<<<<<
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)
 * 
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_self->curr < __pyx_v_self->bmap->highbit) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = ((!(ebitmap_node_get_bit(__pyx_v_self->node, __pyx_v_self->curr) != 0)) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "setools/policyrep/object.pxi":177
 *         # advance to first set bit
 *         while self.curr < self.bmap.highbit and not sepol.ebitmap_node_get_bit(self.node, self.curr):
 *             self.curr = sepol.ebitmap_next(&self.node, self.curr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_v_self->curr = ebitmap_next((&__pyx_v_self->node), __pyx_v_self->curr);
  }

  /* "setools/policyrep/object.pxi":171
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = sepol.ebitmap_start(self.bmap, &self.node)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__65, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.EbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15EbitmapIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_EbitmapIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_15EbitmapIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_EbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.EbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":201
 *         unsigned int bucket
 * 
 *     cdef void _next_bucket(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 */

static void __pyx_f_7setools_9policyrep_15HashtabIterator__next_bucket(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("_next_bucket", 0);

  /* "setools/policyrep/object.pxi":203
 *     cdef void _next_bucket(self):
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1             # <<<<<<<<<<<<<<
 *         if self.bucket < self.table[0].size:
 *             self.node = self.table[0].htable[self.bucket]
 */
  __pyx_v_self->bucket = (__pyx_v_self->bucket + 1);

  /* "setools/policyrep/object.pxi":204
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 *         if self.bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             self.node = self.table[0].htable[self.bucket]
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_self->bucket < (__pyx_v_self->table[0])->size) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/object.pxi":205
 *         self.bucket += 1
 *         if self.bucket < self.table[0].size:
 *             self.node = self.table[0].htable[self.bucket]             # <<<<<<<<<<<<<<
 *         else:
 *             self.node = NULL
 */
    __pyx_v_self->node = ((__pyx_v_self->table[0])->htable[__pyx_v_self->bucket]);

    /* "setools/policyrep/object.pxi":204
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 *         if self.bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             self.node = self.table[0].htable[self.bucket]
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/object.pxi":207
 *             self.node = self.table[0].htable[self.bucket]
 *         else:
 *             self.node = NULL             # <<<<<<<<<<<<<<
 * 
 *     cdef void _next_node(self):
 */
  /*else*/ {
    __pyx_v_self->node = NULL;
  }
  __pyx_L3:;

  /* "setools/policyrep/object.pxi":201
 *         unsigned int bucket
 * 
 *     cdef void _next_bucket(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 */

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

/* "setools/policyrep/object.pxi":209
 *             self.node = NULL
 * 
 *     cdef void _next_node(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
 */

static void __pyx_f_7setools_9policyrep_15HashtabIterator__next_node(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  struct hashtab_node *__pyx_t_3;
  __Pyx_RefNannySetupContext("_next_node", 0);

  /* "setools/policyrep/object.pxi":211
 *     cdef void _next_node(self):
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:             # <<<<<<<<<<<<<<
 *             self.node = self.node.next
 *         else:
 */
  __pyx_t_2 = ((__pyx_v_self->node != NULL) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->node->next != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "setools/policyrep/object.pxi":212
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
 *             self.node = self.node.next             # <<<<<<<<<<<<<<
 *         else:
 *             self._next_bucket()
 */
    __pyx_t_3 = __pyx_v_self->node->next;
    __pyx_v_self->node = __pyx_t_3;

    /* "setools/policyrep/object.pxi":211
 *     cdef void _next_node(self):
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:             # <<<<<<<<<<<<<<
 *             self.node = self.node.next
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/object.pxi":214
 *             self.node = self.node.next
 *         else:
 *             self._next_bucket()             # <<<<<<<<<<<<<<
 *             while self.bucket < self.table[0].size and self.node == NULL:
 *                 self._next_bucket()
 */
  /*else*/ {
    ((struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *)__pyx_v_self->__pyx_vtab)->_next_bucket(__pyx_v_self);

    /* "setools/policyrep/object.pxi":215
 *         else:
 *             self._next_bucket()
 *             while self.bucket < self.table[0].size and self.node == NULL:             # <<<<<<<<<<<<<<
 *                 self._next_bucket()
 * 
 */
    while (1) {
      __pyx_t_2 = ((__pyx_v_self->bucket < (__pyx_v_self->table[0])->size) != 0);
      if (__pyx_t_2) {
      } else {
        __pyx_t_1 = __pyx_t_2;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_2 = ((__pyx_v_self->node == NULL) != 0);
      __pyx_t_1 = __pyx_t_2;
      __pyx_L8_bool_binop_done:;
      if (!__pyx_t_1) break;

      /* "setools/policyrep/object.pxi":216
 *             self._next_bucket()
 *             while self.bucket < self.table[0].size and self.node == NULL:
 *                 self._next_bucket()             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
      ((struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *)__pyx_v_self->__pyx_vtab)->_next_bucket(__pyx_v_self);
    }
  }
  __pyx_L3:;

  /* "setools/policyrep/object.pxi":209
 *             self.node = NULL
 * 
 *     cdef void _next_node(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
 */

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

/* "setools/policyrep/object.pxi":218
 *                 self._next_bucket()
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         #
 *         # Note: cython does not support the regular C pointer
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  hashtab_node_t *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/object.pxi":224
 *         # to dereference self.table.
 *         #
 *         if self.table[0] == NULL or self.table[0].nel == 0 or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_2 = (((__pyx_v_self->table[0]) == NULL) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (((__pyx_v_self->table[0])->nel == 0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->bucket >= (__pyx_v_self->table[0])->size) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/object.pxi":225
 *         #
 *         if self.table[0] == NULL or self.table[0].nel == 0 or self.bucket >= self.table[0].size:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         # Returning the object is delegated
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(4, 225, __pyx_L1_error)

    /* "setools/policyrep/object.pxi":224
 *         # to dereference self.table.
 *         #
 *         if self.table[0] == NULL or self.table[0].nel == 0 or self.bucket >= self.table[0].size:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/object.pxi":231
 *         # the objects based off of
 *         # self.node.key and/or self.node.datum
 *         self.curr = self.node             # <<<<<<<<<<<<<<
 *         self._next_node()
 * 
 */
  __pyx_t_3 = __pyx_v_self->node;
  __pyx_v_self->curr = __pyx_t_3;

  /* "setools/policyrep/object.pxi":232
 *         # self.node.key and/or self.node.datum
 *         self.curr = self.node
 *         self._next_node()             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  ((struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *)__pyx_v_self->__pyx_vtab)->_next_node(__pyx_v_self);

  /* "setools/policyrep/object.pxi":218
 *                 self._next_bucket()
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         #
 *         # Note: cython does not support the regular C pointer
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.HashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":234
 *         self._next_node()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.table[0].nel
 * 
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_15HashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/object.pxi":235
 * 
 *     def __len__(self):
 *         return self.table[0].nel             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = (__pyx_v_self->table[0])->nel;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":234
 *         self._next_node()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.table[0].nel
 * 
 */

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

/* "setools/policyrep/object.pxi":237
 *         return self.table[0].nel
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table[0].htable[0]
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_15HashtabIterator_4reset[] = "Reset the iterator to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/object.pxi":239
 *     def reset(self):
 *         """Reset the iterator to the start."""
 *         self.node = self.table[0].htable[0]             # <<<<<<<<<<<<<<
 * 
 *         # advance to first item
 */
  __pyx_v_self->node = ((__pyx_v_self->table[0])->htable[0]);

  /* "setools/policyrep/object.pxi":242
 * 
 *         # advance to first item
 *         if self.node == NULL:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->node == NULL) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/object.pxi":243
 *         # advance to first item
 *         if self.node == NULL:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    ((struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator *)__pyx_v_self->__pyx_vtab)->_next_node(__pyx_v_self);

    /* "setools/policyrep/object.pxi":242
 * 
 *         # advance to first item
 *         if self.node == NULL:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  }

  /* "setools/policyrep/object.pxi":237
 *         return self.table[0].nel
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table[0].htable[0]
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__67, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.HashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15HashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15HashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_15HashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_HashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.HashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":266
 *         sepol.ocontext_t *curr
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16OcontextIterator___next__(((struct __pyx_obj_7setools_9policyrep_OcontextIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator___next__(struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  ocontext_t *__pyx_t_2;
  struct ocontext *__pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/object.pxi":267
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/object.pxi":268
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         # Returning the object is delegated
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(4, 268, __pyx_L1_error)

    /* "setools/policyrep/object.pxi":267
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/object.pxi":273
 *         # to subclasses which should returning
 *         # the ocon based off of self.ocon
 *         self.ocon = self.curr             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 * 
 */
  __pyx_t_2 = __pyx_v_self->curr;
  __pyx_v_self->ocon = __pyx_t_2;

  /* "setools/policyrep/object.pxi":274
 *         # the ocon based off of self.ocon
 *         self.ocon = self.curr
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __pyx_t_3 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_3;

  /* "setools/policyrep/object.pxi":266
 *         sepol.ocontext_t *curr
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.OcontextIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/object.pxi":276
 *         self.curr = self.curr.next
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count = 0
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16OcontextIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_OcontextIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_16OcontextIterator_2__len__(struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self) {
  size_t __pyx_v_count;
  ocontext_t *__pyx_v_ocon;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  ocontext_t *__pyx_t_1;
  int __pyx_t_2;
  struct ocontext *__pyx_t_3;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/object.pxi":278
 *     def __len__(self):
 *         cdef:
 *             size_t count = 0             # <<<<<<<<<<<<<<
 *             sepol.ocontext_t *ocon = self.head
 * 
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/object.pxi":279
 *         cdef:
 *             size_t count = 0
 *             sepol.ocontext_t *ocon = self.head             # <<<<<<<<<<<<<<
 * 
 *         while ocon:
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_ocon = __pyx_t_1;

  /* "setools/policyrep/object.pxi":281
 *             sepol.ocontext_t *ocon = self.head
 * 
 *         while ocon:             # <<<<<<<<<<<<<<
 *             count += 1
 *             ocon = ocon.next
 */
  while (1) {
    __pyx_t_2 = (__pyx_v_ocon != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/object.pxi":282
 * 
 *         while ocon:
 *             count += 1             # <<<<<<<<<<<<<<
 *             ocon = ocon.next
 * 
 */
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/object.pxi":283
 *         while ocon:
 *             count += 1
 *             ocon = ocon.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_3 = __pyx_v_ocon->next;
    __pyx_v_ocon = __pyx_t_3;
  }

  /* "setools/policyrep/object.pxi":285
 *             ocon = ocon.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/object.pxi":276
 *         self.curr = self.curr.next
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count = 0
 */

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16OcontextIterator_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_OcontextIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__69, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.OcontextIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16OcontextIterator_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16OcontextIterator_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_OcontextIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_16OcontextIterator_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_OcontextIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.OcontextIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":27
 * 
 *     @staticmethod
 *     cdef inline PolicyCapability factory(SELinuxPolicy policy, size_t bit):             # <<<<<<<<<<<<<<
 *         """Factory function for creating PolicyCapability objects."""
 *         cdef PolicyCapability r = PolicyCapability.__new__(PolicyCapability)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_f_7setools_9policyrep_16PolicyCapability_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, size_t __pyx_v_bit) {
  struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/polcap.pxi":29
 *     cdef inline PolicyCapability factory(SELinuxPolicy policy, size_t bit):
 *         """Factory function for creating PolicyCapability objects."""
 *         cdef PolicyCapability r = PolicyCapability.__new__(PolicyCapability)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.name = intern(sepol.sepol_polcap_getname(bit))
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_PolicyCapability(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_PolicyCapability), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 29, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/polcap.pxi":30
 *         """Factory function for creating PolicyCapability objects."""
 *         cdef PolicyCapability r = PolicyCapability.__new__(PolicyCapability)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.name = intern(sepol.sepol_polcap_getname(bit))
 *         return r
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/polcap.pxi":31
 *         cdef PolicyCapability r = PolicyCapability.__new__(PolicyCapability)
 *         r.policy = policy
 *         r.name = intern(sepol.sepol_polcap_getname(bit))             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __pyx_t_1 = __Pyx_PyStr_FromString(sepol_polcap_getname(__pyx_v_bit)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(15, 31, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.name);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.name);
  __pyx_v_r->__pyx_base.name = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/polcap.pxi":32
 *         r.policy = policy
 *         r.name = intern(sepol.sepol_polcap_getname(bit))
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":27
 * 
 *     @staticmethod
 *     cdef inline PolicyCapability factory(SELinuxPolicy policy, size_t bit):             # <<<<<<<<<<<<<<
 *         """Factory function for creating PolicyCapability objects."""
 *         cdef PolicyCapability r = PolicyCapability.__new__(PolicyCapability)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":34
 *         return r
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self.policy == other.policy \
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_1__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability___eq__(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability___eq__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "setools/policyrep/polcap.pxi":35
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.policy == other.policy \
 *                 and self.name == other.name
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/polcap.pxi":36
 *     def __eq__(self, other):
 *         try:
 *             return self.policy == other.policy \             # <<<<<<<<<<<<<<
 *                 and self.name == other.name
 *         except AttributeError:
 */
      __Pyx_XDECREF(__pyx_r);

      /* "setools/policyrep/polcap.pxi":37
 *         try:
 *             return self.policy == other.policy \
 *                 and self.name == other.name             # <<<<<<<<<<<<<<
 *         except AttributeError:
 *             return self.name == str(other)
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_policy); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 36, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyObject_RichCompare(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy), __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 36, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(15, 36, __pyx_L3_error)
      if (__pyx_t_7) {
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_4 = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(15, 37, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyObject_RichCompare(__pyx_v_self->__pyx_base.name, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(15, 37, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_4 = __pyx_t_5;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_L9_bool_binop_done:;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/polcap.pxi":35
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.policy == other.policy \
 *                 and self.name == other.name
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "setools/policyrep/polcap.pxi":38
 *             return self.policy == other.policy \
 *                 and self.name == other.name
 *         except AttributeError:             # <<<<<<<<<<<<<<
 *             return self.name == str(other)
 * 
 */
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
    if (__pyx_t_8) {
      __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(15, 38, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);

      /* "setools/policyrep/polcap.pxi":39
 *                 and self.name == other.name
 *         except AttributeError:
 *             return self.name == str(other)             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 39, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_self->__pyx_base.name, __pyx_t_9, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(15, 39, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(15, 39, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_r = __pyx_t_9;
      __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/polcap.pxi":35
 * 
 *     def __eq__(self, other):
 *         try:             # <<<<<<<<<<<<<<
 *             return self.policy == other.policy \
 *                 and self.name == other.name
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/polcap.pxi":34
 *         return r
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         try:
 *             return self.policy == other.policy \
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":41
 *             return self.name == str(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_16PolicyCapability_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_16PolicyCapability_3__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability_2__hash__(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_16PolicyCapability_2__hash__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_hash_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/polcap.pxi":42
 * 
 *     def __hash__(self):
 *         return hash(self.name)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __pyx_t_1 = __pyx_v_self->__pyx_base.name;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(15, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":41
 *             return self.name == str(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":44
 *         return hash(self.name)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "policycap {0};".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_5statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability_4statement(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_4statement(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/polcap.pxi":45
 * 
 *     def statement(self):
 *         return "policycap {0};".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_policycap_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":44
 *         return hash(self.name)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "policycap {0};".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_PolicyCapability); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_154850352);
    __Pyx_GIVEREF(__pyx_int_154850352);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_154850352);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, None), state
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_PolicyCapability); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_154850352);
    __Pyx_GIVEREF(__pyx_int_154850352);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_154850352);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16PolicyCapability_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16PolicyCapability_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_16PolicyCapability_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyCapability__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyCapability, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyCapability__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapability.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":53
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating PolicyCapability iterators."""
 *         i = PolicyCapabilityIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_24PolicyCapabilityIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/polcap.pxi":55
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating PolicyCapability iterators."""
 *         i = PolicyCapabilityIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/polcap.pxi":56
 *         """Factory function for creating PolicyCapability iterators."""
 *         i = PolicyCapabilityIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/polcap.pxi":57
 *         i = PolicyCapabilityIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/polcap.pxi":58
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/polcap.pxi":59
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":53
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating PolicyCapability iterators."""
 *         i = PolicyCapabilityIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/polcap.pxi":61
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return PolicyCapability.factory(self.policy, self.bit)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator___next__(((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator___next__(struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/polcap.pxi":62
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return PolicyCapability.factory(self.policy, self.bit)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(15, 62, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 62, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/polcap.pxi":63
 *     def __next__(self):
 *         super().__next__()
 *         return PolicyCapability.factory(self.policy, self.bit)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_16PolicyCapability_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.bit)); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/polcap.pxi":61
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return PolicyCapability.factory(self.policy, self.bit)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_24PolicyCapabilityIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyCapabilityIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":43
 * 
 *     @staticmethod
 *     cdef inline RoleAllow factory(SELinuxPolicy policy, sepol.role_allow_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating RoleAllow objects."""
 *         cdef RoleAllow r = RoleAllow.__new__(RoleAllow)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_f_7setools_9policyrep_9RoleAllow_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_allow_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/rbacrule.pxi":45
 *     cdef inline RoleAllow factory(SELinuxPolicy policy, sepol.role_allow_t *symbol):
 *         """Factory function for creating RoleAllow objects."""
 *         cdef RoleAllow r = RoleAllow.__new__(RoleAllow)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_RoleAllow(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_RoleAllow), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 45, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":46
 *         """Factory function for creating RoleAllow objects."""
 *         cdef RoleAllow r = RoleAllow.__new__(RoleAllow)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.allow
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/rbacrule.pxi":47
 *         cdef RoleAllow r = RoleAllow.__new__(RoleAllow)
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         r.ruletype = RBACRuletype.allow
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 */
  __pyx_v_r->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/rbacrule.pxi":48
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.allow             # <<<<<<<<<<<<<<
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RBACRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_allow); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":49
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.allow
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))             # <<<<<<<<<<<<<<
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->role - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.source);
  __pyx_v_r->__pyx_base.source = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":50
 *         r.ruletype = RBACRuletype.allow
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         return r
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->new_role - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.target);
  __pyx_v_r->__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":51
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.origin);
  __pyx_v_r->__pyx_base.origin = Py_None;

  /* "setools/policyrep/rbacrule.pxi":52
 *         r.target = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":43
 * 
 *     @staticmethod
 *     cdef inline RoleAllow factory(SELinuxPolicy policy, sepol.role_allow_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating RoleAllow objects."""
 *         cdef RoleAllow r = RoleAllow.__new__(RoleAllow)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":54
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_9RoleAllow_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_9RoleAllow_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow___hash__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_9RoleAllow___hash__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/rbacrule.pxi":55
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(16, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":54
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":57
 *         return hash("{0.ruletype}|{0.source}|{0.target}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_2__lt__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_2__lt__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/rbacrule.pxi":58
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":57
 *         return hash("{0.ruletype}|{0.source}|{0.target}".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":61
 * 
 *     @property
 *     def tclass(self):             # <<<<<<<<<<<<<<
 *         """The rule's object class."""
 *         raise RuleUseError("Role allow rules do not have an object class.")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_6tclass_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_6tclass___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rbacrule.pxi":63
 *     def tclass(self):
 *         """The rule's object class."""
 *         raise RuleUseError("Role allow rules do not have an object class.")             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_Role_allow_rules_do_not_have_an) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_Role_allow_rules_do_not_have_an);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(16, 63, __pyx_L1_error)

  /* "setools/policyrep/rbacrule.pxi":61
 * 
 *     @property
 *     def tclass(self):             # <<<<<<<<<<<<<<
 *         """The rule's object class."""
 *         raise RuleUseError("Role allow rules do not have an object class.")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.tclass.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":66
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default role."""
 *         raise RuleUseError("Role allow rules do not have a default role.")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_7default_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_7default___get__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_7default___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rbacrule.pxi":68
 *     def default(self):
 *         """The rule's default role."""
 *         raise RuleUseError("Role allow rules do not have a default role.")             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_Role_allow_rules_do_not_have_a_d) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_Role_allow_rules_do_not_have_a_d);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(16, 68, __pyx_L1_error)

  /* "setools/policyrep/rbacrule.pxi":66
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default role."""
 *         raise RuleUseError("Role allow rules do not have a default role.")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.default.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_9RoleAllow_6generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/rbacrule.pxi":70
 *         raise RuleUseError("Role allow rules do not have a default role.")
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_9RoleAllow_4expand[] = "Expand the rule into an equivalent set of rules without attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_4expand(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_4expand(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(16, 70, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_9RoleAllow_6generator2, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_RoleAllow_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(16, 70, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_9RoleAllow_6generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *(*__pyx_t_12)(PyObject *);
  uintptr_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L10_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(16, 70, __pyx_L1_error)

  /* "setools/policyrep/rbacrule.pxi":73
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.origin == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/rbacrule.pxi":74
 *         cdef RoleAllow r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 *                 r = RoleAllow.__new__(RoleAllow)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(16, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.source, __pyx_n_s_expand); if (unlikely(!__pyx_t_6)) __PYX_ERR(16, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.target, __pyx_n_s_expand); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(16, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 74, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 74, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_6);
      __pyx_t_4 = 0;
      __pyx_t_6 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 74, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __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(16, 74, __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(16, 74, __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(16, 74, __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(16, 74, __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(16, 74, __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(16, 74, __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(16, 74, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(16, 74, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 74, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(16, 74, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 74, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_4), 2) < 0) __PYX_ERR(16, 74, __pyx_L1_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(16, 74, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/rbacrule.pxi":76
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 *                 r = RoleAllow.__new__(RoleAllow)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
 */
      __pyx_t_3 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_RoleAllow(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_RoleAllow), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 76, __pyx_L1_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_t_3));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "setools/policyrep/rbacrule.pxi":77
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 *                 r = RoleAllow.__new__(RoleAllow)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/rbacrule.pxi":78
 *                 r = RoleAllow.__new__(RoleAllow)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 */
      __pyx_t_13 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.key = __pyx_t_13;

      /* "setools/policyrep/rbacrule.pxi":79
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "setools/policyrep/rbacrule.pxi":80
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.origin = self
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/rbacrule.pxi":81
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/rbacrule.pxi":82
 *                 r.source = s
 *                 r.target = t
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/rbacrule.pxi":83
 *                 r.target = t
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_10;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_11;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_11 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(16, 83, __pyx_L1_error)

      /* "setools/policyrep/rbacrule.pxi":74
 *         cdef RoleAllow r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 *                 r = RoleAllow.__new__(RoleAllow)
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/rbacrule.pxi":73
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 """Factory function for creating ExpandedRoleAllow objects."""
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/rbacrule.pxi":87
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L10_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(16, 87, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/rbacrule.pxi":70
 *         raise RuleUseError("Role allow rules do not have a default role.")
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleAllow r
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":89
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.source} {0.target};".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_7statement(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_7statement(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/rbacrule.pxi":90
 * 
 *     def statement(self):
 *         return "{0.ruletype} {0.source} {0.target};".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":89
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.source} {0.target};".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->__pyx_base.origin);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.source);
  PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->__pyx_base.source);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.target);
  PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.target);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->__pyx_base.origin != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.source != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.target != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_RoleAllow); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_173396620);
    __Pyx_GIVEREF(__pyx_int_173396620);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_173396620);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, None), state
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_RoleAllow); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_173396620);
    __Pyx_GIVEREF(__pyx_int_173396620);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_173396620);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9RoleAllow_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9RoleAllow_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_9RoleAllow_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_RoleAllow__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleAllow, (type(self), 0xa55d28c, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleAllow__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleAllow.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":102
 * 
 *     @staticmethod
 *     cdef inline RoleTransition factory(SELinuxPolicy policy,             # <<<<<<<<<<<<<<
 *                                        sepol.role_trans_t *symbol):
 *         """Factory function for creating RoleTransition objects."""
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_f_7setools_9policyrep_14RoleTransition_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_trans_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/rbacrule.pxi":105
 *                                        sepol.role_trans_t *symbol):
 *         """Factory function for creating RoleTransition objects."""
 *         cdef RoleTransition r = RoleTransition.__new__(RoleTransition)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_RoleTransition(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_RoleTransition), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 105, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":106
 *         """Factory function for creating RoleTransition objects."""
 *         cdef RoleTransition r = RoleTransition.__new__(RoleTransition)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.role_transition
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/rbacrule.pxi":107
 *         cdef RoleTransition r = RoleTransition.__new__(RoleTransition)
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         r.ruletype = RBACRuletype.role_transition
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 */
  __pyx_v_r->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/rbacrule.pxi":108
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.role_transition             # <<<<<<<<<<<<<<
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RBACRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_role_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":109
 *         r.key = <uintptr_t>symbol
 *         r.ruletype = RBACRuletype.role_transition
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->role - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.source);
  __pyx_v_r->__pyx_base.source = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":110
 *         r.ruletype = RBACRuletype.role_transition
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))
 *         r.dft = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->type - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.target);
  __pyx_v_r->__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":111
 *         r.source = Role.factory(policy, policy.role_value_to_datum(symbol.role - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))             # <<<<<<<<<<<<<<
 *         r.dft = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->tclass - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->tclass));
  __pyx_v_r->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":112
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(symbol.type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))
 *         r.dft = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))             # <<<<<<<<<<<<<<
 *         r.origin = None
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_policy, (__pyx_v_symbol->new_role - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->dft);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->dft));
  __pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":113
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(symbol.tclass - 1))
 *         r.dft = Role.factory(policy, policy.role_value_to_datum(symbol.new_role - 1))
 *         r.origin = None             # <<<<<<<<<<<<<<
 * 
 *         return r
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.origin);
  __pyx_v_r->__pyx_base.origin = Py_None;

  /* "setools/policyrep/rbacrule.pxi":115
 *         r.origin = None
 * 
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":102
 * 
 *     @staticmethod
 *     cdef inline RoleTransition factory(SELinuxPolicy policy,             # <<<<<<<<<<<<<<
 *                                        sepol.role_trans_t *symbol):
 *         """Factory function for creating RoleTransition objects."""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":117
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))
 * 
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_14RoleTransition_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_14RoleTransition_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition___hash__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_14RoleTransition___hash__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_hash_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/rbacrule.pxi":118
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(16, 118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":117
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":120
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_2__lt__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_2__lt__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/rbacrule.pxi":121
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 121, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":120
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|None|None".format(self))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":124
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default role."""
 *         return self.dft
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_7default_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_7default___get__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_7default___get__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rbacrule.pxi":126
 *     def default(self):
 *         """The rule's default role."""
 *         return self.dft             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->dft));
  __pyx_r = ((PyObject *)__pyx_v_self->dft);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":124
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default role."""
 *         return self.dft
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_14RoleTransition_6generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/rbacrule.pxi":128
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_14RoleTransition_4expand[] = "Expand the rule into an equivalent set of rules without attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_4expand(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_4expand(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(16, 128, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_14RoleTransition_6generator3, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_RoleTransition_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(16, 128, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_14RoleTransition_6generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *(*__pyx_t_12)(PyObject *);
  uintptr_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L10_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(16, 128, __pyx_L1_error)

  /* "setools/policyrep/rbacrule.pxi":131
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = RoleTransition.__new__(RoleTransition)
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.origin == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/rbacrule.pxi":132
 *         cdef RoleTransition r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = RoleTransition.__new__(RoleTransition)
 *                 r.policy = self.policy
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(16, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.source, __pyx_n_s_expand); if (unlikely(!__pyx_t_6)) __PYX_ERR(16, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.target, __pyx_n_s_expand); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(16, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 132, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 132, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_6);
      __pyx_t_4 = 0;
      __pyx_t_6 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __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(16, 132, __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(16, 132, __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(16, 132, __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(16, 132, __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(16, 132, __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(16, 132, __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(16, 132, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(16, 132, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(16, 132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_4), 2) < 0) __PYX_ERR(16, 132, __pyx_L1_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(16, 132, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/rbacrule.pxi":133
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = RoleTransition.__new__(RoleTransition)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
 */
      __pyx_t_3 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_RoleTransition(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_RoleTransition), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 133, __pyx_L1_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_t_3));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "setools/policyrep/rbacrule.pxi":134
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = RoleTransition.__new__(RoleTransition)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/rbacrule.pxi":135
 *                 r = RoleTransition.__new__(RoleTransition)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 */
      __pyx_t_13 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.key = __pyx_t_13;

      /* "setools/policyrep/rbacrule.pxi":136
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.ruletype = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "setools/policyrep/rbacrule.pxi":137
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/rbacrule.pxi":138
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/rbacrule.pxi":139
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.dft = self.dft
 *                 r.origin = self
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->tclass);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->tclass);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->tclass));
      __pyx_cur_scope->__pyx_v_r->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/rbacrule.pxi":140
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->dft);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->dft);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->dft));
      __pyx_cur_scope->__pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/rbacrule.pxi":141
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/rbacrule.pxi":142
 *                 r.dft = self.dft
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_10;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_11;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_11 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(16, 142, __pyx_L1_error)

      /* "setools/policyrep/rbacrule.pxi":132
 *         cdef RoleTransition r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = RoleTransition.__new__(RoleTransition)
 *                 r.policy = self.policy
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/rbacrule.pxi":131
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = RoleTransition.__new__(RoleTransition)
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/rbacrule.pxi":146
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L10_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(16, 146, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/rbacrule.pxi":128
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef RoleTransition r
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":148
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_7statement(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_7statement(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/rbacrule.pxi":149
 * 
 *     def statement(self):
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":148
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":98
 * 
 *     cdef:
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         Role dft
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_6tclass_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_6tclass___get__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.dft, self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(9); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->dft));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dft));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->dft));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_self->__pyx_base.origin);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.source);
  PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->__pyx_base.source);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.target);
  PyTuple_SET_ITEM(__pyx_t_3, 7, __pyx_v_self->__pyx_base.target);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tclass));
  PyTuple_SET_ITEM(__pyx_t_3, 8, ((PyObject *)__pyx_v_self->tclass));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.dft, self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.dft, self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.dft, self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->dft) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.origin != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->__pyx_base.source != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.target != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_RoleTransition); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_111450362);
    __Pyx_GIVEREF(__pyx_int_111450362);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_111450362);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.dft is not None or self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, None), state
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_RoleTransition); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_111450362);
    __Pyx_GIVEREF(__pyx_int_111450362);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_111450362);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14RoleTransition_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14RoleTransition_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_14RoleTransition_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_RoleTransition__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoleTransition, (type(self), 0x6a498fa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoleTransition__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleTransition.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":164
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.role_allow_t *head):             # <<<<<<<<<<<<<<
 *         """Role allow rule iterator factory."""
 *         i = RoleAllowIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_17RoleAllowIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_allow_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/rbacrule.pxi":166
 *     cdef factory(SELinuxPolicy policy, sepol.role_allow_t *head):
 *         """Role allow rule iterator factory."""
 *         i = RoleAllowIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleAllowIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":167
 *         """Role allow rule iterator factory."""
 *         i = RoleAllowIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = head
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.policy));
  __pyx_v_i->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/rbacrule.pxi":168
 *         i = RoleAllowIterator()
 *         i.policy = policy
 *         i.head = head             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->head = __pyx_v_head;

  /* "setools/policyrep/rbacrule.pxi":169
 *         i.policy = policy
 *         i.head = head
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":170
 *         i.head = head
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":164
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.role_allow_t *head):             # <<<<<<<<<<<<<<
 *         """Role allow rule iterator factory."""
 *         i = RoleAllowIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":172
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator___next__(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct role_allow *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/rbacrule.pxi":173
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/rbacrule.pxi":174
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = RoleAllow.factory(self.policy, self.curr)
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(16, 174, __pyx_L1_error)

    /* "setools/policyrep/rbacrule.pxi":173
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/rbacrule.pxi":176
 *             raise StopIteration
 * 
 *         item = RoleAllow.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_9RoleAllow_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self->curr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/rbacrule.pxi":177
 * 
 *         item = RoleAllow.factory(self.policy, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
 */
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/rbacrule.pxi":178
 *         item = RoleAllow.factory(self.policy, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_item));
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":172
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":180
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.role_allow_t *curr
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_17RoleAllowIterator_2__len__(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self) {
  role_allow_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  role_allow_t *__pyx_t_1;
  int __pyx_t_2;
  struct role_allow *__pyx_t_3;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/rbacrule.pxi":183
 *         cdef:
 *             sepol.role_allow_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/rbacrule.pxi":185
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/rbacrule.pxi":186
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_curr != NULL) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/rbacrule.pxi":187
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
 */
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/rbacrule.pxi":188
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/rbacrule.pxi":190
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":180
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.role_allow_t *curr
 */

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

/* "setools/policyrep/rbacrule.pxi":192
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_17RoleAllowIterator_4reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator_4reset(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_4reset(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  role_allow_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/rbacrule.pxi":194
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/rbacrule.pxi":192
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__73, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17RoleAllowIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_17RoleAllowIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__74, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleAllowIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":206
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.role_trans_t *head):             # <<<<<<<<<<<<<<
 *         """Role transition rule iterator factory."""
 *         i = RoleTransitionIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_trans_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/rbacrule.pxi":208
 *     cdef factory(SELinuxPolicy policy, sepol.role_trans_t *head):
 *         """Role transition rule iterator factory."""
 *         i = RoleTransitionIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleTransitionIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":209
 *         """Role transition rule iterator factory."""
 *         i = RoleTransitionIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = head
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.policy));
  __pyx_v_i->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/rbacrule.pxi":210
 *         i = RoleTransitionIterator()
 *         i.policy = policy
 *         i.head = head             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->head = __pyx_v_head;

  /* "setools/policyrep/rbacrule.pxi":211
 *         i.policy = policy
 *         i.head = head
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/rbacrule.pxi":212
 *         i.head = head
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":206
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.role_trans_t *head):             # <<<<<<<<<<<<<<
 *         """Role transition rule iterator factory."""
 *         i = RoleTransitionIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":214
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator___next__(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v_item = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  struct role_trans *__pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/rbacrule.pxi":215
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/rbacrule.pxi":216
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         item = RoleTransition.factory(self.policy, self.curr)
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(16, 216, __pyx_L1_error)

    /* "setools/policyrep/rbacrule.pxi":215
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/rbacrule.pxi":218
 *             raise StopIteration
 * 
 *         item = RoleTransition.factory(self.policy, self.curr)             # <<<<<<<<<<<<<<
 *         self.curr = self.curr.next
 *         return item
 */
  __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_14RoleTransition_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_v_self->curr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_item = ((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/rbacrule.pxi":219
 * 
 *         item = RoleTransition.factory(self.policy, self.curr)
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 *         return item
 * 
 */
  __pyx_t_4 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_4;

  /* "setools/policyrep/rbacrule.pxi":220
 *         item = RoleTransition.factory(self.policy, self.curr)
 *         self.curr = self.curr.next
 *         return item             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_item));
  __pyx_r = ((PyObject *)__pyx_v_item);
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":214
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_item);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rbacrule.pxi":222
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.role_trans_t *curr
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_2__len__(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self) {
  role_trans_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  role_trans_t *__pyx_t_1;
  int __pyx_t_2;
  struct role_trans *__pyx_t_3;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/rbacrule.pxi":225
 *         cdef:
 *             sepol.role_trans_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/rbacrule.pxi":227
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *              count += 1
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/rbacrule.pxi":228
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *              count += 1
 *              curr = curr.next
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_curr != NULL) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/rbacrule.pxi":229
 *         curr = self.head
 *         while curr != NULL:
 *              count += 1             # <<<<<<<<<<<<<<
 *              curr = curr.next
 * 
 */
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/rbacrule.pxi":230
 *         while curr != NULL:
 *              count += 1
 *              curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/rbacrule.pxi":232
 *              curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/rbacrule.pxi":222
 *         return item
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.role_trans_t *curr
 */

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

/* "setools/policyrep/rbacrule.pxi":234
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_22RoleTransitionIterator_4reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_4reset(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_4reset(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  role_trans_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/rbacrule.pxi":236
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/rbacrule.pxi":234
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__75, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22RoleTransitionIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_22RoleTransitionIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__76, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleTransitionIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":29
 * 
 *     @staticmethod
 *     cdef inline Role factory(SELinuxPolicy policy, sepol.role_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role objects."""
 *         cdef Role r = Role.__new__(Role)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Role *__pyx_f_7setools_9policyrep_4Role_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, role_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_Role *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/role.pxi":31
 *     cdef inline Role factory(SELinuxPolicy policy, sepol.role_datum_t *symbol):
 *         """Factory function for creating Role objects."""
 *         cdef Role r = Role.__new__(Role)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Role(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Role), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 31, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":32
 *         """Factory function for creating Role objects."""
 *         cdef Role r = Role.__new__(Role)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>symbol
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/role.pxi":33
 *         cdef Role r = Role.__new__(Role)
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)
 *         r._types = frozenset(TypeEbitmapIterator.factory_from_set(policy, &symbol.types))
 */
  __pyx_v_r->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/role.pxi":34
 *         r.policy = policy
 *         r.key = <uintptr_t>symbol
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *         r._types = frozenset(TypeEbitmapIterator.factory_from_set(policy, &symbol.types))
 *         return r
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.name);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.name);
  __pyx_v_r->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":35
 *         r.key = <uintptr_t>symbol
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)
 *         r._types = frozenset(TypeEbitmapIterator.factory_from_set(policy, &symbol.types))             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory_from_set(__pyx_v_policy, (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->_types);
  __Pyx_DECREF(__pyx_v_r->_types);
  __pyx_v_r->_types = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/role.pxi":36
 *         r.name = policy.role_value_to_name(symbol.s.value - 1)
 *         r._types = frozenset(TypeEbitmapIterator.factory_from_set(policy, &symbol.types))
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":29
 * 
 *     @staticmethod
 *     cdef inline Role factory(SELinuxPolicy policy, sepol.role_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role objects."""
 *         cdef Role r = Role.__new__(Role)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Role.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":39
 * 
 *     @property
 *     def dominated_roles(self):             # <<<<<<<<<<<<<<
 *         """The roles that this role dominates."""
 *         # TODO: do dominated roles even work?
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_15dominated_roles_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Role_15dominated_roles_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_15dominated_roles___get__(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Role_15dominated_roles___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/role.pxi":43
 *         # TODO: do dominated roles even work?
 *         #return set(RoleEbitmapIterator.factory(self.policy, &self.handle.dominates))
 *         return frozenset()             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyFrozenSet_New(((PyObject *)NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":39
 * 
 *     @property
 *     def dominated_roles(self):             # <<<<<<<<<<<<<<
 *         """The roles that this role dominates."""
 *         # TODO: do dominated roles even work?
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Role.dominated_roles.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_4Role_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/role.pxi":45
 *         return frozenset()
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member roles."""
 *         yield self
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_1expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_4Role_expand[] = "Generator that expands this into its member roles.";
static PyObject *__pyx_pw_7setools_9policyrep_4Role_1expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_expand(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Role_expand(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(17, 45, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4Role_2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_Role_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(17, 45, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Role.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4Role_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(17, 45, __pyx_L1_error)

  /* "setools/policyrep/role.pxi":47
 *     def expand(self):
 *         """Generator that expands this into its member roles."""
 *         yield self             # <<<<<<<<<<<<<<
 * 
 *     def types(self):
 */
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  /* return from generator, yielding value */
  __pyx_generator->resume_label = 1;
  return __pyx_r;
  __pyx_L4_resume_from_yield:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(17, 47, __pyx_L1_error)
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/role.pxi":45
 *         return frozenset()
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member roles."""
 *         yield self
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":49
 *         yield self
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Generator which yields the role's set of types."""
 *         return iter(self._types)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_4types(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_4Role_3types[] = "Generator which yields the role's set of types.";
static PyObject *__pyx_pw_7setools_9policyrep_4Role_4types(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("types (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_3types(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Role_3types(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("types", 0);

  /* "setools/policyrep/role.pxi":51
 *     def types(self):
 *         """Generator which yields the role's set of types."""
 *         return iter(self._types)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_types;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":49
 *         yield self
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Generator which yields the role's set of types."""
 *         return iter(self._types)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Role.types", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":53
 *         return iter(self._types)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_6statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Role_6statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_5statement(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_4Role_9statement_2generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/role.pxi":55
 *     def statement(self):
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)             # <<<<<<<<<<<<<<
 *         count = len(types)
 *         stmt = "role {0}".format(self)
 */

static PyObject *__pyx_pf_7setools_9policyrep_4Role_9statement_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(17, 55, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4Role_9statement_2generator19, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_statement_locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(17, 55, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Role.statement.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4Role_9statement_2generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(17, 55, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(17, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  __pyx_t_2 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(17, 55, __pyx_L1_error) }
  __pyx_t_5 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->_types, 0, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(17, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(17, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_cur_scope->__pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(17, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_5))) __PYX_ERR(17, 55, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":53
 *         return iter(self._types)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
 */

static PyObject *__pyx_pf_7setools_9policyrep_4Role_5statement(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *__pyx_cur_scope;
  size_t __pyx_v_count;
  PyObject *__pyx_v_types = NULL;
  PyObject *__pyx_v_stmt = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_statement(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_statement, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(17, 53, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/role.pxi":55
 *     def statement(self):
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)             # <<<<<<<<<<<<<<
 *         count = len(types)
 *         stmt = "role {0}".format(self)
 */
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_4Role_9statement_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_types = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/role.pxi":56
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
 *         count = len(types)             # <<<<<<<<<<<<<<
 *         stmt = "role {0}".format(self)
 *         if count == 1:
 */
  if (unlikely(__pyx_v_types == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(17, 56, __pyx_L1_error)
  }
  __pyx_t_3 = PyList_GET_SIZE(__pyx_v_types); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(17, 56, __pyx_L1_error)
  __pyx_v_count = __pyx_t_3;

  /* "setools/policyrep/role.pxi":57
 *         types = list(str(t) for t in self._types)
 *         count = len(types)
 *         stmt = "role {0}".format(self)             # <<<<<<<<<<<<<<
 *         if count == 1:
 *             stmt += " types {0}".format(types[0])
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_role_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, ((PyObject *)__pyx_cur_scope->__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stmt = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/role.pxi":58
 *         count = len(types)
 *         stmt = "role {0}".format(self)
 *         if count == 1:             # <<<<<<<<<<<<<<
 *             stmt += " types {0}".format(types[0])
 *         else:
 */
  __pyx_t_5 = ((__pyx_v_count == 1) != 0);
  if (__pyx_t_5) {

    /* "setools/policyrep/role.pxi":59
 *         stmt = "role {0}".format(self)
 *         if count == 1:
 *             stmt += " types {0}".format(types[0])             # <<<<<<<<<<<<<<
 *         else:
 *             stmt += " types {{ {0} }}".format(' '.join(types))
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_types_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(__pyx_v_types == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(17, 59, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_types, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(17, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 59, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/role.pxi":58
 *         count = len(types)
 *         stmt = "role {0}".format(self)
 *         if count == 1:             # <<<<<<<<<<<<<<
 *             stmt += " types {0}".format(types[0])
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/role.pxi":61
 *             stmt += " types {0}".format(types[0])
 *         else:
 *             stmt += " types {{ {0} }}".format(' '.join(types))             # <<<<<<<<<<<<<<
 * 
 *         stmt += ";"
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_types_0_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__3, __pyx_v_types); if (unlikely(!__pyx_t_4)) __PYX_ERR(17, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_stmt, __pyx_t_2);
    __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "setools/policyrep/role.pxi":63
 *             stmt += " types {{ {0} }}".format(' '.join(types))
 * 
 *         stmt += ";"             # <<<<<<<<<<<<<<
 *         return stmt
 * 
 */
  __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_kp_u__32); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF_SET(__pyx_v_stmt, __pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/role.pxi":64
 * 
 *         stmt += ";"
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":53
 *         return iter(self._types)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef size_t count
 *         types = list(str(t) for t in self._types)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Role.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_types);
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_8__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Role_8__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_7__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Role_7__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._types, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_types);
  __Pyx_GIVEREF(__pyx_v_self->_types);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_types);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->_types != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Role); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_162073369);
    __Pyx_GIVEREF(__pyx_int_162073369);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_162073369);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, None), state
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Role); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_162073369);
    __Pyx_GIVEREF(__pyx_int_162073369);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_162073369);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Role.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Role_10__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Role_10__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Role_9__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Role_9__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Role__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Role, (type(self), 0x9a90b19, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Role__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Role.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":75
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = RoleHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_19RoleHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/role.pxi":77
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = RoleHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":78
 *         """Factory function for creating Role iterators."""
 *         i = RoleHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/role.pxi":79
 *         i = RoleHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/role.pxi":80
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":81
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":75
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = RoleHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":83
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Role.factory(self.policy, <sepol.role_datum_t *>self.curr.datum)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/role.pxi":84
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Role.factory(self.policy, <sepol.role_datum_t *>self.curr.datum)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_RoleHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(17, 84, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 84, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":85
 *     def __next__(self):
 *         super().__next__()
 *         return Role.factory(self.policy, <sepol.role_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((role_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":83
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Role.factory(self.policy, <sepol.role_datum_t *>self.curr.datum)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__77, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_19RoleHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__78, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":93
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role ebitmap iterators."""
 *         i = RoleEbitmapIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/role.pxi":95
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating Role ebitmap iterators."""
 *         i = RoleEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":96
 *         """Factory function for creating Role ebitmap iterators."""
 *         i = RoleEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/role.pxi":97
 *         i = RoleEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/role.pxi":98
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":99
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":93
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role ebitmap iterators."""
 *         i = RoleEbitmapIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/role.pxi":101
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Role.factory(self.policy, self.policy.role_value_to_datum(self.bit))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/role.pxi":102
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Role.factory(self.policy, self.policy.role_value_to_datum(self.bit))
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_RoleEbitmapIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(17, 102, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 102, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(17, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/role.pxi":103
 *     def __next__(self):
 *         super().__next__()
 *         return Role.factory(self.policy, self.policy.role_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Role_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit))); if (unlikely(!__pyx_t_2)) __PYX_ERR(17, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/role.pxi":101
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Role.factory(self.policy, self.policy.role_value_to_datum(self.bit))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_19RoleEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__80, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.RoleEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":34
 * 
 *     @property
 *     def conditional(self):             # <<<<<<<<<<<<<<
 *         """The conditional expression for this rule."""
 *         # Most rule types cannot be conditional.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_11conditional_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_11conditional_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_11conditional___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_11conditional___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":37
 *         """The conditional expression for this rule."""
 *         # Most rule types cannot be conditional.
 *         raise RuleNotConditional             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RuleNotConditional); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(18, 37, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":34
 * 
 *     @property
 *     def conditional(self):             # <<<<<<<<<<<<<<
 *         """The conditional expression for this rule."""
 *         # Most rule types cannot be conditional.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.conditional.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":40
 * 
 *     @property
 *     def conditional_block(self):             # <<<<<<<<<<<<<<
 *         """The conditional block of the rule (T/F)"""
 *         # Most rule types cannot be conditional.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_17conditional_block_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_17conditional_block_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_17conditional_block___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_17conditional_block___get__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/rule.pxi":43
 *         """The conditional block of the rule (T/F)"""
 *         # Most rule types cannot be conditional.
 *         raise RuleNotConditional             # <<<<<<<<<<<<<<
 * 
 *     def enabled(self, **kwargs):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RuleNotConditional); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(18, 43, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":40
 * 
 *     @property
 *     def conditional_block(self):             # <<<<<<<<<<<<<<
 *         """The conditional block of the rule (T/F)"""
 *         # Most rule types cannot be conditional.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.conditional_block.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":45
 *         raise RuleNotConditional
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_1enabled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_10PolicyRule_enabled[] = "\n        Determine if the rule is enabled, given the stated boolean values.\n\n        Keyword Parameters: bool_name=True|False\n        Each keyword parameter name corresponds to a Boolean name\n        in the expression and the state to use in the evaluation.\n        If a Boolean value is not set, its default value is used.\n        Extra values are ignored.\n\n        Return:     bool\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_1enabled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enabled (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("enabled", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
  if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "enabled", 1))) return NULL;
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_enabled(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self), __pyx_v_kwargs);

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_enabled(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enabled", 0);

  /* "setools/policyrep/rule.pxi":58
 *         """
 *         # Most rule types cannot be conditional, thus are always enabled.
 *         return True             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(Py_True);
  __pyx_r = Py_True;
  goto __pyx_L0;

  /* "setools/policyrep/rule.pxi":45
 *         raise RuleNotConditional
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
 */

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

/* "setools/policyrep/rule.pxi":60
 *         return True
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         raise NotImplementedError
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_3expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_10PolicyRule_2expand[] = "Expand the rule into an equivalent set of rules without attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_3expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_2expand(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_2expand(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);

  /* "setools/policyrep/rule.pxi":62
 *     def expand(self):
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(18, 62, __pyx_L1_error)

  /* "setools/policyrep/rule.pxi":60
 *         return True
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         raise NotImplementedError
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/rule.pxi":26
 * 
 *     cdef:
 *         readonly object ruletype             # <<<<<<<<<<<<<<
 *         readonly object source
 *         readonly object target
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8ruletype_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8ruletype_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_8ruletype___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8ruletype___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __pyx_r = __pyx_v_self->ruletype;
  goto __pyx_L0;

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

/* "setools/policyrep/rule.pxi":27
 *     cdef:
 *         readonly object ruletype
 *         readonly object source             # <<<<<<<<<<<<<<
 *         readonly object target
 *         readonly object origin
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6source_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6source_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6source___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6source___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->source);
  __pyx_r = __pyx_v_self->source;
  goto __pyx_L0;

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

/* "setools/policyrep/rule.pxi":28
 *         readonly object ruletype
 *         readonly object source
 *         readonly object target             # <<<<<<<<<<<<<<
 *         readonly object origin
 *         # This is initialized to False:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6target_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6target_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6target___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6target___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->target);
  __pyx_r = __pyx_v_self->target;
  goto __pyx_L0;

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

/* "setools/policyrep/rule.pxi":29
 *         readonly object source
 *         readonly object target
 *         readonly object origin             # <<<<<<<<<<<<<<
 *         # This is initialized to False:
 *         readonly bint extended
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6origin_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_6origin_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6origin___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6origin___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->origin);
  __pyx_r = __pyx_v_self->origin;
  goto __pyx_L0;

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

/* "setools/policyrep/rule.pxi":31
 *         readonly object origin
 *         # This is initialized to False:
 *         readonly bint extended             # <<<<<<<<<<<<<<
 * 
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8extended_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_8extended_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_8extended___get__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_8extended___get__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 31, __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("setools.policyrep.PolicyRule.extended.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_4__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_4__reduce_cython__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->extended); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.key); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->origin);
  __Pyx_GIVEREF(__pyx_v_self->origin);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->origin);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_self->__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->ruletype);
  __Pyx_GIVEREF(__pyx_v_self->ruletype);
  PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->ruletype);
  __Pyx_INCREF(__pyx_v_self->source);
  __Pyx_GIVEREF(__pyx_v_self->source);
  PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_self->source);
  __Pyx_INCREF(__pyx_v_self->target);
  __Pyx_GIVEREF(__pyx_v_self->target);
  PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_v_self->target);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.extended, self.key, self.origin, self.policy, self.ruletype, self.source, self.target)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->origin != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->__pyx_base.policy) != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ruletype != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->source != Py_None);
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->target != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_PolicyRule); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_173396620);
    __Pyx_GIVEREF(__pyx_int_173396620);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_173396620);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.origin is not None or self.policy is not None or self.ruletype is not None or self.source is not None or self.target is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, None), state
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_PolicyRule); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_173396620);
    __Pyx_GIVEREF(__pyx_int_173396620);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_173396620);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10PolicyRule_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10PolicyRule_6__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_10PolicyRule_6__setstate_cython__(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyRule__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PolicyRule, (type(self), 0xa55d28c, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PolicyRule__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PolicyRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":61
 *         readonly bint mls
 * 
 *     def __cinit__(self, policyfile=None):             # <<<<<<<<<<<<<<
 *         """
 *         Parameter:
 */

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_13SELinuxPolicy_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7setools_9policyrep_13SELinuxPolicy_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_policyfile = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_policyfile,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        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 (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_policyfile);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(5, 61, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_policyfile = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 61, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy___cinit__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_policyfile);

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

static int __pyx_pf_7setools_9policyrep_13SELinuxPolicy___cinit__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_policyfile) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":66
 *         policyfile  Path to a policy to open.
 *         """
 *         self.sh = NULL             # <<<<<<<<<<<<<<
 *         self.handle = NULL
 *         self.cat_val_to_struct = NULL
 */
  __pyx_v_self->sh = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":67
 *         """
 *         self.sh = NULL
 *         self.handle = NULL             # <<<<<<<<<<<<<<
 *         self.cat_val_to_struct = NULL
 *         self.level_val_to_struct = NULL
 */
  __pyx_v_self->handle = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":68
 *         self.sh = NULL
 *         self.handle = NULL
 *         self.cat_val_to_struct = NULL             # <<<<<<<<<<<<<<
 *         self.level_val_to_struct = NULL
 *         self.log = logging.getLogger(__name__)
 */
  __pyx_v_self->cat_val_to_struct = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":69
 *         self.handle = NULL
 *         self.cat_val_to_struct = NULL
 *         self.level_val_to_struct = NULL             # <<<<<<<<<<<<<<
 *         self.log = logging.getLogger(__name__)
 * 
 */
  __pyx_v_self->level_val_to_struct = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":70
 *         self.cat_val_to_struct = NULL
 *         self.level_val_to_struct = NULL
 *         self.log = logging.getLogger(__name__)             # <<<<<<<<<<<<<<
 * 
 *         if policyfile:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logging); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->log);
  __Pyx_DECREF(__pyx_v_self->log);
  __pyx_v_self->log = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":72
 *         self.log = logging.getLogger(__name__)
 * 
 *         if policyfile:             # <<<<<<<<<<<<<<
 *             self._load_policy(policyfile)
 *         else:
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_policyfile); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(5, 72, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "setools/policyrep/selinuxpolicy.pxi":73
 * 
 *         if policyfile:
 *             self._load_policy(policyfile)             # <<<<<<<<<<<<<<
 *         else:
 *             self._load_running_policy()
 */
    if (!(likely(PyUnicode_CheckExact(__pyx_v_policyfile))||((__pyx_v_policyfile) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_policyfile)->tp_name), 0))) __PYX_ERR(5, 73, __pyx_L1_error)
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_policy(__pyx_v_self, ((PyObject*)__pyx_v_policyfile)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":72
 *         self.log = logging.getLogger(__name__)
 * 
 *         if policyfile:             # <<<<<<<<<<<<<<
 *             self._load_policy(policyfile)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/selinuxpolicy.pxi":75
 *             self._load_policy(policyfile)
 *         else:
 *             self._load_running_policy()             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  /*else*/ {
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_running_policy(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "setools/policyrep/selinuxpolicy.pxi":61
 *         readonly bint mls
 * 
 *     def __cinit__(self, policyfile=None):             # <<<<<<<<<<<<<<
 *         """
 *         Parameter:
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":77
 *             self._load_running_policy()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.cat_val_to_struct)
 *         PyMem_Free(self.level_val_to_struct)
 */

/* Python wrapper */
static void __pyx_pw_7setools_9policyrep_13SELinuxPolicy_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_7setools_9policyrep_13SELinuxPolicy_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_7setools_9policyrep_13SELinuxPolicy_2__dealloc__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static void __pyx_pf_7setools_9policyrep_13SELinuxPolicy_2__dealloc__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":78
 * 
 *     def __dealloc__(self):
 *         PyMem_Free(self.cat_val_to_struct)             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.level_val_to_struct)
 * 
 */
  PyMem_Free(__pyx_v_self->cat_val_to_struct);

  /* "setools/policyrep/selinuxpolicy.pxi":79
 *     def __dealloc__(self):
 *         PyMem_Free(self.cat_val_to_struct)
 *         PyMem_Free(self.level_val_to_struct)             # <<<<<<<<<<<<<<
 * 
 *         if self.handle != NULL:
 */
  PyMem_Free(__pyx_v_self->level_val_to_struct);

  /* "setools/policyrep/selinuxpolicy.pxi":81
 *         PyMem_Free(self.level_val_to_struct)
 * 
 *         if self.handle != NULL:             # <<<<<<<<<<<<<<
 *             sepol.sepol_policydb_free(self.handle)
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->handle != NULL) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/selinuxpolicy.pxi":82
 * 
 *         if self.handle != NULL:
 *             sepol.sepol_policydb_free(self.handle)             # <<<<<<<<<<<<<<
 * 
 *         if self.sh != NULL:
 */
    sepol_policydb_free(__pyx_v_self->handle);

    /* "setools/policyrep/selinuxpolicy.pxi":81
 *         PyMem_Free(self.level_val_to_struct)
 * 
 *         if self.handle != NULL:             # <<<<<<<<<<<<<<
 *             sepol.sepol_policydb_free(self.handle)
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":84
 *             sepol.sepol_policydb_free(self.handle)
 * 
 *         if self.sh != NULL:             # <<<<<<<<<<<<<<
 *             sepol.sepol_handle_destroy(self.sh)
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->sh != NULL) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/selinuxpolicy.pxi":85
 * 
 *         if self.sh != NULL:
 *             sepol.sepol_handle_destroy(self.sh)             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
    sepol_handle_destroy(__pyx_v_self->sh);

    /* "setools/policyrep/selinuxpolicy.pxi":84
 *             sepol.sepol_policydb_free(self.handle)
 * 
 *         if self.sh != NULL:             # <<<<<<<<<<<<<<
 *             sepol.sepol_handle_destroy(self.sh)
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":77
 *             self._load_running_policy()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         PyMem_Free(self.cat_val_to_struct)
 *         PyMem_Free(self.level_val_to_struct)
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":87
 *             sepol.sepol_handle_destroy(self.sh)
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<SELinuxPolicy(\"{0}\")>".format(self.path)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_4__repr__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_4__repr__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":88
 * 
 *     def __repr__(self):
 *         return "<SELinuxPolicy(\"{0}\")>".format(self.path)             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_SELinuxPolicy_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->path) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->path);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":87
 *             sepol.sepol_handle_destroy(self.sh)
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "<SELinuxPolicy(\"{0}\")>".format(self.path)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":90
 *         return "<SELinuxPolicy(\"{0}\")>".format(self.path)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.path
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_6__str__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_6__str__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":91
 * 
 *     def __str__(self):
 *         return self.path             # <<<<<<<<<<<<<<
 * 
 *     def __copy__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":90
 *         return "<SELinuxPolicy(\"{0}\")>".format(self.path)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.path
 * 
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":93
 *         return self.path
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_9__copy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_9__copy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_8__copy__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_8__copy__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__copy__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":95
 *     def __copy__(self):
 *         # Do not copy.
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __deepcopy__(self, memo):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":93
 *         return self.path
 * 
 *     def __copy__(self):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         return self
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":97
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__(PyObject *__pyx_v_self, PyObject *__pyx_v_memo); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__(PyObject *__pyx_v_self, PyObject *__pyx_v_memo) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_10__deepcopy__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_memo));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10__deepcopy__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_memo) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__deepcopy__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":99
 *     def __deepcopy__(self, memo):
 *         # Do not copy.
 *         memo[id(self)] = self             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_v_memo, __pyx_t_1, ((PyObject *)__pyx_v_self)) < 0)) __PYX_ERR(5, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":100
 *         # Do not copy.
 *         memo[id(self)] = self
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     #
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":97
 *         return self
 * 
 *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
 *         # Do not copy.
 *         memo[id(self)] = self
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":106
 *     #
 *     @property
 *     def allow_count(self):             # <<<<<<<<<<<<<<
 *         """The number of (type) allow rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11allow_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11allow_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_11allow_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11allow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":108
 *     def allow_count(self):
 *         """The number of (type) allow rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.allow.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":109
 *         """The number of (type) allow rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.allow.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_allow); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":106
 *     #
 *     @property
 *     def allow_count(self):             # <<<<<<<<<<<<<<
 *         """The number of (type) allow rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.allow_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":112
 * 
 *     @property
 *     def allowxperm_count(self):             # <<<<<<<<<<<<<<
 *         """The number of allowxperm rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":114
 *     def allowxperm_count(self):
 *         """The number of allowxperm rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.allowxperm.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":115
 *         """The number of allowxperm rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.allowxperm.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_allowxperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":112
 * 
 *     @property
 *     def allowxperm_count(self):             # <<<<<<<<<<<<<<
 *         """The number of allowxperm rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.allowxperm_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":118
 * 
 *     @property
 *     def auditallow_count(self):             # <<<<<<<<<<<<<<
 *         """The number of auditallow rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16auditallow_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16auditallow_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16auditallow_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16auditallow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":120
 *     def auditallow_count(self):
 *         """The number of auditallow rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.auditallow.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":121
 *         """The number of auditallow rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.auditallow.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_auditallow); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":118
 * 
 *     @property
 *     def auditallow_count(self):             # <<<<<<<<<<<<<<
 *         """The number of auditallow rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.auditallow_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":124
 * 
 *     @property
 *     def auditallowxperm_count(self):             # <<<<<<<<<<<<<<
 *         """The number of auditallowxperm rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":126
 *     def auditallowxperm_count(self):
 *         """The number of auditallowxperm rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.auditallowxperm.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":127
 *         """The number of auditallowxperm rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.auditallowxperm.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_auditallowxperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":124
 * 
 *     @property
 *     def auditallowxperm_count(self):             # <<<<<<<<<<<<<<
 *         """The number of auditallowxperm rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.auditallowxperm_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":130
 * 
 *     @property
 *     def boolean_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Booleans."""
 *         return len(self.bools())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13boolean_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13boolean_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13boolean_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13boolean_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":132
 *     def boolean_count(self):
 *         """The number of Booleans."""
 *         return len(self.bools())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bools); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":130
 * 
 *     @property
 *     def boolean_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Booleans."""
 *         return len(self.bools())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.boolean_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":135
 * 
 *     @property
 *     def category_count(self):             # <<<<<<<<<<<<<<
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14category_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14category_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___2generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":137
 *     def category_count(self):
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 137, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___2generator20, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_SELinuxPolicy___get___locals_gen, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 137, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.category_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___2generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 137, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 137, __pyx_L1_error) }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_categories); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 137, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 137, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 137, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 137, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 137, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":135
 * 
 *     @property
 *     def category_count(self):             # <<<<<<<<<<<<<<
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16___get__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_16___get__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 135, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/selinuxpolicy.pxi":137
 *     def category_count(self):
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14category_count_7__get___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":135
 * 
 *     @property
 *     def category_count(self):             # <<<<<<<<<<<<<<
 *         """The number of categories."""
 *         return sum(1 for _ in self.categories())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.category_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":140
 * 
 *     @property
 *     def class_count(self):             # <<<<<<<<<<<<<<
 *         """The number of object classes."""
 *         return len(self.classes())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11class_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11class_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_11class_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11class_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":142
 *     def class_count(self):
 *         """The number of object classes."""
 *         return len(self.classes())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_classes); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 142, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":140
 * 
 *     @property
 *     def class_count(self):             # <<<<<<<<<<<<<<
 *         """The number of object classes."""
 *         return len(self.classes())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.class_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":145
 * 
 *     @property
 *     def common_count(self):             # <<<<<<<<<<<<<<
 *         """The number of common permission sets."""
 *         return len(self.commons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12common_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12common_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_12common_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12common_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":147
 *     def common_count(self):
 *         """The number of common permission sets."""
 *         return len(self.commons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_commons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 147, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":145
 * 
 *     @property
 *     def common_count(self):             # <<<<<<<<<<<<<<
 *         """The number of common permission sets."""
 *         return len(self.commons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.common_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":150
 * 
 *     @property
 *     def conditional_count(self):             # <<<<<<<<<<<<<<
 *         """The number of conditionals."""
 *         return len(self.conditionals())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17conditional_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17conditional_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17conditional_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17conditional_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":152
 *     def conditional_count(self):
 *         """The number of conditionals."""
 *         return len(self.conditionals())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_conditionals); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 152, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":150
 * 
 *     @property
 *     def conditional_count(self):             # <<<<<<<<<<<<<<
 *         """The number of conditionals."""
 *         return len(self.conditionals())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.conditional_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":155
 * 
 *     @property
 *     def constraint_count(self):             # <<<<<<<<<<<<<<
 *         """The number of standard constraints."""
 *         self._cache_constraint_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16constraint_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16constraint_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16constraint_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16constraint_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":157
 *     def constraint_count(self):
 *         """The number of standard constraints."""
 *         self._cache_constraint_counts()             # <<<<<<<<<<<<<<
 *         return self.constraint_counts[ConstraintRuletype.constrain]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_constraint_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":158
 *         """The number of standard constraints."""
 *         self._cache_constraint_counts()
 *         return self.constraint_counts[ConstraintRuletype.constrain]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_constrain); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->constraint_counts, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":155
 * 
 *     @property
 *     def constraint_count(self):             # <<<<<<<<<<<<<<
 *         """The number of standard constraints."""
 *         self._cache_constraint_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.constraint_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":161
 * 
 *     @property
 *     def default_count(self):             # <<<<<<<<<<<<<<
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13default_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13default_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___2generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":163
 *     def default_count(self):
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 163, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___2generator21, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_SELinuxPolicy___get___locals_gen, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 163, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.default_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___2generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 163, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 163, __pyx_L1_error) }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_defaults); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 163, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 163, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 163, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 163, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 163, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 163, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_d);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_d, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 163, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":161
 * 
 *     @property
 *     def default_count(self):             # <<<<<<<<<<<<<<
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18___get__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_18___get__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 161, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/selinuxpolicy.pxi":163
 *     def default_count(self):
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13default_count_7__get___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":161
 * 
 *     @property
 *     def default_count(self):             # <<<<<<<<<<<<<<
 *         """The number of default_* rules."""
 *         return sum(1 for d in self.defaults())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.default_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":166
 * 
 *     @property
 *     def devicetreecon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen devicetreecon statements."""
 *         return len(self.devicetreecons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":168
 *     def devicetreecon_count(self):
 *         """The number of Xen devicetreecon statements."""
 *         return len(self.devicetreecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_devicetreecons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 168, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":166
 * 
 *     @property
 *     def devicetreecon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen devicetreecon statements."""
 *         return len(self.devicetreecons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.devicetreecon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":171
 * 
 *     @property
 *     def dontaudit_count(self):             # <<<<<<<<<<<<<<
 *         """The number of dontaudit rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":173
 *     def dontaudit_count(self):
 *         """The number of dontaudit rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.dontaudit.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":174
 *         """The number of dontaudit rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.dontaudit.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dontaudit); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":171
 * 
 *     @property
 *     def dontaudit_count(self):             # <<<<<<<<<<<<<<
 *         """The number of dontaudit rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.dontaudit_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":177
 * 
 *     @property
 *     def dontauditxperm_count(self):             # <<<<<<<<<<<<<<
 *         """The number of dontauditxperm rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":179
 *     def dontauditxperm_count(self):
 *         """The number of dontauditxperm rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.dontauditxperm.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":180
 *         """The number of dontauditxperm rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.dontauditxperm.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dontauditxperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":177
 * 
 *     @property
 *     def dontauditxperm_count(self):             # <<<<<<<<<<<<<<
 *         """The number of dontauditxperm rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.dontauditxperm_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":183
 * 
 *     @property
 *     def fs_use_count(self):             # <<<<<<<<<<<<<<
 *         """The number of fs_use_* statements."""
 *         return len(self.fs_uses())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12fs_use_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12fs_use_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_12fs_use_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12fs_use_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":185
 *     def fs_use_count(self):
 *         """The number of fs_use_* statements."""
 *         return len(self.fs_uses())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fs_uses); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 185, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":183
 * 
 *     @property
 *     def fs_use_count(self):             # <<<<<<<<<<<<<<
 *         """The number of fs_use_* statements."""
 *         return len(self.fs_uses())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.fs_use_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":188
 * 
 *     @property
 *     def genfscon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of genfscon statements."""
 *         return len(self.genfscons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14genfscon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14genfscon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14genfscon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14genfscon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":190
 *     def genfscon_count(self):
 *         """The number of genfscon statements."""
 *         return len(self.genfscons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_genfscons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 190, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":188
 * 
 *     @property
 *     def genfscon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of genfscon statements."""
 *         return len(self.genfscons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.genfscon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":193
 * 
 *     @property
 *     def ibendportcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of ibendportcon statements."""
 *         return len(self.ibendportcons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":195
 *     def ibendportcon_count(self):
 *         """The number of ibendportcon statements."""
 *         return len(self.ibendportcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ibendportcons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 195, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":193
 * 
 *     @property
 *     def ibendportcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of ibendportcon statements."""
 *         return len(self.ibendportcons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ibendportcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":198
 * 
 *     @property
 *     def ibpkeycon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of ibpkeycon statements."""
 *         return len(self.ibpkeycons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":200
 *     def ibpkeycon_count(self):
 *         """The number of ibpkeycon statements."""
 *         return len(self.ibpkeycons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ibpkeycons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":198
 * 
 *     @property
 *     def ibpkeycon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of ibpkeycon statements."""
 *         return len(self.ibpkeycons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ibpkeycon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":203
 * 
 *     @property
 *     def initialsids_count(self):             # <<<<<<<<<<<<<<
 *         """The number of initial sid statements."""
 *         return len(self.initialsids())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17initialsids_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17initialsids_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17initialsids_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17initialsids_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":205
 *     def initialsids_count(self):
 *         """The number of initial sid statements."""
 *         return len(self.initialsids())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialsids); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":203
 * 
 *     @property
 *     def initialsids_count(self):             # <<<<<<<<<<<<<<
 *         """The number of initial sid statements."""
 *         return len(self.initialsids())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.initialsids_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":208
 * 
 *     @property
 *     def iomemcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen iomemcon statements."""
 *         return len(self.iomemcons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":210
 *     def iomemcon_count(self):
 *         """The number of Xen iomemcon statements."""
 *         return len(self.iomemcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_iomemcons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":208
 * 
 *     @property
 *     def iomemcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen iomemcon statements."""
 *         return len(self.iomemcons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.iomemcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":213
 * 
 *     @property
 *     def ioportcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen ioportcon statements."""
 *         return len(self.ioportcons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":215
 *     def ioportcon_count(self):
 *         """The number of Xen ioportcon statements."""
 *         return len(self.ioportcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ioportcons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":213
 * 
 *     @property
 *     def ioportcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen ioportcon statements."""
 *         return len(self.ioportcons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ioportcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":218
 * 
 *     @property
 *     def level_count(self):             # <<<<<<<<<<<<<<
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11level_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11level_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___2generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":220
 *     def level_count(self):
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 220, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___2generator22, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_SELinuxPolicy___get___locals_gen, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 220, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.level_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___2generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 220, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 220, __pyx_L1_error) }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_levels); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 220, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 220, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 220, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 220, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 220, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 220, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 220, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":218
 * 
 *     @property
 *     def level_count(self):             # <<<<<<<<<<<<<<
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20___get__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_20___get__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 218, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/selinuxpolicy.pxi":220
 *     def level_count(self):
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_11level_count_7__get___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":218
 * 
 *     @property
 *     def level_count(self):             # <<<<<<<<<<<<<<
 *         """The number of levels."""
 *         return sum(1 for _ in self.levels())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.level_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":223
 * 
 *     @property
 *     def mlsconstraint_count(self):             # <<<<<<<<<<<<<<
 *         """The number of MLS constraints."""
 *         self._cache_constraint_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":225
 *     def mlsconstraint_count(self):
 *         """The number of MLS constraints."""
 *         self._cache_constraint_counts()             # <<<<<<<<<<<<<<
 *         return self.constraint_counts[ConstraintRuletype.mlsconstrain]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_constraint_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":226
 *         """The number of MLS constraints."""
 *         self._cache_constraint_counts()
 *         return self.constraint_counts[ConstraintRuletype.mlsconstrain]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_mlsconstrain); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->constraint_counts, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":223
 * 
 *     @property
 *     def mlsconstraint_count(self):             # <<<<<<<<<<<<<<
 *         """The number of MLS constraints."""
 *         self._cache_constraint_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.mlsconstraint_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":229
 * 
 *     @property
 *     def mlsvalidatetrans_count(self):             # <<<<<<<<<<<<<<
 *         """The number of MLS validatetrans."""
 *         self._cache_constraint_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":231
 *     def mlsvalidatetrans_count(self):
 *         """The number of MLS validatetrans."""
 *         self._cache_constraint_counts()             # <<<<<<<<<<<<<<
 *         return self.constraint_counts[ConstraintRuletype.mlsvalidatetrans]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_constraint_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 231, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":232
 *         """The number of MLS validatetrans."""
 *         self._cache_constraint_counts()
 *         return self.constraint_counts[ConstraintRuletype.mlsvalidatetrans]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_mlsvalidatetrans); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->constraint_counts, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":229
 * 
 *     @property
 *     def mlsvalidatetrans_count(self):             # <<<<<<<<<<<<<<
 *         """The number of MLS validatetrans."""
 *         self._cache_constraint_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.mlsvalidatetrans_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":235
 * 
 *     @property
 *     def netifcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of netifcon statements."""
 *         return len(self.netifcons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14netifcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14netifcon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14netifcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14netifcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":237
 *     def netifcon_count(self):
 *         """The number of netifcon statements."""
 *         return len(self.netifcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_netifcons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":235
 * 
 *     @property
 *     def netifcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of netifcon statements."""
 *         return len(self.netifcons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.netifcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":240
 * 
 *     @property
 *     def neverallow_count(self):             # <<<<<<<<<<<<<<
 *         """The number of neverallow rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16neverallow_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16neverallow_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16neverallow_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16neverallow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":242
 *     def neverallow_count(self):
 *         """The number of neverallow rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.neverallow.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":243
 *         """The number of neverallow rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.neverallow.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_neverallow); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":240
 * 
 *     @property
 *     def neverallow_count(self):             # <<<<<<<<<<<<<<
 *         """The number of neverallow rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.neverallow_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":246
 * 
 *     @property
 *     def neverallowxperm_count(self):             # <<<<<<<<<<<<<<
 *         """The number of neverallowxperm rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":248
 *     def neverallowxperm_count(self):
 *         """The number of neverallowxperm rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.neverallowxperm.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":249
 *         """The number of neverallowxperm rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.neverallowxperm.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_neverallowxperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":246
 * 
 *     @property
 *     def neverallowxperm_count(self):             # <<<<<<<<<<<<<<
 *         """The number of neverallowxperm rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.neverallowxperm_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":252
 * 
 *     @property
 *     def nodecon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___2generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":254
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 254, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___2generator23, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_SELinuxPolicy___get___locals_gen, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 254, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.nodecon_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___2generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 254, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 254, __pyx_L1_error) }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_nodecons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 254, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 254, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 254, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 254, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 254, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 254, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_n);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_n, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 254, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":252
 * 
 *     @property
 *     def nodecon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22___get__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_22___get__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 252, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/selinuxpolicy.pxi":254
 *     def nodecon_count(self):
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_7__get___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":252
 * 
 *     @property
 *     def nodecon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of nodecon statements."""
 *         return sum(1 for n in self.nodecons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.nodecon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":257
 * 
 *     @property
 *     def pcidevicecon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen pcidevicecon statements."""
 *         return len(self.pcidevicecons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":259
 *     def pcidevicecon_count(self):
 *         """The number of Xen pcidevicecon statements."""
 *         return len(self.pcidevicecons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pcidevicecons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 259, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":257
 * 
 *     @property
 *     def pcidevicecon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen pcidevicecon statements."""
 *         return len(self.pcidevicecons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.pcidevicecon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":262
 * 
 *     @property
 *     def permission_count(self):             # <<<<<<<<<<<<<<
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16permission_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16permission_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___2generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":264
 *     def permission_count(self):
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 264, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___2generator24, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_SELinuxPolicy___get___locals_gen, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.permission_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___2generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  Py_ssize_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 264, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_itertools); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_chain); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 264, __pyx_L1_error) }
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_commons); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 264, __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(5, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 264, __pyx_L1_error) }
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_classes); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_7 = 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_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __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_5, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 264, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(5, 264, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(5, 264, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_9(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 264, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_perms); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_XGIVEREF(__pyx_t_3);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_8;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_9;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_3);
    __pyx_t_8 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_9 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 264, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":262
 * 
 *     @property
 *     def permission_count(self):             # <<<<<<<<<<<<<<
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24___get__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_24___get__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 262, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/selinuxpolicy.pxi":264
 *     def permission_count(self):
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16permission_count_7__get___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":262
 * 
 *     @property
 *     def permission_count(self):             # <<<<<<<<<<<<<<
 *         """The number of permissions."""
 *         return sum(len(c.perms) for c in itertools.chain(self.commons(), self.classes()))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.permission_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":267
 * 
 *     @property
 *     def permissives_count(self):             # <<<<<<<<<<<<<<
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17permissives_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17permissives_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___2generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":269
 *     def permissives_count(self):
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 269, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___2generator25, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_SELinuxPolicy___get___locals_gen, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 269, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.permissives_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___2generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L7_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 269, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 269, __pyx_L1_error) }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 269, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 269, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 269, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 269, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 269, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_t, __pyx_n_s_ispermissive); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 269, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 269, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {
      __Pyx_INCREF(__pyx_int_1);
      __pyx_r = __pyx_int_1;
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L7_resume_from_yield:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 269, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":267
 * 
 *     @property
 *     def permissives_count(self):             # <<<<<<<<<<<<<<
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26___get__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_26___get__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 267, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/selinuxpolicy.pxi":269
 *     def permissives_count(self):
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17permissives_count_7__get___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":267
 * 
 *     @property
 *     def permissives_count(self):             # <<<<<<<<<<<<<<
 *         """The number of permissive types."""
 *         return sum(1 for t in self.types() if t.ispermissive)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.permissives_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":272
 * 
 *     @property
 *     def pirqcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen pirqcon statements."""
 *         return len(self.pirqcons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":274
 *     def pirqcon_count(self):
 *         """The number of Xen pirqcon statements."""
 *         return len(self.pirqcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pirqcons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 274, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":272
 * 
 *     @property
 *     def pirqcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of Xen pirqcon statements."""
 *         return len(self.pirqcons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.pirqcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":277
 * 
 *     @property
 *     def polcap_count(self):             # <<<<<<<<<<<<<<
 *         """The number of policy capabilities."""
 *         return len(self.polcaps())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12polcap_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_12polcap_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_12polcap_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12polcap_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":279
 *     def polcap_count(self):
 *         """The number of policy capabilities."""
 *         return len(self.polcaps())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_polcaps); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 279, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":277
 * 
 *     @property
 *     def polcap_count(self):             # <<<<<<<<<<<<<<
 *         """The number of policy capabilities."""
 *         return len(self.polcaps())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.polcap_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":282
 * 
 *     @property
 *     def portcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of portcon statements."""
 *         return len(self.portcons())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13portcon_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13portcon_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_13portcon_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_13portcon_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":284
 *     def portcon_count(self):
 *         """The number of portcon statements."""
 *         return len(self.portcons())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_portcons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":282
 * 
 *     @property
 *     def portcon_count(self):             # <<<<<<<<<<<<<<
 *         """The number of portcon statements."""
 *         return len(self.portcons())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.portcon_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":287
 * 
 *     @property
 *     def role_allow_count(self):             # <<<<<<<<<<<<<<
 *         """The number of role allow rules."""
 *         return len(RoleAllowIterator.factory(self, self.handle.p.role_allow))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16role_allow_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16role_allow_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16role_allow_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16role_allow_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":289
 *     def role_allow_count(self):
 *         """The number of role allow rules."""
 *         return len(RoleAllowIterator.factory(self, self.handle.p.role_allow))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_17RoleAllowIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.role_allow); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(5, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":287
 * 
 *     @property
 *     def role_allow_count(self):             # <<<<<<<<<<<<<<
 *         """The number of role allow rules."""
 *         return len(RoleAllowIterator.factory(self, self.handle.p.role_allow))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.role_allow_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":292
 * 
 *     @property
 *     def role_transition_count(self):             # <<<<<<<<<<<<<<
 *         """The number of role_transition rules."""
 *         return len(RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21role_transition_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21role_transition_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_21role_transition_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21role_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":294
 *     def role_transition_count(self):
 *         """The number of role_transition rules."""
 *         return len(RoleTransitionIterator.factory(self, self.handle.p.role_tr))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.role_tr); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(5, 294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":292
 * 
 *     @property
 *     def role_transition_count(self):             # <<<<<<<<<<<<<<
 *         """The number of role_transition rules."""
 *         return len(RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.role_transition_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":297
 * 
 *     @property
 *     def range_transition_count(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in self.mlsrules()
 *                    if r.ruletype is MLSRuletype.range_transition)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___2generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":298
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 298, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___2generator26, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_SELinuxPolicy___get___locals_gen, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 298, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.range_transition_count.__get__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___2generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L7_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 298, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 298, __pyx_L1_error) }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_mlsrules); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 298, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 298, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 298, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 298, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 298, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 298, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":299
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()
 *                    if r.ruletype is MLSRuletype.range_transition)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_r, __pyx_n_s_ruletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_MLSRuletype); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_range_transition); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = (__pyx_t_1 == __pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = (__pyx_t_7 != 0);
    if (__pyx_t_8) {

      /* "setools/policyrep/selinuxpolicy.pxi":298
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
 */
      __Pyx_INCREF(__pyx_int_1);
      __pyx_r = __pyx_int_1;
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L7_resume_from_yield:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 298, __pyx_L1_error)

      /* "setools/policyrep/selinuxpolicy.pxi":299
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()
 *                    if r.ruletype is MLSRuletype.range_transition)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":298
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":297
 * 
 *     @property
 *     def range_transition_count(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in self.mlsrules()
 *                    if r.ruletype is MLSRuletype.range_transition)
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28___get__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_28___get__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 297, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/selinuxpolicy.pxi":298
 *     @property
 *     def range_transition_count(self):
 *         return sum(1 for r in self.mlsrules()             # <<<<<<<<<<<<<<
 *                    if r.ruletype is MLSRuletype.range_transition)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_7__get___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":297
 * 
 *     @property
 *     def range_transition_count(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in self.mlsrules()
 *                    if r.ruletype is MLSRuletype.range_transition)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.range_transition_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":302
 * 
 *     @property
 *     def role_count(self):             # <<<<<<<<<<<<<<
 *         """The number of roles."""
 *         return len(self.roles())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10role_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10role_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_10role_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10role_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":304
 *     def role_count(self):
 *         """The number of roles."""
 *         return len(self.roles())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_roles); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 304, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":302
 * 
 *     @property
 *     def role_count(self):             # <<<<<<<<<<<<<<
 *         """The number of roles."""
 *         return len(self.roles())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.role_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":307
 * 
 *     @property
 *     def type_attribute_count(self):             # <<<<<<<<<<<<<<
 *         """The number of (type) attributes."""
 *         return len(self.typeattributes())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":309
 *     def type_attribute_count(self):
 *         """The number of (type) attributes."""
 *         return len(self.typeattributes())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_typeattributes); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 309, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":307
 * 
 *     @property
 *     def type_attribute_count(self):             # <<<<<<<<<<<<<<
 *         """The number of (type) attributes."""
 *         return len(self.typeattributes())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_attribute_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":312
 * 
 *     @property
 *     def type_change_count(self):             # <<<<<<<<<<<<<<
 *         """The number of type_change rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_change_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_change_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_change_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_change_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":314
 *     def type_change_count(self):
 *         """The number of type_change rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.type_change.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":315
 *         """The number of type_change rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.type_change.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_type_change); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":312
 * 
 *     @property
 *     def type_change_count(self):             # <<<<<<<<<<<<<<
 *         """The number of type_change rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_change_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":318
 * 
 *     @property
 *     def type_count(self):             # <<<<<<<<<<<<<<
 *         """The number of types."""
 *         return len(self.types())
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10type_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10type_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_10type_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10type_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":320
 *     def type_count(self):
 *         """The number of types."""
 *         return len(self.types())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 320, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":318
 * 
 *     @property
 *     def type_count(self):             # <<<<<<<<<<<<<<
 *         """The number of types."""
 *         return len(self.types())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":323
 * 
 *     @property
 *     def type_member_count(self):             # <<<<<<<<<<<<<<
 *         """The number of type_member rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_member_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_member_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_member_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_17type_member_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":325
 *     def type_member_count(self):
 *         """The number of type_member rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.type_member.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":326
 *         """The number of type_member rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.type_member.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_type_member); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":323
 * 
 *     @property
 *     def type_member_count(self):             # <<<<<<<<<<<<<<
 *         """The number of type_member rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_member_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":329
 * 
 *     @property
 *     def type_transition_count(self):             # <<<<<<<<<<<<<<
 *         """The number of type_transition rules."""
 *         self._cache_terule_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21type_transition_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21type_transition_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_21type_transition_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_21type_transition_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":331
 *     def type_transition_count(self):
 *         """The number of type_transition rules."""
 *         self._cache_terule_counts()             # <<<<<<<<<<<<<<
 *         return self.terule_counts[TERuletype.type_transition.value]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_terule_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 331, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":332
 *         """The number of type_transition rules."""
 *         self._cache_terule_counts()
 *         return self.terule_counts[TERuletype.type_transition.value]             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_type_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_self->terule_counts, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":329
 * 
 *     @property
 *     def type_transition_count(self):             # <<<<<<<<<<<<<<
 *         """The number of type_transition rules."""
 *         self._cache_terule_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_transition_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":335
 * 
 *     @property
 *     def typebounds_count(self):             # <<<<<<<<<<<<<<
 *         """The number of typebounds rules."""
 *         return len(TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16typebounds_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_16typebounds_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16typebounds_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16typebounds_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":337
 *     def typebounds_count(self):
 *         """The number of typebounds rules."""
 *         return len(TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_18TypeboundsIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(5, 337, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":335
 * 
 *     @property
 *     def typebounds_count(self):             # <<<<<<<<<<<<<<
 *         """The number of typebounds rules."""
 *         return len(TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.typebounds_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":340
 * 
 *     @property
 *     def user_count(self):             # <<<<<<<<<<<<<<
 *         return len(self.users())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10user_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_10user_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_10user_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_10user_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":341
 *     @property
 *     def user_count(self):
 *         return len(self.users())             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_users); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":340
 * 
 *     @property
 *     def user_count(self):             # <<<<<<<<<<<<<<
 *         return len(self.users())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.user_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":344
 * 
 *     @property
 *     def validatetrans_count(self):             # <<<<<<<<<<<<<<
 *         """The number of validatetrans."""
 *         self._cache_constraint_counts()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":346
 *     def validatetrans_count(self):
 *         """The number of validatetrans."""
 *         self._cache_constraint_counts()             # <<<<<<<<<<<<<<
 *         return self.constraint_counts[ConstraintRuletype.validatetrans]
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_cache_constraint_counts(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":347
 *         """The number of validatetrans."""
 *         self._cache_constraint_counts()
 *         return self.constraint_counts[ConstraintRuletype.validatetrans]             # <<<<<<<<<<<<<<
 * 
 *     #
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ConstraintRuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_validatetrans); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_self->constraint_counts, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":344
 * 
 *     @property
 *     def validatetrans_count(self):             # <<<<<<<<<<<<<<
 *         """The number of validatetrans."""
 *         self._cache_constraint_counts()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.validatetrans_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":352
 *     # Policy components lookup functions
 *     #
 *     def lookup_boolean(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a Boolean."""
 *         for b in self.bools():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean[] = "Look up a Boolean.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_boolean (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_name));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_b = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_boolean", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":354
 *     def lookup_boolean(self, name):
 *         """Look up a Boolean."""
 *         for b in self.bools():             # <<<<<<<<<<<<<<
 *             if b == name:
 *                 return b
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bools); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 354, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 354, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 354, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 354, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_b, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":355
 *         """Look up a Boolean."""
 *         for b in self.bools():
 *             if b == name:             # <<<<<<<<<<<<<<
 *                 return b
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_b, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 355, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 355, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":356
 *         for b in self.bools():
 *             if b == name:
 *                 return b             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidBoolean("{0} is not a valid Boolean".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_b);
      __pyx_r = __pyx_v_b;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":355
 *         """Look up a Boolean."""
 *         for b in self.bools():
 *             if b == name:             # <<<<<<<<<<<<<<
 *                 return b
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":354
 *     def lookup_boolean(self, name):
 *         """Look up a Boolean."""
 *         for b in self.bools():             # <<<<<<<<<<<<<<
 *             if b == name:
 *                 return b
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":358
 *                 return b
 * 
 *         raise InvalidBoolean("{0} is not a valid Boolean".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_category(self, name, deref=True):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidBoolean); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_Boolean, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 358, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":352
 *     # Policy components lookup functions
 *     #
 *     def lookup_boolean(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a Boolean."""
 *         for b in self.bools():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":360
 *         raise InvalidBoolean("{0} is not a valid Boolean".format(name))
 * 
 *     def lookup_category(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15lookup_category(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_14lookup_category[] = "Look up a category, with optional alias dereferencing.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15lookup_category(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_deref = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_category (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_deref,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_True);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        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_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_deref);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup_category") < 0)) __PYX_ERR(5, 360, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_deref = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_category", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 360, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_category", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14lookup_category(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name, __pyx_v_deref);

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14lookup_category(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref) {
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_category", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":362
 *     def lookup_category(self, name, deref=True):
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():             # <<<<<<<<<<<<<<
 *             if c == name or (deref and name in list(c.aliases())):
 *                 return c
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_categories); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 362, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 362, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 362, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 362, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 362, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 362, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 362, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":363
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
 *             if c == name or (deref and name in list(c.aliases())):             # <<<<<<<<<<<<<<
 *                 return c
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_c, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 363, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 363, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_deref); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 363, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_aliases); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 363, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 363, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 363, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 363, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = (__pyx_t_7 != 0);
    __pyx_t_6 = __pyx_t_9;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":364
 *         for c in self.categories():
 *             if c == name or (deref and name in list(c.aliases())):
 *                 return c             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidCategory("{0} is not a valid category".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_c);
      __pyx_r = __pyx_v_c;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":363
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
 *             if c == name or (deref and name in list(c.aliases())):             # <<<<<<<<<<<<<<
 *                 return c
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":362
 *     def lookup_category(self, name, deref=True):
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():             # <<<<<<<<<<<<<<
 *             if c == name or (deref and name in list(c.aliases())):
 *                 return c
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":366
 *                 return c
 * 
 *         raise InvalidCategory("{0} is not a valid category".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_class(self, name):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InvalidCategory); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_category, __pyx_n_s_format_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 366, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":360
 *         raise InvalidBoolean("{0} is not a valid Boolean".format(name))
 * 
 *     def lookup_category(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a category, with optional alias dereferencing."""
 *         for c in self.categories():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_category", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":368
 *         raise InvalidCategory("{0} is not a valid category".format(name))
 * 
 *     def lookup_class(self, name):             # <<<<<<<<<<<<<<
 *         """Look up an object class."""
 *         for cls in self.classes():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17lookup_class(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_16lookup_class[] = "Look up an object class.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17lookup_class(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_class (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_16lookup_class(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_name));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_16lookup_class(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_cls = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_class", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":370
 *     def lookup_class(self, name):
 *         """Look up an object class."""
 *         for cls in self.classes():             # <<<<<<<<<<<<<<
 *             if cls == name:
 *                 return cls
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_classes); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 370, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 370, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 370, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 370, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 370, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 370, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_cls, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":371
 *         """Look up an object class."""
 *         for cls in self.classes():
 *             if cls == name:             # <<<<<<<<<<<<<<
 *                 return cls
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_cls, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 371, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 371, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":372
 *         for cls in self.classes():
 *             if cls == name:
 *                 return cls             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidClass("{0} is not a valid class".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_cls);
      __pyx_r = __pyx_v_cls;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":371
 *         """Look up an object class."""
 *         for cls in self.classes():
 *             if cls == name:             # <<<<<<<<<<<<<<
 *                 return cls
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":370
 *     def lookup_class(self, name):
 *         """Look up an object class."""
 *         for cls in self.classes():             # <<<<<<<<<<<<<<
 *             if cls == name:
 *                 return cls
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":374
 *                 return cls
 * 
 *         raise InvalidClass("{0} is not a valid class".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_common(self, name):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidClass); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_class, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 374, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":368
 *         raise InvalidCategory("{0} is not a valid category".format(name))
 * 
 *     def lookup_class(self, name):             # <<<<<<<<<<<<<<
 *         """Look up an object class."""
 *         for cls in self.classes():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cls);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":376
 *         raise InvalidClass("{0} is not a valid class".format(name))
 * 
 *     def lookup_common(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a common permission set."""
 *         for common in self.commons():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19lookup_common(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_18lookup_common[] = "Look up a common permission set.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19lookup_common(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_common (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_18lookup_common(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_name));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_18lookup_common(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_common = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_common", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":378
 *     def lookup_common(self, name):
 *         """Look up a common permission set."""
 *         for common in self.commons():             # <<<<<<<<<<<<<<
 *             if common == name:
 *                 return common
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_commons); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 378, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 378, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 378, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 378, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 378, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 378, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_common, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":379
 *         """Look up a common permission set."""
 *         for common in self.commons():
 *             if common == name:             # <<<<<<<<<<<<<<
 *                 return common
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_common, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 379, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 379, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":380
 *         for common in self.commons():
 *             if common == name:
 *                 return common             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidCommon("{0} is not a valid common".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_common);
      __pyx_r = __pyx_v_common;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":379
 *         """Look up a common permission set."""
 *         for common in self.commons():
 *             if common == name:             # <<<<<<<<<<<<<<
 *                 return common
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":378
 *     def lookup_common(self, name):
 *         """Look up a common permission set."""
 *         for common in self.commons():             # <<<<<<<<<<<<<<
 *             if common == name:
 *                 return common
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":382
 *                 return common
 * 
 *         raise InvalidCommon("{0} is not a valid common".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_initialsid(self, name):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidCommon); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_common, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 382, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":376
 *         raise InvalidClass("{0} is not a valid class".format(name))
 * 
 *     def lookup_common(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a common permission set."""
 *         for common in self.commons():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_common", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_common);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":384
 *         raise InvalidCommon("{0} is not a valid common".format(name))
 * 
 *     def lookup_initialsid(self, name):             # <<<<<<<<<<<<<<
 *         """Look up an initial sid."""
 *         for sid in self.initialsids():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21lookup_initialsid(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_20lookup_initialsid[] = "Look up an initial sid.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21lookup_initialsid(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_initialsid (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_20lookup_initialsid(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_name));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_20lookup_initialsid(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_sid = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_initialsid", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":386
 *     def lookup_initialsid(self, name):
 *         """Look up an initial sid."""
 *         for sid in self.initialsids():             # <<<<<<<<<<<<<<
 *             if sid == name:
 *                 return sid
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_initialsids); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 386, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 386, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 386, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 386, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_sid, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":387
 *         """Look up an initial sid."""
 *         for sid in self.initialsids():
 *             if sid == name:             # <<<<<<<<<<<<<<
 *                 return sid
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_sid, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 387, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 387, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":388
 *         for sid in self.initialsids():
 *             if sid == name:
 *                 return sid             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidInitialSid("{0} is not a valid initial SID".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_sid);
      __pyx_r = __pyx_v_sid;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":387
 *         """Look up an initial sid."""
 *         for sid in self.initialsids():
 *             if sid == name:             # <<<<<<<<<<<<<<
 *                 return sid
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":386
 *     def lookup_initialsid(self, name):
 *         """Look up an initial sid."""
 *         for sid in self.initialsids():             # <<<<<<<<<<<<<<
 *             if sid == name:
 *                 return sid
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":390
 *                 return sid
 * 
 *         raise InvalidInitialSid("{0} is not a valid initial SID".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_level(self, level):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidInitialSid); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_initial_SID, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 390, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":384
 *         raise InvalidCommon("{0} is not a valid common".format(name))
 * 
 *     def lookup_initialsid(self, name):             # <<<<<<<<<<<<<<
 *         """Look up an initial sid."""
 *         for sid in self.initialsids():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_initialsid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_sid);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":392
 *         raise InvalidInitialSid("{0} is not a valid initial SID".format(name))
 * 
 *     def lookup_level(self, level):             # <<<<<<<<<<<<<<
 *         """Look up a MLS level."""
 *         return Level.factory_from_string(self, level)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_23lookup_level(PyObject *__pyx_v_self, PyObject *__pyx_v_level); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_22lookup_level[] = "Look up a MLS level.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_23lookup_level(PyObject *__pyx_v_self, PyObject *__pyx_v_level) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_level (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_22lookup_level(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_level));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_22lookup_level(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_level) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_level", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":394
 *     def lookup_level(self, level):
 *         """Look up a MLS level."""
 *         return Level.factory_from_string(self, level)             # <<<<<<<<<<<<<<
 * 
 *     def lookup_sensitivity(self, name, deref=True):
 */
  __Pyx_XDECREF(__pyx_r);
  if (!(likely(PyUnicode_CheckExact(__pyx_v_level))||((__pyx_v_level) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_level)->tp_name), 0))) __PYX_ERR(5, 394, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory_from_string(__pyx_v_self, ((PyObject*)__pyx_v_level))); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":392
 *         raise InvalidInitialSid("{0} is not a valid initial SID".format(name))
 * 
 *     def lookup_level(self, level):             # <<<<<<<<<<<<<<
 *         """Look up a MLS level."""
 *         return Level.factory_from_string(self, level)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":396
 *         return Level.factory_from_string(self, level)
 * 
 *     def lookup_sensitivity(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity[] = "Look up a MLS sensitivity by name, with optional alias dereferencing.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_deref = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_sensitivity (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_deref,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_True);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        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_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_deref);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup_sensitivity") < 0)) __PYX_ERR(5, 396, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_deref = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_sensitivity", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 396, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_sensitivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name, __pyx_v_deref);

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref) {
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_sensitivity", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":398
 *     def lookup_sensitivity(self, name, deref=True):
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():             # <<<<<<<<<<<<<<
 *             if s == name or (deref and name in list(s.aliases())):
 *                 return s
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_sensitivities); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 398, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 398, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 398, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 398, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 398, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":399
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
 *             if s == name or (deref and name in list(s.aliases())):             # <<<<<<<<<<<<<<
 *                 return s
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_s, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 399, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 399, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_deref); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 399, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_aliases); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 399, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 399, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 399, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 399, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = (__pyx_t_7 != 0);
    __pyx_t_6 = __pyx_t_9;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":400
 *         for s in self.sensitivities():
 *             if s == name or (deref and name in list(s.aliases())):
 *                 return s             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidSensitivity("{0} is not a valid sensitivity".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_s);
      __pyx_r = __pyx_v_s;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":399
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
 *             if s == name or (deref and name in list(s.aliases())):             # <<<<<<<<<<<<<<
 *                 return s
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":398
 *     def lookup_sensitivity(self, name, deref=True):
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():             # <<<<<<<<<<<<<<
 *             if s == name or (deref and name in list(s.aliases())):
 *                 return s
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":402
 *                 return s
 * 
 *         raise InvalidSensitivity("{0} is not a valid sensitivity".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_range(self, range_):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InvalidSensitivity); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_sensitivity, __pyx_n_s_format_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 402, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":396
 *         return Level.factory_from_string(self, level)
 * 
 *     def lookup_sensitivity(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a MLS sensitivity by name, with optional alias dereferencing."""
 *         for s in self.sensitivities():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_sensitivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":404
 *         raise InvalidSensitivity("{0} is not a valid sensitivity".format(name))
 * 
 *     def lookup_range(self, range_):             # <<<<<<<<<<<<<<
 *         """Look up a MLS range."""
 *         return Range.factory_from_string(self, range_)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_27lookup_range(PyObject *__pyx_v_self, PyObject *__pyx_v_range_); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_26lookup_range[] = "Look up a MLS range.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_27lookup_range(PyObject *__pyx_v_self, PyObject *__pyx_v_range_) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_range (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_26lookup_range(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_range_));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_26lookup_range(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_range_) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_range", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":406
 *     def lookup_range(self, range_):
 *         """Look up a MLS range."""
 *         return Range.factory_from_string(self, range_)             # <<<<<<<<<<<<<<
 * 
 *     def lookup_role(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  if (!(likely(PyUnicode_CheckExact(__pyx_v_range_))||((__pyx_v_range_) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_range_)->tp_name), 0))) __PYX_ERR(5, 406, __pyx_L1_error)
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_5Range_factory_from_string(__pyx_v_self, ((PyObject*)__pyx_v_range_))); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":404
 *         raise InvalidSensitivity("{0} is not a valid sensitivity".format(name))
 * 
 *     def lookup_range(self, range_):             # <<<<<<<<<<<<<<
 *         """Look up a MLS range."""
 *         return Range.factory_from_string(self, range_)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":408
 *         return Range.factory_from_string(self, range_)
 * 
 *     def lookup_role(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a role by name."""
 *         for r in self.roles():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_29lookup_role(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_28lookup_role[] = "Look up a role by name.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_29lookup_role(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_role (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_28lookup_role(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_name));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_28lookup_role(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_r = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_role", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":410
 *     def lookup_role(self, name):
 *         """Look up a role by name."""
 *         for r in self.roles():             # <<<<<<<<<<<<<<
 *             if r == name:
 *                 return r
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_roles); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 410, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 410, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 410, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 410, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 410, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 410, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 410, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_r, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":411
 *         """Look up a role by name."""
 *         for r in self.roles():
 *             if r == name:             # <<<<<<<<<<<<<<
 *                 return r
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_r, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 411, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 411, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":412
 *         for r in self.roles():
 *             if r == name:
 *                 return r             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidRole("{0} is not a valid role".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_r);
      __pyx_r = __pyx_v_r;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":411
 *         """Look up a role by name."""
 *         for r in self.roles():
 *             if r == name:             # <<<<<<<<<<<<<<
 *                 return r
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":410
 *     def lookup_role(self, name):
 *         """Look up a role by name."""
 *         for r in self.roles():             # <<<<<<<<<<<<<<
 *             if r == name:
 *                 return r
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":414
 *                 return r
 * 
 *         raise InvalidRole("{0} is not a valid role".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_type(self, name, deref=True):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidRole); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_role, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 414, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":408
 *         return Range.factory_from_string(self, range_)
 * 
 *     def lookup_role(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a role by name."""
 *         for r in self.roles():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_role", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_r);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":416
 *         raise InvalidRole("{0} is not a valid role".format(name))
 * 
 *     def lookup_type(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_31lookup_type(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_30lookup_type[] = "Look up a type by name, with optional alias dereferencing.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_31lookup_type(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_deref = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_type (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_deref,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_True);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        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_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_deref);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup_type") < 0)) __PYX_ERR(5, 416, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_deref = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_type", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_30lookup_type(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name, __pyx_v_deref);

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_30lookup_type(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref) {
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_type", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":418
 *     def lookup_type(self, name, deref=True):
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():             # <<<<<<<<<<<<<<
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 418, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 418, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 418, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 418, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 418, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 418, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":419
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):             # <<<<<<<<<<<<<<
 *                 return t
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 419, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 419, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_deref); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 419, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_aliases); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 419, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = (__pyx_t_7 != 0);
    __pyx_t_6 = __pyx_t_9;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":420
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidType("{0} is not a valid type".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":419
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):             # <<<<<<<<<<<<<<
 *                 return t
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":418
 *     def lookup_type(self, name, deref=True):
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():             # <<<<<<<<<<<<<<
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":422
 *                 return t
 * 
 *         raise InvalidType("{0} is not a valid type".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_type_or_attr(self, name, deref=True):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_InvalidType); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_type, __pyx_n_s_format_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 422, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":416
 *         raise InvalidRole("{0} is not a valid role".format(name))
 * 
 *     def lookup_type(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type by name, with optional alias dereferencing."""
 *         for t in self.types():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":424
 *         raise InvalidType("{0} is not a valid type".format(name))
 * 
 *     def lookup_type_or_attr(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr[] = "Look up a type or type attribute by name, with optional alias dereferencing.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_deref = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_type_or_attr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_deref,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_True);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        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_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_deref);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup_type_or_attr") < 0)) __PYX_ERR(5, 424, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_deref = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lookup_type_or_attr", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(5, 424, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_type_or_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), __pyx_v_name, __pyx_v_deref);

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_deref) {
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_type_or_attr", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":426
 *     def lookup_type_or_attr(self, name, deref=True):
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():             # <<<<<<<<<<<<<<
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 426, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 426, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 426, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 426, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 426, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 426, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":427
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):             # <<<<<<<<<<<<<<
 *                 return t
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 427, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 427, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_deref); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 427, __pyx_L1_error)
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_aliases); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(5, 427, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = (__pyx_t_7 != 0);
    __pyx_t_6 = __pyx_t_9;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":428
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t             # <<<<<<<<<<<<<<
 * 
 *         for t in self.typeattributes():
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":427
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
 *             if t == name or (deref and name in list(t.aliases())):             # <<<<<<<<<<<<<<
 *                 return t
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":426
 *     def lookup_type_or_attr(self, name, deref=True):
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():             # <<<<<<<<<<<<<<
 *             if t == name or (deref and name in list(t.aliases())):
 *                 return t
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":430
 *                 return t
 * 
 *         for t in self.typeattributes():             # <<<<<<<<<<<<<<
 *             if t == name:
 *                 return t
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_typeattributes); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 430, __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_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 430, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= 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_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 430, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 430, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_4 >= 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_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 430, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 430, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_5(__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(5, 430, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":431
 * 
 *         for t in self.typeattributes():
 *             if t == name:             # <<<<<<<<<<<<<<
 *                 return t
 * 
 */
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_t, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 431, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 431, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":432
 *         for t in self.typeattributes():
 *             if t == name:
 *                 return t             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidType("{0} is not a valid type attribute".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":431
 * 
 *         for t in self.typeattributes():
 *             if t == name:             # <<<<<<<<<<<<<<
 *                 return t
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":430
 *                 return t
 * 
 *         for t in self.typeattributes():             # <<<<<<<<<<<<<<
 *             if t == name:
 *                 return t
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":434
 *                 return t
 * 
 *         raise InvalidType("{0} is not a valid type attribute".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_typeattr(self, name):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_InvalidType); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_type_attribute, __pyx_n_s_format_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_3, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __PYX_ERR(5, 434, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":424
 *         raise InvalidType("{0} is not a valid type".format(name))
 * 
 *     def lookup_type_or_attr(self, name, deref=True):             # <<<<<<<<<<<<<<
 *         """Look up a type or type attribute by name, with optional alias dereferencing."""
 *         for t in self.types():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_type_or_attr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":436
 *         raise InvalidType("{0} is not a valid type attribute".format(name))
 * 
 *     def lookup_typeattr(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr[] = "Look up a type attribute by name.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_typeattr (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_name));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_typeattr", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":438
 *     def lookup_typeattr(self, name):
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():             # <<<<<<<<<<<<<<
 *             if t == name:
 *                 return t
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_typeattributes); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 438, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 438, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 438, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 438, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":439
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
 *             if t == name:             # <<<<<<<<<<<<<<
 *                 return t
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 439, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 439, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":440
 *         for t in self.typeattributes():
 *             if t == name:
 *                 return t             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidType("{0} is not a valid type attribute".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_t);
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":439
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
 *             if t == name:             # <<<<<<<<<<<<<<
 *                 return t
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":438
 *     def lookup_typeattr(self, name):
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():             # <<<<<<<<<<<<<<
 *             if t == name:
 *                 return t
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":442
 *                 return t
 * 
 *         raise InvalidType("{0} is not a valid type attribute".format(name))             # <<<<<<<<<<<<<<
 * 
 *     def lookup_user(self, name):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidType); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_type_attribute, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 442, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":436
 *         raise InvalidType("{0} is not a valid type attribute".format(name))
 * 
 *     def lookup_typeattr(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a type attribute by name."""
 *         for t in self.typeattributes():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_typeattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":444
 *         raise InvalidType("{0} is not a valid type attribute".format(name))
 * 
 *     def lookup_user(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a user by name."""
 *         for u in self.users():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_37lookup_user(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_36lookup_user[] = "Look up a user by name.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_37lookup_user(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lookup_user (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_36lookup_user(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v_name));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_36lookup_user(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_v_u = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lookup_user", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":446
 *     def lookup_user(self, name):
 *         """Look up a user by name."""
 *         for u in self.users():             # <<<<<<<<<<<<<<
 *             if u == name:
 *                 return u
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_users); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 446, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 446, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 446, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 446, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 446, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 446, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 446, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_u, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":447
 *         """Look up a user by name."""
 *         for u in self.users():
 *             if u == name:             # <<<<<<<<<<<<<<
 *                 return u
 * 
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_u, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 447, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(5, 447, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "setools/policyrep/selinuxpolicy.pxi":448
 *         for u in self.users():
 *             if u == name:
 *                 return u             # <<<<<<<<<<<<<<
 * 
 *         raise InvalidUser("{0} is not a valid user".format(name))
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_u);
      __pyx_r = __pyx_v_u;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;

      /* "setools/policyrep/selinuxpolicy.pxi":447
 *         """Look up a user by name."""
 *         for u in self.users():
 *             if u == name:             # <<<<<<<<<<<<<<
 *                 return u
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":446
 *     def lookup_user(self, name):
 *         """Look up a user by name."""
 *         for u in self.users():             # <<<<<<<<<<<<<<
 *             if u == name:
 *                 return u
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":450
 *                 return u
 * 
 *         raise InvalidUser("{0} is not a valid user".format(name))             # <<<<<<<<<<<<<<
 * 
 *     #
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_InvalidUser); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_valid_user, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 450, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(5, 450, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":444
 *         raise InvalidType("{0} is not a valid type attribute".format(name))
 * 
 *     def lookup_user(self, name):             # <<<<<<<<<<<<<<
 *         """Look up a user by name."""
 *         for u in self.users():
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.lookup_user", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_u);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":455
 *     # Policy components iterators
 *     #
 *     def bools(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all Booleans."""
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_39bools(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_38bools[] = "Iterator which yields all Booleans.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_39bools(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bools (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_38bools(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_38bools(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bools", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":457
 *     def bools(self):
 *         """Iterator which yields all Booleans."""
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)             # <<<<<<<<<<<<<<
 * 
 *     def bounds(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_22BooleanHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_BOOLS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":455
 *     # Policy components iterators
 *     #
 *     def bools(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all Booleans."""
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.bools", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":459
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
 * 
 *     def bounds(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all *bounds statements (typebounds, etc.)"""
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_41bounds(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_40bounds[] = "Iterator which yields all *bounds statements (typebounds, etc.)";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_41bounds(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bounds (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_40bounds(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_40bounds(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bounds", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":461
 *     def bounds(self):
 *         """Iterator which yields all *bounds statements (typebounds, etc.)"""
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)             # <<<<<<<<<<<<<<
 * 
 *     def categories(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_18TypeboundsIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":459
 *         return BooleanHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_BOOLS].table)
 * 
 *     def bounds(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all *bounds statements (typebounds, etc.)"""
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.bounds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":463
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all MLS categories."""
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_43categories(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_42categories[] = "Iterator which yields all MLS categories.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_43categories(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("categories (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_42categories(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_42categories(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("categories", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":465
 *     def categories(self):
 *         """Iterator which yields all MLS categories."""
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)             # <<<<<<<<<<<<<<
 * 
 *     def classes(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_23CategoryHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_CATS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":463
 *         return TypeboundsIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def categories(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all MLS categories."""
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.categories", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":467
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
 * 
 *     def classes(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all object classes."""
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_45classes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_44classes[] = "Iterator which yields all object classes.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_45classes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("classes (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_44classes(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_44classes(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("classes", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":469
 *     def classes(self):
 *         """Iterator which yields all object classes."""
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)             # <<<<<<<<<<<<<<
 * 
 *     def commons(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_CLASSES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":467
 *         return CategoryHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CATS].table)
 * 
 *     def classes(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all object classes."""
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.classes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":471
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
 * 
 *     def commons(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all commons."""
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_47commons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_46commons[] = "Iterator which yields all commons.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_47commons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("commons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_46commons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_46commons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("commons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":473
 *     def commons(self):
 *         """Iterator which yields all commons."""
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)             # <<<<<<<<<<<<<<
 * 
 *     def defaults(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_21CommonHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_COMMONS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":471
 *         return ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table)
 * 
 *     def commons(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all commons."""
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.commons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_50generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":475
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_49defaults(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_48defaults[] = "Iterator over all default_* statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_49defaults(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("defaults (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_48defaults(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_48defaults(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("defaults", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_defaults(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_defaults, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 475, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_50generator4, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_defaults, __pyx_n_s_SELinuxPolicy_defaults, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 475, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.defaults", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_50generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("defaults", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield_from;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 475, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":477
 *     def defaults(self):
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):             # <<<<<<<<<<<<<<
 *             yield from cls.defaults()
 * 
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory(__pyx_cur_scope->__pyx_v_self, (&(__pyx_cur_scope->__pyx_v_self->handle->p.symtab[SYM_CLASSES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 477, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(5, 477, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 477, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(5, 477, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 477, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 477, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_cls);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_cls, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":478
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
 *             yield from cls.defaults()             # <<<<<<<<<<<<<<
 * 
 *     def levels(self):
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_cls, __pyx_n_s_defaults); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 478, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 478, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L6_resume_from_yield_from:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 478, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_Occurred();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(5, 478, __pyx_L1_error)
      }
    }

    /* "setools/policyrep/selinuxpolicy.pxi":477
 *     def defaults(self):
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):             # <<<<<<<<<<<<<<
 *             yield from cls.defaults()
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/selinuxpolicy.pxi":475
 *         return CommonHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_COMMONS].table)
 * 
 *     def defaults(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all default_* statements."""
 *         for cls in ObjClassHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_CLASSES].table):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("defaults", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":480
 *             yield from cls.defaults()
 * 
 *     def levels(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all level declarations."""
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_52levels(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_51levels[] = "Iterator which yields all level declarations.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_52levels(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("levels (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_51levels(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_51levels(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("levels", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":482
 *     def levels(self):
 *         """Iterator which yields all level declarations."""
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)             # <<<<<<<<<<<<<<
 * 
 *     def polcaps(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_24LevelDeclHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":480
 *             yield from cls.defaults()
 * 
 *     def levels(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all level declarations."""
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.levels", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":484
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def polcaps(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all policy capabilities."""
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_54polcaps(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_53polcaps[] = "Iterator which yields all policy capabilities.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_54polcaps(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("polcaps (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_53polcaps(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_53polcaps(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("polcaps", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":486
 *     def polcaps(self):
 *         """Iterator which yields all policy capabilities."""
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)             # <<<<<<<<<<<<<<
 * 
 *     def roles(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_24PolicyCapabilityIterator_factory(__pyx_v_self, (&__pyx_v_self->handle->p.policycaps)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":484
 *         return LevelDeclHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def polcaps(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all policy capabilities."""
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.polcaps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":488
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
 * 
 *     def roles(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_56roles(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_55roles[] = "Iterator which yields all roles.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_56roles(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("roles (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_55roles(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_55roles(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("roles", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":490
 *     def roles(self):
 *         """Iterator which yields all roles."""
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)             # <<<<<<<<<<<<<<
 * 
 *     def sensitivities(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19RoleHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_ROLES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":488
 *         return PolicyCapabilityIterator.factory(self, &self.handle.p.policycaps)
 * 
 *     def roles(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.roles", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":492
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
 * 
 *     def sensitivities(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all sensitivities."""
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_58sensitivities(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_57sensitivities[] = "Iterator over all sensitivities.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_58sensitivities(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sensitivities (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_57sensitivities(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_57sensitivities(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sensitivities", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":494
 *     def sensitivities(self):
 *         """Iterator over all sensitivities."""
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)             # <<<<<<<<<<<<<<
 * 
 *     def types(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_26SensitivityHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":492
 *         return RoleHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_ROLES].table)
 * 
 *     def sensitivities(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all sensitivities."""
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.sensitivities", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":496
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all types."""
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_60types(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_59types[] = "Iterator over all types.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_60types(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("types (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_59types(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_59types(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("types", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":498
 *     def types(self):
 *         """Iterator over all types."""
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)             # <<<<<<<<<<<<<<
 * 
 *     def typeattributes(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19TypeHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 498, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":496
 *         return SensitivityHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_LEVELS].table)
 * 
 *     def types(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all types."""
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.types", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":500
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def typeattributes(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all (type) attributes."""
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_62typeattributes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_61typeattributes[] = "Iterator over all (type) attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_62typeattributes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("typeattributes (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_61typeattributes(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_61typeattributes(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("typeattributes", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":502
 *     def typeattributes(self):
 *         """Iterator over all (type) attributes."""
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)             # <<<<<<<<<<<<<<
 * 
 *     def users(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_28TypeAttributeHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":500
 *         return TypeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def typeattributes(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all (type) attributes."""
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.typeattributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":504
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def users(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return UserHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_USERS].table)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_64users(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_63users[] = "Iterator which yields all roles.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_64users(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("users (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_63users(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_63users(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("users", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":506
 *     def users(self):
 *         """Iterator which yields all roles."""
 *         return UserHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_USERS].table)             # <<<<<<<<<<<<<<
 * 
 *     #
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19UserHashtabIterator_factory(__pyx_v_self, (&(__pyx_v_self->handle->p.symtab[SYM_USERS]).table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":504
 *         return TypeAttributeHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_TYPES].table)
 * 
 *     def users(self):             # <<<<<<<<<<<<<<
 *         """Iterator which yields all roles."""
 *         return UserHashtabIterator.factory(self, &self.handle.p.symtab[sepol.SYM_USERS].table)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.users", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":511
 *     # Policy rules iterators
 *     #
 *     def conditionals(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all conditional rule blocks."""
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_66conditionals(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_65conditionals[] = "Iterator over all conditional rule blocks.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_66conditionals(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("conditionals (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_65conditionals(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_65conditionals(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("conditionals", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":513
 *     def conditionals(self):
 *         """Iterator over all conditional rule blocks."""
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)             # <<<<<<<<<<<<<<
 * 
 *     def mlsrules(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_19ConditionalIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.cond_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":511
 *     # Policy rules iterators
 *     #
 *     def conditionals(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all conditional rule blocks."""
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.conditionals", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":515
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
 * 
 *     def mlsrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all MLS rules."""
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_68mlsrules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_67mlsrules[] = "Iterator over all MLS rules.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_68mlsrules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mlsrules (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_67mlsrules(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_67mlsrules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mlsrules", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":517
 *     def mlsrules(self):
 *         """Iterator over all MLS rules."""
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)             # <<<<<<<<<<<<<<
 * 
 *     def rbacrules(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_15MLSRuleIterator_factory(__pyx_v_self, (&__pyx_v_self->handle->p.range_tr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":515
 *         return ConditionalIterator.factory(self, self.handle.p.cond_list)
 * 
 *     def mlsrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all MLS rules."""
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.mlsrules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":519
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
 * 
 *     def rbacrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_70rbacrules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_69rbacrules[] = "Iterator over all RBAC rules.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_70rbacrules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rbacrules (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_69rbacrules(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_69rbacrules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rbacrules", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":521
 *     def rbacrules(self):
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),             # <<<<<<<<<<<<<<
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_itertools); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_chain); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_f_7setools_9policyrep_17RoleAllowIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.role_allow); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/selinuxpolicy.pxi":522
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))             # <<<<<<<<<<<<<<
 * 
 *     def terules(self):
 */
  __pyx_t_4 = __pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.role_tr); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 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_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 521, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __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_5, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 521, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":519
 *         return MLSRuleIterator.factory(self, &self.handle.p.range_tr)
 * 
 *     def rbacrules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all RBAC rules."""
 *         return itertools.chain(RoleAllowIterator.factory(self, self.handle.p.role_allow),
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.rbacrules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_73generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":524
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     def terules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_72terules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_71terules[] = "Iterator over all type enforcement rules.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_72terules(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("terules (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_71terules(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_71terules(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("terules", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_terules(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_terules, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 524, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_73generator5, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_terules, __pyx_n_s_SELinuxPolicy_terules, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 524, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.terules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_73generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("terules", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield_from;
    case 2: goto __pyx_L5_resume_from_yield_from;
    case 3: goto __pyx_L8_resume_from_yield_from;
    case 4: goto __pyx_L9_resume_from_yield_from;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 524, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":526
 *     def terules(self):
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)             # <<<<<<<<<<<<<<
 *         yield from FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans)
 * 
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_14TERuleIterator_factory(__pyx_cur_scope->__pyx_v_self, (&__pyx_cur_scope->__pyx_v_self->handle->p.te_avtab)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L4_resume_from_yield_from:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 526, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_Occurred();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(5, 526, __pyx_L1_error)
    }
  }

  /* "setools/policyrep/selinuxpolicy.pxi":527
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
 *         yield from FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans)             # <<<<<<<<<<<<<<
 * 
 *         for c in self.conditionals():
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(__pyx_cur_scope->__pyx_v_self, (&__pyx_cur_scope->__pyx_v_self->handle->p.filename_trans)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_r);
  if (likely(__pyx_r)) {
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L5_resume_from_yield_from:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 527, __pyx_L1_error)
  } else {
    PyObject* exc_type = __Pyx_PyErr_Occurred();
    if (exc_type) {
      if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
      else __PYX_ERR(5, 527, __pyx_L1_error)
    }
  }

  /* "setools/policyrep/selinuxpolicy.pxi":529
 *         yield from FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans)
 * 
 *         for c in self.conditionals():             # <<<<<<<<<<<<<<
 *             yield from c.true_rules()
 *             yield from c.false_rules()
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_conditionals); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 529, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 529, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 529, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 529, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 529, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 529, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":530
 * 
 *         for c in self.conditionals():
 *             yield from c.true_rules()             # <<<<<<<<<<<<<<
 *             yield from c.false_rules()
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_true_rules); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 3;
      return __pyx_r;
      __pyx_L8_resume_from_yield_from:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 530, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_Occurred();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(5, 530, __pyx_L1_error)
      }
    }

    /* "setools/policyrep/selinuxpolicy.pxi":531
 *         for c in self.conditionals():
 *             yield from c.true_rules()
 *             yield from c.false_rules()             # <<<<<<<<<<<<<<
 * 
 *     #
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_false_rules); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 4;
      return __pyx_r;
      __pyx_L9_resume_from_yield_from:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 531, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_Occurred();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(5, 531, __pyx_L1_error)
      }
    }

    /* "setools/policyrep/selinuxpolicy.pxi":529
 *         yield from FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans)
 * 
 *         for c in self.conditionals():             # <<<<<<<<<<<<<<
 *             yield from c.true_rules()
 *             yield from c.false_rules()
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/selinuxpolicy.pxi":524
 *                                RoleTransitionIterator.factory(self, self.handle.p.role_tr))
 * 
 *     def terules(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all type enforcement rules."""
 *         yield from TERuleIterator.factory(self, &self.handle.p.te_avtab)
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("terules", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_76generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":536
 *     # Constraints iterators
 *     #
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_75constraints(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_74constraints[] = "Iterator over all constraints (regular and MLS).";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_75constraints(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("constraints (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_74constraints(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_74constraints(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("constraints", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_constraints(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_constraints, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 536, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_76generator6, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_constraints, __pyx_n_s_SELinuxPolicy_constraints, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 536, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.constraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_76generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("constraints", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield_from;
    case 2: goto __pyx_L7_resume_from_yield_from;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 536, __pyx_L1_error)

  /* "setools/policyrep/selinuxpolicy.pxi":538
 *     def constraints(self):
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():             # <<<<<<<<<<<<<<
 *             yield from c.constraints()
 *             yield from c.validatetrans()
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_classes); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 538, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 538, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 538, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 538, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 538, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 538, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 538, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":539
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
 *             yield from c.constraints()             # <<<<<<<<<<<<<<
 *             yield from c.validatetrans()
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_constraints); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 539, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 539, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L6_resume_from_yield_from:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 539, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_Occurred();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(5, 539, __pyx_L1_error)
      }
    }

    /* "setools/policyrep/selinuxpolicy.pxi":540
 *         for c in self.classes():
 *             yield from c.constraints()
 *             yield from c.validatetrans()             # <<<<<<<<<<<<<<
 * 
 *     #
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_validatetrans); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 540, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 540, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __Pyx_Generator_Yield_From(__pyx_generator, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XGOTREF(__pyx_r);
    if (likely(__pyx_r)) {
      __Pyx_XGIVEREF(__pyx_t_2);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 2;
      return __pyx_r;
      __pyx_L7_resume_from_yield_from:;
      __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_2);
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 540, __pyx_L1_error)
    } else {
      PyObject* exc_type = __Pyx_PyErr_Occurred();
      if (exc_type) {
        if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
        else __PYX_ERR(5, 540, __pyx_L1_error)
      }
    }

    /* "setools/policyrep/selinuxpolicy.pxi":538
 *     def constraints(self):
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():             # <<<<<<<<<<<<<<
 *             yield from c.constraints()
 *             yield from c.validatetrans()
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/selinuxpolicy.pxi":536
 *     # Constraints iterators
 *     #
 *     def constraints(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all constraints (regular and MLS)."""
 *         for c in self.classes():
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("constraints", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":545
 *     # In-policy Labeling statement iterators
 *     #
 *     def fs_uses(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all fs_use_* statements."""
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_78fs_uses(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_77fs_uses[] = "Iterator over all fs_use_* statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_78fs_uses(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fs_uses (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_77fs_uses(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_77fs_uses(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fs_uses", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":547
 *     def fs_uses(self):
 *         """Iterator over all fs_use_* statements."""
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])             # <<<<<<<<<<<<<<
 * 
 *     def genfscons(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_13FSUseIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_FSUSE])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":545
 *     # In-policy Labeling statement iterators
 *     #
 *     def fs_uses(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all fs_use_* statements."""
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.fs_uses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":549
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
 * 
 *     def genfscons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all genfscon statements."""
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_80genfscons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_79genfscons[] = "Iterator over all genfscon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_80genfscons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genfscons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_79genfscons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_79genfscons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genfscons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":551
 *     def genfscons(self):
 *         """Iterator over all genfscon statements."""
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)             # <<<<<<<<<<<<<<
 * 
 *     def ibendportcons(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_16GenfsconIterator_factory(__pyx_v_self, __pyx_v_self->handle->p.genfs); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":549
 *         return FSUseIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_FSUSE])
 * 
 *     def genfscons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all genfscon statements."""
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.genfscons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":553
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
 * 
 *     def ibendportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibendportcon statements."""
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_82ibendportcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_81ibendportcons[] = "Iterator over all ibendportcon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_82ibendportcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ibendportcons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_81ibendportcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_81ibendportcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ibendportcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":555
 *     def ibendportcons(self):
 *         """Iterator over all ibendportcon statements."""
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])             # <<<<<<<<<<<<<<
 * 
 *     def ibpkeycons(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_20IbendportconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_IBENDPORT])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":553
 *         return GenfsconIterator.factory(self, self.handle.p.genfs)
 * 
 *     def ibendportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibendportcon statements."""
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ibendportcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":557
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
 * 
 *     def ibpkeycons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibpkeycon statements."""
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons[] = "Iterator over all ibpkeycon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ibpkeycons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ibpkeycons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":559
 *     def ibpkeycons(self):
 *         """Iterator over all ibpkeycon statements."""
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])             # <<<<<<<<<<<<<<
 * 
 *     def initialsids(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_17IbpkeyconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_IBPKEY])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":557
 *         return IbendportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBENDPORT])
 * 
 *     def ibpkeycons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ibpkeycon statements."""
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ibpkeycons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":561
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
 * 
 *     def initialsids(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all initial SID statements."""
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_86initialsids(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_85initialsids[] = "Iterator over all initial SID statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_86initialsids(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialsids (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_85initialsids(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_85initialsids(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("initialsids", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":563
 *     def initialsids(self):
 *         """Iterator over all initial SID statements."""
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])             # <<<<<<<<<<<<<<
 * 
 *     def netifcons(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_18InitialSIDIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_ISID])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":561
 *         return IbpkeyconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_IBPKEY])
 * 
 *     def initialsids(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all initial SID statements."""
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.initialsids", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":565
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
 * 
 *     def netifcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all netifcon statements."""
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_88netifcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_87netifcons[] = "Iterator over all netifcon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_88netifcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("netifcons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_87netifcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_87netifcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("netifcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":567
 *     def netifcons(self):
 *         """Iterator over all netifcon statements."""
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])             # <<<<<<<<<<<<<<
 * 
 *     def nodecons(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_16NetifconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_NETIF])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":565
 *         return InitialSIDIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_ISID])
 * 
 *     def netifcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all netifcon statements."""
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.netifcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":569
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
 * 
 *     def nodecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_90nodecons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_89nodecons[] = "Iterator over all nodecon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_90nodecons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nodecons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_89nodecons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_89nodecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nodecons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":571
 *     def nodecons(self):
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE],
 *                                                        NodeconIPVersion.ipv4),
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_itertools); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_chain); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":573
 *         return itertools.chain(NodeconIterator.factory(self,
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE],
 *                                                        NodeconIPVersion.ipv4),             # <<<<<<<<<<<<<<
 *                                NodeconIterator.factory(self,
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE6],
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_NodeconIPVersion); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ipv4); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":571
 *     def nodecons(self):
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE],
 *                                                        NodeconIPVersion.ipv4),
 */
  __pyx_t_2 = __pyx_f_7setools_9policyrep_15NodeconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_NODE]), __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":576
 *                                NodeconIterator.factory(self,
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE6],
 *                                                        NodeconIPVersion.ipv6))             # <<<<<<<<<<<<<<
 * 
 *     def portcons(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NodeconIPVersion); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ipv6); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":574
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE],
 *                                                        NodeconIPVersion.ipv4),
 *                                NodeconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                                        self.handle.p.ocontexts[sepol.OCON_NODE6],
 *                                                        NodeconIPVersion.ipv6))
 */
  __pyx_t_4 = __pyx_f_7setools_9policyrep_15NodeconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_NODE6]), __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 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_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 571, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __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_5, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 571, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 571, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 571, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":569
 *         return NetifconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_NETIF])
 * 
 *     def nodecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all nodecon statements."""
 *         return itertools.chain(NodeconIterator.factory(self,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.nodecons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":578
 *                                                        NodeconIPVersion.ipv6))
 * 
 *     def portcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all portcon statements."""
 *         return PortconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_PORT])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_92portcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_91portcons[] = "Iterator over all portcon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_92portcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("portcons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_91portcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_91portcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("portcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":580
 *     def portcons(self):
 *         """Iterator over all portcon statements."""
 *         return PortconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_PORT])             # <<<<<<<<<<<<<<
 * 
 *     #
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_15PortconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_PORT])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":578
 *                                                        NodeconIPVersion.ipv6))
 * 
 *     def portcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all portcon statements."""
 *         return PortconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_PORT])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.portcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":585
 *     # Xen labeling iterators
 *     #
 *     def devicetreecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_94devicetreecons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_93devicetreecons[] = "Iterator over all devicetreecon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_94devicetreecons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("devicetreecons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_93devicetreecons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_93devicetreecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("devicetreecons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":587
 *     def devicetreecons(self):
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/selinuxpolicy.pxi":588
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])             # <<<<<<<<<<<<<<
 * 
 *     def iomemcons(self):
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_21DevicetreeconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_DEVICETREE])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":585
 *     # Xen labeling iterators
 *     #
 *     def devicetreecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all devicetreecon statements."""
 *         return DevicetreeconIterator.factory(self,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.devicetreecons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":590
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])
 * 
 *     def iomemcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all iomemcon statements."""
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_96iomemcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_95iomemcons[] = "Iterator over all iomemcon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_96iomemcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("iomemcons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_95iomemcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_95iomemcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("iomemcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":592
 *     def iomemcons(self):
 *         """Iterator over all iomemcon statements."""
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])             # <<<<<<<<<<<<<<
 * 
 *     def ioportcons(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_16IomemconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_IOMEM])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":590
 *                                              self.handle.p.ocontexts[sepol.OCON_XEN_DEVICETREE])
 * 
 *     def iomemcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all iomemcon statements."""
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.iomemcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":594
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
 * 
 *     def ioportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ioportcon statements."""
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_98ioportcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_97ioportcons[] = "Iterator over all ioportcon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_98ioportcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ioportcons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_97ioportcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_97ioportcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ioportcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":596
 *     def ioportcons(self):
 *         """Iterator over all ioportcon statements."""
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])             # <<<<<<<<<<<<<<
 * 
 *     def pcidevicecons(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_17IoportconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_IOPORT])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":594
 *         return IomemconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOMEM])
 * 
 *     def ioportcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all ioportcon statements."""
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.ioportcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":598
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
 * 
 *     def pcidevicecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons[] = "Iterator over all pcidevicecon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pcidevicecons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pcidevicecons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":600
 *     def pcidevicecons(self):
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,             # <<<<<<<<<<<<<<
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/selinuxpolicy.pxi":601
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])             # <<<<<<<<<<<<<<
 * 
 *     def pirqcons(self):
 */
  __pyx_t_1 = __pyx_f_7setools_9policyrep_20PcideviceconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_PCIDEVICE])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":598
 *         return IoportconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_IOPORT])
 * 
 *     def pcidevicecons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pcidevicecon statements."""
 *         return PcideviceconIterator.factory(self,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.pcidevicecons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":603
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])
 * 
 *     def pirqcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pirqcon statements."""
 *         return PirqconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_PIRQ])
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_102pirqcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13SELinuxPolicy_101pirqcons[] = "Iterator over all pirqcon statements.";
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_102pirqcons(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pirqcons (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_101pirqcons(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_101pirqcons(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pirqcons", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":605
 *     def pirqcons(self):
 *         """Iterator over all pirqcon statements."""
 *         return PirqconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_PIRQ])             # <<<<<<<<<<<<<<
 * 
 *     #
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7setools_9policyrep_15PirqconIterator_factory(__pyx_v_self, (__pyx_v_self->handle->p.ocontexts[OCON_XEN_PIRQ])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":603
 *                                             self.handle.p.ocontexts[sepol.OCON_XEN_PCIDEVICE])
 * 
 *     def pirqcons(self):             # <<<<<<<<<<<<<<
 *         """Iterator over all pirqcon statements."""
 *         return PirqconIterator.factory(self, self.handle.p.ocontexts[sepol.OCON_XEN_PIRQ])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.pirqcons", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":610
 *     # Low-level methods
 *     #
 *     cdef inline sepol.cond_bool_datum_t* boolean_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.bool_val_to_struct[value]
 */

static CYTHON_INLINE cond_bool_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  cond_bool_datum_t *__pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("boolean_value_to_datum", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":612
 *     cdef inline sepol.cond_bool_datum_t* boolean_value_to_datum(self, size_t value):
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.bool_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str boolean_value_to_name(self, size_t value):
 */
  __pyx_r = (__pyx_v_self->handle->p.bool_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":610
 *     # Low-level methods
 *     #
 *     cdef inline sepol.cond_bool_datum_t* boolean_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.bool_val_to_struct[value]
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":614
 *         return self.handle.p.bool_val_to_struct[value]
 * 
 *     cdef inline str boolean_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the boolean by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])
 */

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("boolean_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":616
 *     cdef inline str boolean_value_to_name(self, size_t value):
 *         """Return the name of the boolean by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.cat_datum_t* category_value_to_datum(self, size_t value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_BOOLS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(5, 616, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":614
 *         return self.handle.p.bool_val_to_struct[value]
 * 
 *     cdef inline str boolean_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the boolean by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.boolean_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":618
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])
 * 
 *     cdef inline sepol.cat_datum_t* category_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the category datum for the specified category value."""
 *         return self.cat_val_to_struct[value]
 */

static CYTHON_INLINE cat_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  cat_datum_t *__pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("category_value_to_datum", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":620
 *     cdef inline sepol.cat_datum_t* category_value_to_datum(self, size_t value):
 *         """Return the category datum for the specified category value."""
 *         return self.cat_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str category_value_to_name(self, size_t value):
 */
  __pyx_r = (__pyx_v_self->cat_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":618
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_BOOLS][value])
 * 
 *     cdef inline sepol.cat_datum_t* category_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the category datum for the specified category value."""
 *         return self.cat_val_to_struct[value]
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":622
 *         return self.cat_val_to_struct[value]
 * 
 *     cdef inline str category_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the category by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])
 */

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("category_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":624
 *     cdef inline str category_value_to_name(self, size_t value):
 *         """Return the name of the category by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.class_datum_t* class_value_to_datum(self, size_t value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_CATS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(5, 624, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":622
 *         return self.cat_val_to_struct[value]
 * 
 *     cdef inline str category_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the category by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.category_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":626
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])
 * 
 *     cdef inline sepol.class_datum_t* class_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.class_val_to_struct[value]
 */

static CYTHON_INLINE class_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  class_datum_t *__pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("class_value_to_datum", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":628
 *     cdef inline sepol.class_datum_t* class_value_to_datum(self, size_t value):
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.class_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str class_value_to_name(self, size_t value):
 */
  __pyx_r = (__pyx_v_self->handle->p.class_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":626
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CATS][value])
 * 
 *     cdef inline sepol.class_datum_t* class_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the class datum for the specified class value."""
 *         return self.handle.p.class_val_to_struct[value]
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":630
 *         return self.handle.p.class_val_to_struct[value]
 * 
 *     cdef inline str class_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the class by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])
 */

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("class_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":632
 *     cdef inline str class_value_to_name(self, size_t value):
 *         """Return the name of the class by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str common_value_to_name(self, size_t value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_CLASSES])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(5, 632, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":630
 *         return self.handle.p.class_val_to_struct[value]
 * 
 *     cdef inline str class_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the class by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.class_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":634
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])
 * 
 *     cdef inline str common_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the common by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])
 */

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("common_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":636
 *     cdef inline str common_value_to_name(self, size_t value):
 *         """Return the name of the common by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.level_datum_t* level_value_to_datum(self, size_t value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_COMMONS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(5, 636, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":634
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_CLASSES][value])
 * 
 *     cdef inline str common_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the common by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.common_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":638
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])
 * 
 *     cdef inline sepol.level_datum_t* level_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the level datum for the specified level value."""
 *         return self.level_val_to_struct[value]
 */

static CYTHON_INLINE level_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  level_datum_t *__pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("level_value_to_datum", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":640
 *     cdef inline sepol.level_datum_t* level_value_to_datum(self, size_t value):
 *         """Return the level datum for the specified level value."""
 *         return self.level_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str level_value_to_name(self, size_t value):
 */
  __pyx_r = (__pyx_v_self->level_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":638
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_COMMONS][value])
 * 
 *     cdef inline sepol.level_datum_t* level_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the level datum for the specified level value."""
 *         return self.level_val_to_struct[value]
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":642
 *         return self.level_val_to_struct[value]
 * 
 *     cdef inline str level_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the level by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])
 */

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("level_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":644
 *     cdef inline str level_value_to_name(self, size_t value):
 *         """Return the name of the level by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.role_datum_t* role_value_to_datum(self, size_t value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_LEVELS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(5, 644, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":642
 *         return self.level_val_to_struct[value]
 * 
 *     cdef inline str level_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the level by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.level_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":646
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])
 * 
 *     cdef inline sepol.role_datum_t* role_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the role datum for the specified role value."""
 *         return self.handle.p.role_val_to_struct[value]
 */

static CYTHON_INLINE role_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  role_datum_t *__pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("role_value_to_datum", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":648
 *     cdef inline sepol.role_datum_t* role_value_to_datum(self, size_t value):
 *         """Return the role datum for the specified role value."""
 *         return self.handle.p.role_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str role_value_to_name(self, size_t value):
 */
  __pyx_r = (__pyx_v_self->handle->p.role_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":646
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_LEVELS][value])
 * 
 *     cdef inline sepol.role_datum_t* role_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the role datum for the specified role value."""
 *         return self.handle.p.role_val_to_struct[value]
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":650
 *         return self.handle.p.role_val_to_struct[value]
 * 
 *     cdef inline str role_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the role by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])
 */

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("role_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":652
 *     cdef inline str role_value_to_name(self, size_t value):
 *         """Return the name of the role by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.type_datum_t* type_value_to_datum(self, size_t value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_ROLES])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(5, 652, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":650
 *         return self.handle.p.role_val_to_struct[value]
 * 
 *     cdef inline str role_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the role by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.role_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":654
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])
 * 
 *     cdef inline sepol.type_datum_t* type_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the type datum for the specified type value."""
 *         return self.handle.p.type_val_to_struct[value]
 */

static CYTHON_INLINE type_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  type_datum_t *__pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("type_value_to_datum", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":656
 *     cdef inline sepol.type_datum_t* type_value_to_datum(self, size_t value):
 *         """Return the type datum for the specified type value."""
 *         return self.handle.p.type_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str type_value_to_name(self, size_t value):
 */
  __pyx_r = (__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":654
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_ROLES][value])
 * 
 *     cdef inline sepol.type_datum_t* type_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the type datum for the specified type value."""
 *         return self.handle.p.type_val_to_struct[value]
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":658
 *         return self.handle.p.type_val_to_struct[value]
 * 
 *     cdef inline str type_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the type/attribute by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])
 */

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":660
 *     cdef inline str type_value_to_name(self, size_t value):
 *         """Return the name of the type/attribute by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])             # <<<<<<<<<<<<<<
 * 
 *     cdef inline sepol.user_datum_t* user_value_to_datum(self, size_t value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_TYPES])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(5, 660, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":658
 *         return self.handle.p.type_val_to_struct[value]
 * 
 *     cdef inline str type_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the type/attribute by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.type_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":662
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])
 * 
 *     cdef inline sepol.user_datum_t* user_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the user datum for the specified user value."""
 *         return self.handle.p.user_val_to_struct[value]
 */

static CYTHON_INLINE user_datum_t *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  user_datum_t *__pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("user_value_to_datum", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":664
 *     cdef inline sepol.user_datum_t* user_value_to_datum(self, size_t value):
 *         """Return the user datum for the specified user value."""
 *         return self.handle.p.user_val_to_struct[value]             # <<<<<<<<<<<<<<
 * 
 *     cdef inline str user_value_to_name(self, size_t value):
 */
  __pyx_r = (__pyx_v_self->handle->p.user_val_to_struct[__pyx_v_value]);
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":662
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_TYPES][value])
 * 
 *     cdef inline sepol.user_datum_t* user_value_to_datum(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the user datum for the specified user value."""
 *         return self.handle.p.user_val_to_struct[value]
 */

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

/* "setools/policyrep/selinuxpolicy.pxi":666
 *         return self.handle.p.user_val_to_struct[value]
 * 
 *     cdef inline str user_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the user by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_USERS][value])
 */

static CYTHON_INLINE PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, size_t __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("user_value_to_name", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":668
 *     cdef inline str user_value_to_name(self, size_t value):
 *         """Return the name of the user by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_USERS][value])             # <<<<<<<<<<<<<<
 * 
 *     #
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromString(((__pyx_v_self->handle->p.sym_val_to_name[SYM_USERS])[__pyx_v_value])); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(5, 668, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/selinuxpolicy.pxi":666
 *         return self.handle.p.user_val_to_struct[value]
 * 
 *     cdef inline str user_value_to_name(self, size_t value):             # <<<<<<<<<<<<<<
 *         """Return the name of the user by its value."""
 *         return intern(self.handle.p.sym_val_to_name[sepol.SYM_USERS][value])
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.user_value_to_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":673
 *     # Internal methods
 *     #
 *     cdef _load_policy(self, str filename):             # <<<<<<<<<<<<<<
 *         """Load the specified policy."""
 *         cdef:
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_policy(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, PyObject *__pyx_v_filename) {
  sepol_policy_file_t *__pyx_v_pfile;
  FILE *__pyx_v_infile;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  char const *__pyx_t_7;
  char *__pyx_t_8;
  PyObject *__pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  unsigned int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_policy", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":676
 *         """Load the specified policy."""
 *         cdef:
 *             sepol.sepol_policy_file_t *pfile = NULL             # <<<<<<<<<<<<<<
 *             FILE *infile = NULL
 * 
 */
  __pyx_v_pfile = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":677
 *         cdef:
 *             sepol.sepol_policy_file_t *pfile = NULL
 *             FILE *infile = NULL             # <<<<<<<<<<<<<<
 * 
 *         self.log.info("Opening SELinux policy \"{0}\"".format(filename))
 */
  __pyx_v_infile = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":679
 *             FILE *infile = NULL
 * 
 *         self.log.info("Opening SELinux policy \"{0}\"".format(filename))             # <<<<<<<<<<<<<<
 * 
 *         self.sh = sepol.sepol_handle_create()
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Opening_SELinux_policy_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 679, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_filename);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 679, __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_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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":681
 *         self.log.info("Opening SELinux policy \"{0}\"".format(filename))
 * 
 *         self.sh = sepol.sepol_handle_create()             # <<<<<<<<<<<<<<
 *         if self.sh == NULL:
 *             raise MemoryError
 */
  __pyx_v_self->sh = sepol_handle_create();

  /* "setools/policyrep/selinuxpolicy.pxi":682
 * 
 *         self.sh = sepol.sepol_handle_create()
 *         if self.sh == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  __pyx_t_6 = ((__pyx_v_self->sh == NULL) != 0);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/selinuxpolicy.pxi":683
 *         self.sh = sepol.sepol_handle_create()
 *         if self.sh == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         sepol.sepol_msg_set_callback(self.sh, sepol_logging_callback, self.handle)
 */
    PyErr_NoMemory(); __PYX_ERR(5, 683, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":682
 * 
 *         self.sh = sepol.sepol_handle_create()
 *         if self.sh == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":685
 *             raise MemoryError
 * 
 *         sepol.sepol_msg_set_callback(self.sh, sepol_logging_callback, self.handle)             # <<<<<<<<<<<<<<
 * 
 *         if sepol.sepol_policydb_create(&self.handle) < 0:
 */
  sepol_msg_set_callback(__pyx_v_self->sh, __pyx_f_7setools_9policyrep_sepol_logging_callback, __pyx_v_self->handle);

  /* "setools/policyrep/selinuxpolicy.pxi":687
 *         sepol.sepol_msg_set_callback(self.sh, sepol_logging_callback, self.handle)
 * 
 *         if sepol.sepol_policydb_create(&self.handle) < 0:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  __pyx_t_6 = ((sepol_policydb_create((&__pyx_v_self->handle)) < 0) != 0);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/selinuxpolicy.pxi":688
 * 
 *         if sepol.sepol_policydb_create(&self.handle) < 0:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         if sepol.sepol_policy_file_create(&pfile) < 0:
 */
    PyErr_NoMemory(); __PYX_ERR(5, 688, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":687
 *         sepol.sepol_msg_set_callback(self.sh, sepol_logging_callback, self.handle)
 * 
 *         if sepol.sepol_policydb_create(&self.handle) < 0:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":690
 *             raise MemoryError
 * 
 *         if sepol.sepol_policy_file_create(&pfile) < 0:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  __pyx_t_6 = ((sepol_policy_file_create((&__pyx_v_pfile)) < 0) != 0);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/selinuxpolicy.pxi":691
 * 
 *         if sepol.sepol_policy_file_create(&pfile) < 0:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         infile = fopen(filename, "rb")
 */
    PyErr_NoMemory(); __PYX_ERR(5, 691, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":690
 *             raise MemoryError
 * 
 *         if sepol.sepol_policy_file_create(&pfile) < 0:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":693
 *             raise MemoryError
 * 
 *         infile = fopen(filename, "rb")             # <<<<<<<<<<<<<<
 *         if infile == NULL:
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)
 */
  __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_v_filename); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(5, 693, __pyx_L1_error)
  __pyx_v_infile = fopen(__pyx_t_7, ((char const *)"rb"));

  /* "setools/policyrep/selinuxpolicy.pxi":694
 * 
 *         infile = fopen(filename, "rb")
 *         if infile == NULL:             # <<<<<<<<<<<<<<
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)
 * 
 */
  __pyx_t_6 = ((__pyx_v_infile == NULL) != 0);
  if (__pyx_t_6) {

    /* "setools/policyrep/selinuxpolicy.pxi":695
 *         infile = fopen(filename, "rb")
 *         if infile == NULL:
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)             # <<<<<<<<<<<<<<
 * 
 *         sepol.sepol_policy_file_set_handle(pfile, self.sh)
 */
    __pyx_t_8 = __Pyx_PyObject_AsWritableString(__pyx_v_filename); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(5, 695, __pyx_L1_error)
    __pyx_t_9 = PyErr_SetFromErrnoWithFilename(__pyx_builtin_OSError, __pyx_t_8); if (unlikely(__pyx_t_9 == ((PyObject *)NULL))) __PYX_ERR(5, 695, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":694
 * 
 *         infile = fopen(filename, "rb")
 *         if infile == NULL:             # <<<<<<<<<<<<<<
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":697
 *             PyErr_SetFromErrnoWithFilename(OSError, filename)
 * 
 *         sepol.sepol_policy_file_set_handle(pfile, self.sh)             # <<<<<<<<<<<<<<
 *         sepol.sepol_policy_file_set_fp(pfile, infile)
 * 
 */
  sepol_policy_file_set_handle(__pyx_v_pfile, __pyx_v_self->sh);

  /* "setools/policyrep/selinuxpolicy.pxi":698
 * 
 *         sepol.sepol_policy_file_set_handle(pfile, self.sh)
 *         sepol.sepol_policy_file_set_fp(pfile, infile)             # <<<<<<<<<<<<<<
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:
 */
  sepol_policy_file_set_fp(__pyx_v_pfile, __pyx_v_infile);

  /* "setools/policyrep/selinuxpolicy.pxi":700
 *         sepol.sepol_policy_file_set_fp(pfile, infile)
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:             # <<<<<<<<<<<<<<
 *             raise InvalidPolicy("Invalid policy: {}. A binary policy must be specified. "
 *                                 "(use e.g. policy.{} or sepolicy) Source policies are not "
 */
  __pyx_t_6 = ((sepol_policydb_read(__pyx_v_self->handle, __pyx_v_pfile) < 0) != 0);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/selinuxpolicy.pxi":701
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:
 *             raise InvalidPolicy("Invalid policy: {}. A binary policy must be specified. "             # <<<<<<<<<<<<<<
 *                                 "(use e.g. policy.{} or sepolicy) Source policies are not "
 *                                 "supported.".format(filename,
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_InvalidPolicy); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);

    /* "setools/policyrep/selinuxpolicy.pxi":703
 *             raise InvalidPolicy("Invalid policy: {}. A binary policy must be specified. "
 *                                 "(use e.g. policy.{} or sepolicy) Source policies are not "
 *                                 "supported.".format(filename,             # <<<<<<<<<<<<<<
 *                                                     sepol.sepol_policy_kern_vers_max()))
 * 
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Invalid_policy_A_binary_policy_m, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "setools/policyrep/selinuxpolicy.pxi":704
 *                                 "(use e.g. policy.{} or sepolicy) Source policies are not "
 *                                 "supported.".format(filename,
 *                                                     sepol.sepol_policy_kern_vers_max()))             # <<<<<<<<<<<<<<
 * 
 *         fclose(infile)
 */
    __pyx_t_5 = __Pyx_PyInt_From_int(sepol_policy_kern_vers_max()); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 704, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = NULL;
    __pyx_t_11 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_11 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_filename, __pyx_t_5};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 703, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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_10, __pyx_v_filename, __pyx_t_5};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 703, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 703, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (__pyx_t_10) {
        __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL;
      }
      __Pyx_INCREF(__pyx_v_filename);
      __Pyx_GIVEREF(__pyx_v_filename);
      PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_v_filename);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 703, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(5, 701, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":700
 *         sepol.sepol_policy_file_set_fp(pfile, infile)
 * 
 *         if sepol.sepol_policydb_read(self.handle, pfile) < 0:             # <<<<<<<<<<<<<<
 *             raise InvalidPolicy("Invalid policy: {}. A binary policy must be specified. "
 *                                 "(use e.g. policy.{} or sepolicy) Source policies are not "
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":706
 *                                                     sepol.sepol_policy_kern_vers_max()))
 * 
 *         fclose(infile)             # <<<<<<<<<<<<<<
 *         sepol.sepol_policy_file_free(pfile)
 * 
 */
  (void)(fclose(__pyx_v_infile));

  /* "setools/policyrep/selinuxpolicy.pxi":707
 * 
 *         fclose(infile)
 *         sepol.sepol_policy_file_free(pfile)             # <<<<<<<<<<<<<<
 * 
 *         #
 */
  sepol_policy_file_free(__pyx_v_pfile);

  /* "setools/policyrep/selinuxpolicy.pxi":712
 *         # Load policy properties
 *         #
 *         self.handle_unknown = HandleUnknown(self.handle.p.handle_unknown)             # <<<<<<<<<<<<<<
 *         self.target_platform = PolicyTarget(self.handle.p.target_platform)
 *         self.version = self.handle.p.policyvers
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_HandleUnknown); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->handle->p.handle_unknown); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->handle_unknown);
  __Pyx_DECREF(__pyx_v_self->handle_unknown);
  __pyx_v_self->handle_unknown = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":713
 *         #
 *         self.handle_unknown = HandleUnknown(self.handle.p.handle_unknown)
 *         self.target_platform = PolicyTarget(self.handle.p.target_platform)             # <<<<<<<<<<<<<<
 *         self.version = self.handle.p.policyvers
 *         self.mls = <bint>self.handle.p.mls
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PolicyTarget); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->handle->p.target_platform); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 713, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->target_platform);
  __Pyx_DECREF(__pyx_v_self->target_platform);
  __pyx_v_self->target_platform = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":714
 *         self.handle_unknown = HandleUnknown(self.handle.p.handle_unknown)
 *         self.target_platform = PolicyTarget(self.handle.p.target_platform)
 *         self.version = self.handle.p.policyvers             # <<<<<<<<<<<<<<
 *         self.mls = <bint>self.handle.p.mls
 * 
 */
  __pyx_t_13 = __pyx_v_self->handle->p.policyvers;
  __pyx_v_self->version = __pyx_t_13;

  /* "setools/policyrep/selinuxpolicy.pxi":715
 *         self.target_platform = PolicyTarget(self.handle.p.target_platform)
 *         self.version = self.handle.p.policyvers
 *         self.mls = <bint>self.handle.p.mls             # <<<<<<<<<<<<<<
 * 
 *         #
 */
  __pyx_v_self->mls = (__pyx_v_self->handle->p.mls != 0);

  /* "setools/policyrep/selinuxpolicy.pxi":720
 *         # (Re)create data structures
 *         #
 *         if self.handle.p.attr_type_map != NULL:             # <<<<<<<<<<<<<<
 *             self._rebuild_attrs_from_map()
 *             # if source policies are supported in the
 */
  __pyx_t_6 = ((__pyx_v_self->handle->p.attr_type_map != NULL) != 0);
  if (__pyx_t_6) {

    /* "setools/policyrep/selinuxpolicy.pxi":721
 *         #
 *         if self.handle.p.attr_type_map != NULL:
 *             self._rebuild_attrs_from_map()             # <<<<<<<<<<<<<<
 *             # if source policies are supported in the
 *             # future this should only run on the
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_rebuild_attrs_from_map(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 721, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":720
 *         # (Re)create data structures
 *         #
 *         if self.handle.p.attr_type_map != NULL:             # <<<<<<<<<<<<<<
 *             self._rebuild_attrs_from_map()
 *             # if source policies are supported in the
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":727
 *             #self._synthesize_attrs()
 * 
 *         self._set_permissive_flags()             # <<<<<<<<<<<<<<
 * 
 *         if self.mls:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_set_permissive_flags(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 727, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":729
 *         self._set_permissive_flags()
 * 
 *         if self.mls:             # <<<<<<<<<<<<<<
 *             self._create_mls_val_to_struct()
 * 
 */
  __pyx_t_6 = (__pyx_v_self->mls != 0);
  if (__pyx_t_6) {

    /* "setools/policyrep/selinuxpolicy.pxi":730
 * 
 *         if self.mls:
 *             self._create_mls_val_to_struct()             # <<<<<<<<<<<<<<
 * 
 *         #
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_create_mls_val_to_struct(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 730, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":729
 *         self._set_permissive_flags()
 * 
 *         if self.mls:             # <<<<<<<<<<<<<<
 *             self._create_mls_val_to_struct()
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":735
 *         # Create value to alias mappings
 *         #
 *         self._load_type_aliases()             # <<<<<<<<<<<<<<
 * 
 *         if self.mls:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_type_aliases(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":737
 *         self._load_type_aliases()
 * 
 *         if self.mls:             # <<<<<<<<<<<<<<
 *             self._load_sensitivity_aliases()
 *             self._load_category_aliases()
 */
  __pyx_t_6 = (__pyx_v_self->mls != 0);
  if (__pyx_t_6) {

    /* "setools/policyrep/selinuxpolicy.pxi":738
 * 
 *         if self.mls:
 *             self._load_sensitivity_aliases()             # <<<<<<<<<<<<<<
 *             self._load_category_aliases()
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_sensitivity_aliases(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":739
 *         if self.mls:
 *             self._load_sensitivity_aliases()
 *             self._load_category_aliases()             # <<<<<<<<<<<<<<
 * 
 *         self.log.info("Successfully opened SELinux policy \"{0}\"".format(filename))
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_category_aliases(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 739, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":737
 *         self._load_type_aliases()
 * 
 *         if self.mls:             # <<<<<<<<<<<<<<
 *             self._load_sensitivity_aliases()
 *             self._load_category_aliases()
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":741
 *             self._load_category_aliases()
 * 
 *         self.log.info("Successfully opened SELinux policy \"{0}\"".format(filename))             # <<<<<<<<<<<<<<
 *         self.path = filename
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Successfully_opened_SELinux_poli, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_12, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_filename);
  __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 741, __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_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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":742
 * 
 *         self.log.info("Successfully opened SELinux policy \"{0}\"".format(filename))
 *         self.path = filename             # <<<<<<<<<<<<<<
 * 
 *     cdef _load_running_policy(self):
 */
  __Pyx_INCREF(__pyx_v_filename);
  __Pyx_GIVEREF(__pyx_v_filename);
  __Pyx_GOTREF(__pyx_v_self->path);
  __Pyx_DECREF(__pyx_v_self->path);
  __pyx_v_self->path = __pyx_v_filename;

  /* "setools/policyrep/selinuxpolicy.pxi":673
 *     # Internal methods
 *     #
 *     cdef _load_policy(self, str filename):             # <<<<<<<<<<<<<<
 *         """Load the specified policy."""
 *         cdef:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":744
 *         self.path = filename
 * 
 *     cdef _load_running_policy(self):             # <<<<<<<<<<<<<<
 *         """Try to load the current running policy."""
 *         cdef:
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_running_policy(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  int __pyx_v_min_ver;
  int __pyx_v_max_ver;
  char const *__pyx_v_base_policy_path;
  char const *__pyx_v_current_policy_path;
  PyObject *__pyx_v_potential_policies = 0;
  long __pyx_v_version;
  PyObject *__pyx_v_filename = NULL;
  PyObject *__pyx_v_err = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  long __pyx_t_12;
  long __pyx_t_13;
  long __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  int __pyx_t_19;
  char const *__pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  PyObject *__pyx_t_24 = NULL;
  PyObject *__pyx_t_25 = NULL;
  PyObject *__pyx_t_26 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_running_policy", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":747
 *         """Try to load the current running policy."""
 *         cdef:
 *             int min_ver = sepol.sepol_policy_kern_vers_min()             # <<<<<<<<<<<<<<
 *             int max_ver = sepol.sepol_policy_kern_vers_max()
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()
 */
  __pyx_v_min_ver = sepol_policy_kern_vers_min();

  /* "setools/policyrep/selinuxpolicy.pxi":748
 *         cdef:
 *             int min_ver = sepol.sepol_policy_kern_vers_min()
 *             int max_ver = sepol.sepol_policy_kern_vers_max()             # <<<<<<<<<<<<<<
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()
 *             const char *current_policy_path = selinux.selinux_current_policy_path()
 */
  __pyx_v_max_ver = sepol_policy_kern_vers_max();

  /* "setools/policyrep/selinuxpolicy.pxi":749
 *             int min_ver = sepol.sepol_policy_kern_vers_min()
 *             int max_ver = sepol.sepol_policy_kern_vers_max()
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()             # <<<<<<<<<<<<<<
 *             const char *current_policy_path = selinux.selinux_current_policy_path()
 *             list potential_policies = []
 */
  __pyx_v_base_policy_path = selinux_binary_policy_path();

  /* "setools/policyrep/selinuxpolicy.pxi":750
 *             int max_ver = sepol.sepol_policy_kern_vers_max()
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()
 *             const char *current_policy_path = selinux.selinux_current_policy_path()             # <<<<<<<<<<<<<<
 *             list potential_policies = []
 * 
 */
  __pyx_v_current_policy_path = selinux_current_policy_path();

  /* "setools/policyrep/selinuxpolicy.pxi":751
 *             const char *base_policy_path = selinux.selinux_binary_policy_path()
 *             const char *current_policy_path = selinux.selinux_current_policy_path()
 *             list potential_policies = []             # <<<<<<<<<<<<<<
 * 
 *         self.log.info("Attempting to locate current running policy.")
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_potential_policies = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":753
 *             list potential_policies = []
 * 
 *         self.log.info("Attempting to locate current running policy.")             # <<<<<<<<<<<<<<
 *         self.log.debug("SELinuxfs exists: {}".format(selinux.selinuxfs_exists()))
 *         self.log.debug("Sepol version range: {}-{}".format(min_ver, max_ver))
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 753, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_Attempting_to_locate_current_run) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_Attempting_to_locate_current_run);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 753, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":754
 * 
 *         self.log.info("Attempting to locate current running policy.")
 *         self.log.debug("SELinuxfs exists: {}".format(selinux.selinuxfs_exists()))             # <<<<<<<<<<<<<<
 *         self.log.debug("Sepol version range: {}-{}".format(min_ver, max_ver))
 *         self.log.debug("Current policy path: {}".format(current_policy_path
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_SELinuxfs_exists, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyBool_FromLong(selinuxfs_exists()); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 754, __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_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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":755
 *         self.log.info("Attempting to locate current running policy.")
 *         self.log.debug("SELinuxfs exists: {}".format(selinux.selinuxfs_exists()))
 *         self.log.debug("Sepol version range: {}-{}".format(min_ver, max_ver))             # <<<<<<<<<<<<<<
 *         self.log.debug("Current policy path: {}".format(current_policy_path
 *                                                         if current_policy_path != NULL else None))
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Sepol_version_range, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_min_ver); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_max_ver); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_6};
    __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 755, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_6};
    __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 755, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else
  #endif
  {
    __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__pyx_t_7) {
      __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":756
 *         self.log.debug("SELinuxfs exists: {}".format(selinux.selinuxfs_exists()))
 *         self.log.debug("Sepol version range: {}-{}".format(min_ver, max_ver))
 *         self.log.debug("Current policy path: {}".format(current_policy_path             # <<<<<<<<<<<<<<
 *                                                         if current_policy_path != NULL else None))
 *         self.log.debug("Binary policy path: {}".format(base_policy_path
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Current_policy_path, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/selinuxpolicy.pxi":757
 *         self.log.debug("Sepol version range: {}-{}".format(min_ver, max_ver))
 *         self.log.debug("Current policy path: {}".format(current_policy_path
 *                                                         if current_policy_path != NULL else None))             # <<<<<<<<<<<<<<
 *         self.log.debug("Binary policy path: {}".format(base_policy_path
 *                                                        if base_policy_path != NULL else None))
 */
  if (((__pyx_v_current_policy_path != NULL) != 0)) {

    /* "setools/policyrep/selinuxpolicy.pxi":756
 *         self.log.debug("SELinuxfs exists: {}".format(selinux.selinuxfs_exists()))
 *         self.log.debug("Sepol version range: {}-{}".format(min_ver, max_ver))
 *         self.log.debug("Current policy path: {}".format(current_policy_path             # <<<<<<<<<<<<<<
 *                                                         if current_policy_path != NULL else None))
 *         self.log.debug("Binary policy path: {}".format(base_policy_path
 */
    __pyx_t_6 = __Pyx_PyStr_FromString(__pyx_v_current_policy_path); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 756, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = __pyx_t_6;
    __pyx_t_6 = 0;
  } else {

    /* "setools/policyrep/selinuxpolicy.pxi":757
 *         self.log.debug("Sepol version range: {}-{}".format(min_ver, max_ver))
 *         self.log.debug("Current policy path: {}".format(current_policy_path
 *                                                         if current_policy_path != NULL else None))             # <<<<<<<<<<<<<<
 *         self.log.debug("Binary policy path: {}".format(base_policy_path
 *                                                        if base_policy_path != NULL else None))
 */
    __Pyx_INCREF(Py_None);
    __pyx_t_9 = Py_None;
  }
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 756, __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_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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":758
 *         self.log.debug("Current policy path: {}".format(current_policy_path
 *                                                         if current_policy_path != NULL else None))
 *         self.log.debug("Binary policy path: {}".format(base_policy_path             # <<<<<<<<<<<<<<
 *                                                        if base_policy_path != NULL else None))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Binary_policy_path, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/selinuxpolicy.pxi":759
 *                                                         if current_policy_path != NULL else None))
 *         self.log.debug("Binary policy path: {}".format(base_policy_path
 *                                                        if base_policy_path != NULL else None))             # <<<<<<<<<<<<<<
 * 
 *         # first try libselinux for current policy
 */
  if (((__pyx_v_base_policy_path != NULL) != 0)) {

    /* "setools/policyrep/selinuxpolicy.pxi":758
 *         self.log.debug("Current policy path: {}".format(current_policy_path
 *                                                         if current_policy_path != NULL else None))
 *         self.log.debug("Binary policy path: {}".format(base_policy_path             # <<<<<<<<<<<<<<
 *                                                        if base_policy_path != NULL else None))
 * 
 */
    __pyx_t_6 = __Pyx_PyStr_FromString(__pyx_v_base_policy_path); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = __pyx_t_6;
    __pyx_t_6 = 0;
  } else {

    /* "setools/policyrep/selinuxpolicy.pxi":759
 *                                                         if current_policy_path != NULL else None))
 *         self.log.debug("Binary policy path: {}".format(base_policy_path
 *                                                        if base_policy_path != NULL else None))             # <<<<<<<<<<<<<<
 * 
 *         # first try libselinux for current policy
 */
    __Pyx_INCREF(Py_None);
    __pyx_t_9 = Py_None;
  }
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 758, __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_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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":762
 * 
 *         # first try libselinux for current policy
 *         if current_policy_path != NULL:             # <<<<<<<<<<<<<<
 *             potential_policies.append(current_policy_path)
 * 
 */
  __pyx_t_10 = ((__pyx_v_current_policy_path != NULL) != 0);
  if (__pyx_t_10) {

    /* "setools/policyrep/selinuxpolicy.pxi":763
 *         # first try libselinux for current policy
 *         if current_policy_path != NULL:
 *             potential_policies.append(current_policy_path)             # <<<<<<<<<<<<<<
 * 
 *         # look through the supported policy versions
 */
    __pyx_t_1 = __Pyx_PyStr_FromString(__pyx_v_current_policy_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 763, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_potential_policies, __pyx_t_1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(5, 763, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":762
 * 
 *         # first try libselinux for current policy
 *         if current_policy_path != NULL:             # <<<<<<<<<<<<<<
 *             potential_policies.append(current_policy_path)
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":766
 * 
 *         # look through the supported policy versions
 *         if base_policy_path != NULL:             # <<<<<<<<<<<<<<
 *             for version in range(max_ver, min_ver - 1, -1):
 *                 potential_policies.append("{0}.{1}".format(base_policy_path, version))
 */
  __pyx_t_10 = ((__pyx_v_base_policy_path != NULL) != 0);
  if (__pyx_t_10) {

    /* "setools/policyrep/selinuxpolicy.pxi":767
 *         # look through the supported policy versions
 *         if base_policy_path != NULL:
 *             for version in range(max_ver, min_ver - 1, -1):             # <<<<<<<<<<<<<<
 *                 potential_policies.append("{0}.{1}".format(base_policy_path, version))
 * 
 */
    __pyx_t_12 = (__pyx_v_min_ver - 1);
    __pyx_t_13 = __pyx_t_12;
    for (__pyx_t_14 = __pyx_v_max_ver; __pyx_t_14 > __pyx_t_13; __pyx_t_14-=1) {
      __pyx_v_version = __pyx_t_14;

      /* "setools/policyrep/selinuxpolicy.pxi":768
 *         if base_policy_path != NULL:
 *             for version in range(max_ver, min_ver - 1, -1):
 *                 potential_policies.append("{0}.{1}".format(base_policy_path, version))             # <<<<<<<<<<<<<<
 * 
 *         self.log.debug("Potential policies: {}".format(potential_policies))
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 768, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyStr_FromString(__pyx_v_base_policy_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 768, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_version); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 768, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_3, __pyx_t_4};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 768, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __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_9, __pyx_t_3, __pyx_t_4};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 768, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 768, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (__pyx_t_9) {
          __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_4);
        __pyx_t_3 = 0;
        __pyx_t_4 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 768, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_potential_policies, __pyx_t_1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(5, 768, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":766
 * 
 *         # look through the supported policy versions
 *         if base_policy_path != NULL:             # <<<<<<<<<<<<<<
 *             for version in range(max_ver, min_ver - 1, -1):
 *                 potential_policies.append("{0}.{1}".format(base_policy_path, version))
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":770
 *                 potential_policies.append("{0}.{1}".format(base_policy_path, version))
 * 
 *         self.log.debug("Potential policies: {}".format(potential_policies))             # <<<<<<<<<<<<<<
 *         for filename in potential_policies:
 *             try:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Potential_policies, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __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_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_v_potential_policies) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_potential_policies);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":771
 * 
 *         self.log.debug("Potential policies: {}".format(potential_policies))
 *         for filename in potential_policies:             # <<<<<<<<<<<<<<
 *             try:
 *                 self._load_policy(filename)
 */
  __pyx_t_1 = __pyx_v_potential_policies; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
  for (;;) {
    if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(5, 771, __pyx_L1_error)
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_filename, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":772
 *         self.log.debug("Potential policies: {}".format(potential_policies))
 *         for filename in potential_policies:
 *             try:             # <<<<<<<<<<<<<<
 *                 self._load_policy(filename)
 *             except OSError as err:
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      __Pyx_XGOTREF(__pyx_t_16);
      __Pyx_XGOTREF(__pyx_t_17);
      __Pyx_XGOTREF(__pyx_t_18);
      /*try:*/ {

        /* "setools/policyrep/selinuxpolicy.pxi":773
 *         for filename in potential_policies:
 *             try:
 *                 self._load_policy(filename)             # <<<<<<<<<<<<<<
 *             except OSError as err:
 *                 if err.errno != ENOENT:
 */
        if (!(likely(PyUnicode_CheckExact(__pyx_v_filename))||((__pyx_v_filename) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_filename)->tp_name), 0))) __PYX_ERR(5, 773, __pyx_L9_error)
        __pyx_t_2 = ((struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self->__pyx_vtab)->_load_policy(__pyx_v_self, ((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 773, __pyx_L9_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "setools/policyrep/selinuxpolicy.pxi":772
 *         self.log.debug("Potential policies: {}".format(potential_policies))
 *         for filename in potential_policies:
 *             try:             # <<<<<<<<<<<<<<
 *                 self._load_policy(filename)
 *             except OSError as err:
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":778
 *                     raise
 *             else:
 *                 break             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")
 */
      /*else:*/ {
        goto __pyx_L14_try_break;
      }
      __pyx_L9_error:;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":774
 *             try:
 *                 self._load_policy(filename)
 *             except OSError as err:             # <<<<<<<<<<<<<<
 *                 if err.errno != ENOENT:
 *                     raise
 */
      __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_OSError);
      if (__pyx_t_8) {
        __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_running_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(5, 774, __pyx_L11_except_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __pyx_v_err = __pyx_t_6;
        /*try:*/ {

          /* "setools/policyrep/selinuxpolicy.pxi":775
 *                 self._load_policy(filename)
 *             except OSError as err:
 *                 if err.errno != ENOENT:             # <<<<<<<<<<<<<<
 *                     raise
 *             else:
 */
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_err, __pyx_n_s_errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 775, __pyx_L22_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_9 = __Pyx_PyInt_From_int(ENOENT); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 775, __pyx_L22_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_9, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 775, __pyx_L22_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(5, 775, __pyx_L22_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(__pyx_t_10)) {

            /* "setools/policyrep/selinuxpolicy.pxi":776
 *             except OSError as err:
 *                 if err.errno != ENOENT:
 *                     raise             # <<<<<<<<<<<<<<
 *             else:
 *                 break
 */
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_6);
            __Pyx_XGIVEREF(__pyx_t_4);
            __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_6, __pyx_t_4);
            __pyx_t_2 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; 
            __PYX_ERR(5, 776, __pyx_L22_error)

            /* "setools/policyrep/selinuxpolicy.pxi":775
 *                 self._load_policy(filename)
 *             except OSError as err:
 *                 if err.errno != ENOENT:             # <<<<<<<<<<<<<<
 *                     raise
 *             else:
 */
          }
        }

        /* "setools/policyrep/selinuxpolicy.pxi":774
 *             try:
 *                 self._load_policy(filename)
 *             except OSError as err:             # <<<<<<<<<<<<<<
 *                 if err.errno != ENOENT:
 *                     raise
 */
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_DECREF(__pyx_v_err);
            __pyx_v_err = NULL;
            goto __pyx_L23;
          }
          __pyx_L22_error:;
          /*exception exit:*/{
            __Pyx_PyThreadState_declare
            __Pyx_PyThreadState_assign
            __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0;
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26);
            if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23);
            __Pyx_XGOTREF(__pyx_t_21);
            __Pyx_XGOTREF(__pyx_t_22);
            __Pyx_XGOTREF(__pyx_t_23);
            __Pyx_XGOTREF(__pyx_t_24);
            __Pyx_XGOTREF(__pyx_t_25);
            __Pyx_XGOTREF(__pyx_t_26);
            __pyx_t_8 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename;
            {
              __Pyx_DECREF(__pyx_v_err);
              __pyx_v_err = NULL;
            }
            if (PY_MAJOR_VERSION >= 3) {
              __Pyx_XGIVEREF(__pyx_t_24);
              __Pyx_XGIVEREF(__pyx_t_25);
              __Pyx_XGIVEREF(__pyx_t_26);
              __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26);
            }
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_XGIVEREF(__pyx_t_23);
            __Pyx_ErrRestore(__pyx_t_21, __pyx_t_22, __pyx_t_23);
            __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0;
            __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20;
            goto __pyx_L11_except_error;
          }
          __pyx_L23:;
        }
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L10_exception_handled;
      }
      goto __pyx_L11_except_error;
      __pyx_L11_except_error:;

      /* "setools/policyrep/selinuxpolicy.pxi":772
 *         self.log.debug("Potential policies: {}".format(potential_policies))
 *         for filename in potential_policies:
 *             try:             # <<<<<<<<<<<<<<
 *                 self._load_policy(filename)
 *             except OSError as err:
 */
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_XGIVEREF(__pyx_t_18);
      __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      goto __pyx_L1_error;
      __pyx_L14_try_break:;
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_XGIVEREF(__pyx_t_18);
      __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      goto __pyx_L8_break;
      __pyx_L10_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_XGIVEREF(__pyx_t_17);
      __Pyx_XGIVEREF(__pyx_t_18);
      __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
    }

    /* "setools/policyrep/selinuxpolicy.pxi":771
 * 
 *         self.log.debug("Potential policies: {}".format(potential_policies))
 *         for filename in potential_policies:             # <<<<<<<<<<<<<<
 *             try:
 *                 self._load_policy(filename)
 */
  }
  /*else*/ {

    /* "setools/policyrep/selinuxpolicy.pxi":780
 *                 break
 *         else:
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")             # <<<<<<<<<<<<<<
 * 
 *     cdef _set_permissive_flags(self):
 */
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__81, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(5, 780, __pyx_L1_error)
  }

  /* "setools/policyrep/selinuxpolicy.pxi":771
 * 
 *         self.log.debug("Potential policies: {}".format(potential_policies))
 *         for filename in potential_policies:             # <<<<<<<<<<<<<<
 *             try:
 *                 self._load_policy(filename)
 */
  __pyx_L8_break:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":744
 *         self.path = filename
 * 
 *     cdef _load_running_policy(self):             # <<<<<<<<<<<<<<
 *         """Try to load the current running policy."""
 *         cdef:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_running_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_potential_policies);
  __Pyx_XDECREF(__pyx_v_filename);
  __Pyx_XDECREF(__pyx_v_err);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":782
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")
 * 
 *     cdef _set_permissive_flags(self):             # <<<<<<<<<<<<<<
 *         """
 *         Set permissive flag in type datums.
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__set_permissive_flags(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  size_t __pyx_v_bit;
  ebitmap_node_t *__pyx_v_node;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_permissive_flags", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":790
 *         cdef:
 *             size_t bit
 *             sepol.ebitmap_node_t *node = NULL             # <<<<<<<<<<<<<<
 * 
 *         self.log.debug("Setting permissive flags in type datums.")
 */
  __pyx_v_node = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":792
 *             sepol.ebitmap_node_t *node = NULL
 * 
 *         self.log.debug("Setting permissive flags in type datums.")             # <<<<<<<<<<<<<<
 * 
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_Setting_permissive_flags_in_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_Setting_permissive_flags_in_type);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":794
 *         self.log.debug("Setting permissive flags in type datums.")
 * 
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)             # <<<<<<<<<<<<<<
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):
 *             if sepol.ebitmap_node_get_bit(node, bit):
 */
  __pyx_v_bit = ebitmap_start((&__pyx_v_self->handle->p.permissive_map), (&__pyx_v_node));

  /* "setools/policyrep/selinuxpolicy.pxi":795
 * 
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):             # <<<<<<<<<<<<<<
 *             if sepol.ebitmap_node_get_bit(node, bit):
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value
 */
  while (1) {
    __pyx_t_4 = ((__pyx_v_bit < ebitmap_length((&__pyx_v_self->handle->p.permissive_map))) != 0);
    if (!__pyx_t_4) break;

    /* "setools/policyrep/selinuxpolicy.pxi":796
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):
 *             if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE
 */
    __pyx_t_4 = (ebitmap_node_get_bit(__pyx_v_node, __pyx_v_bit) != 0);
    if (__pyx_t_4) {

      /* "setools/policyrep/selinuxpolicy.pxi":797
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):
 *             if sepol.ebitmap_node_get_bit(node, bit):
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value             # <<<<<<<<<<<<<<
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE
 * 
 */
      #ifndef CYTHON_WITHOUT_ASSERTIONS
      if (unlikely(!Py_OptimizeFlag)) {
        if (unlikely(!((__pyx_v_bit == (__pyx_v_self->handle->p.type_val_to_struct[(__pyx_v_bit - 1)])->s.value) != 0))) {
          PyErr_SetNone(PyExc_AssertionError);
          __PYX_ERR(5, 797, __pyx_L1_error)
        }
      }
      #endif

      /* "setools/policyrep/selinuxpolicy.pxi":798
 *             if sepol.ebitmap_node_get_bit(node, bit):
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE             # <<<<<<<<<<<<<<
 * 
 *             bit = sepol.ebitmap_next(&node, bit)
 */
      __pyx_t_5 = (__pyx_v_bit - 1);
      (__pyx_v_self->handle->p.type_val_to_struct[__pyx_t_5])->flags = ((__pyx_v_self->handle->p.type_val_to_struct[__pyx_t_5])->flags | TYPE_FLAGS_PERMISSIVE);

      /* "setools/policyrep/selinuxpolicy.pxi":796
 *         bit = sepol.ebitmap_start(&self.handle.p.permissive_map, &node)
 *         while bit < sepol.ebitmap_length(&self.handle.p.permissive_map):
 *             if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                 assert bit == self.handle.p.type_val_to_struct[bit - 1].s.value
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":800
 *                 self.handle.p.type_val_to_struct[bit - 1].flags |= sepol.TYPE_FLAGS_PERMISSIVE
 * 
 *             bit = sepol.ebitmap_next(&node, bit)             # <<<<<<<<<<<<<<
 * 
 *     cdef _create_mls_val_to_struct(self):
 */
    __pyx_v_bit = ebitmap_next((&__pyx_v_node), __pyx_v_bit);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":782
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")
 * 
 *     cdef _set_permissive_flags(self):             # <<<<<<<<<<<<<<
 *         """
 *         Set permissive flag in type datums.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._set_permissive_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":802
 *             bit = sepol.ebitmap_next(&node, bit)
 * 
 *     cdef _create_mls_val_to_struct(self):             # <<<<<<<<<<<<<<
 *         """Create *_val_to_struct arrays for categories and levels."""
 *         cdef:
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__create_mls_val_to_struct(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  cat_datum_t *__pyx_v_cat_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_bucket_len;
  size_t __pyx_v_map_len;
  level_datum_t *__pyx_v_level_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  uint32_t __pyx_t_4;
  unsigned int __pyx_t_5;
  int __pyx_t_6;
  struct hashtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_create_mls_val_to_struct", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":807
 *             sepol.cat_datum_t *cat_datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             size_t bucket_len
 *             size_t map_len
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":814
 *         # Create cat_val_to_struct  (indexed by value -1)
 *         #
 *         self.log.debug("Creating cat_val_to_struct.")             # <<<<<<<<<<<<<<
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_CATS].table.nel
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_Creating_cat_val_to_struct) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_Creating_cat_val_to_struct);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":816
 *         self.log.debug("Creating cat_val_to_struct.")
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_CATS].table.nel             # <<<<<<<<<<<<<<
 *         bucket_len = self.handle.p.symtab[sepol.SYM_CATS].table[0].size
 * 
 */
  __pyx_t_4 = (__pyx_v_self->handle->p.symtab[SYM_CATS]).table->nel;
  __pyx_v_map_len = __pyx_t_4;

  /* "setools/policyrep/selinuxpolicy.pxi":817
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_CATS].table.nel
 *         bucket_len = self.handle.p.symtab[sepol.SYM_CATS].table[0].size             # <<<<<<<<<<<<<<
 * 
 *         self.cat_val_to_struct = <sepol.cat_datum_t**>PyMem_Malloc(
 */
  __pyx_t_5 = ((__pyx_v_self->handle->p.symtab[SYM_CATS]).table[0]).size;
  __pyx_v_bucket_len = __pyx_t_5;

  /* "setools/policyrep/selinuxpolicy.pxi":819
 *         bucket_len = self.handle.p.symtab[sepol.SYM_CATS].table[0].size
 * 
 *         self.cat_val_to_struct = <sepol.cat_datum_t**>PyMem_Malloc(             # <<<<<<<<<<<<<<
 *             map_len * sizeof(sepol.cat_datum_t*))
 * 
 */
  __pyx_v_self->cat_val_to_struct = ((cat_datum_t **)PyMem_Malloc((__pyx_v_map_len * (sizeof(cat_datum_t *)))));

  /* "setools/policyrep/selinuxpolicy.pxi":822
 *             map_len * sizeof(sepol.cat_datum_t*))
 * 
 *         if self.cat_val_to_struct == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  __pyx_t_6 = ((__pyx_v_self->cat_val_to_struct == NULL) != 0);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/selinuxpolicy.pxi":823
 * 
 *         if self.cat_val_to_struct == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         while bucket < bucket_len:
 */
    PyErr_NoMemory(); __PYX_ERR(5, 823, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":822
 *             map_len * sizeof(sepol.cat_datum_t*))
 * 
 *         if self.cat_val_to_struct == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":825
 *             raise MemoryError
 * 
 *         while bucket < bucket_len:             # <<<<<<<<<<<<<<
 *             node = self.handle.p.symtab[sepol.SYM_CATS].table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_6 = ((__pyx_v_bucket < __pyx_v_bucket_len) != 0);
    if (!__pyx_t_6) break;

    /* "setools/policyrep/selinuxpolicy.pxi":826
 * 
 *         while bucket < bucket_len:
 *             node = self.handle.p.symtab[sepol.SYM_CATS].table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 */
    __pyx_v_node = (((__pyx_v_self->handle->p.symtab[SYM_CATS]).table[0]).htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":827
 *         while bucket < bucket_len:
 *             node = self.handle.p.symtab[sepol.SYM_CATS].table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 *                 if cat_datum != NULL:
 */
    while (1) {
      __pyx_t_6 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_6) break;

      /* "setools/policyrep/selinuxpolicy.pxi":828
 *             node = self.handle.p.symtab[sepol.SYM_CATS].table[0].htable[bucket]
 *             while node != NULL:
 *                 cat_datum = <sepol.cat_datum_t *>node.datum             # <<<<<<<<<<<<<<
 *                 if cat_datum != NULL:
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum
 */
      __pyx_v_cat_datum = ((cat_datum_t *)__pyx_v_node->datum);

      /* "setools/policyrep/selinuxpolicy.pxi":829
 *             while node != NULL:
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 *                 if cat_datum != NULL:             # <<<<<<<<<<<<<<
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum
 * 
 */
      __pyx_t_6 = ((__pyx_v_cat_datum != NULL) != 0);
      if (__pyx_t_6) {

        /* "setools/policyrep/selinuxpolicy.pxi":830
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 *                 if cat_datum != NULL:
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        (__pyx_v_self->cat_val_to_struct[(__pyx_v_cat_datum->s.value - 1)]) = __pyx_v_cat_datum;

        /* "setools/policyrep/selinuxpolicy.pxi":829
 *             while node != NULL:
 *                 cat_datum = <sepol.cat_datum_t *>node.datum
 *                 if cat_datum != NULL:             # <<<<<<<<<<<<<<
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":832
 *                     self.cat_val_to_struct[cat_datum.s.value - 1] = cat_datum
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":834
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         #
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":839
 *         # Create level_val_to_struct  (indexed by value -1)
 *         #
 *         self.log.debug("Creating level_val_to_struct.")             # <<<<<<<<<<<<<<
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_LEVELS].table.nel
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_Creating_level_val_to_struct) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_Creating_level_val_to_struct);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":841
 *         self.log.debug("Creating level_val_to_struct.")
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_LEVELS].table.nel             # <<<<<<<<<<<<<<
 *         bucket_len = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].size
 *         bucket = 0
 */
  __pyx_t_4 = (__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table->nel;
  __pyx_v_map_len = __pyx_t_4;

  /* "setools/policyrep/selinuxpolicy.pxi":842
 * 
 *         map_len = self.handle.p.symtab[sepol.SYM_LEVELS].table.nel
 *         bucket_len = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].size             # <<<<<<<<<<<<<<
 *         bucket = 0
 * 
 */
  __pyx_t_5 = ((__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table[0]).size;
  __pyx_v_bucket_len = __pyx_t_5;

  /* "setools/policyrep/selinuxpolicy.pxi":843
 *         map_len = self.handle.p.symtab[sepol.SYM_LEVELS].table.nel
 *         bucket_len = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].size
 *         bucket = 0             # <<<<<<<<<<<<<<
 * 
 *         self.level_val_to_struct = <sepol.level_datum_t**>PyMem_Malloc(
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":845
 *         bucket = 0
 * 
 *         self.level_val_to_struct = <sepol.level_datum_t**>PyMem_Malloc(             # <<<<<<<<<<<<<<
 *             map_len * sizeof(sepol.level_datum_t*))
 * 
 */
  __pyx_v_self->level_val_to_struct = ((level_datum_t **)PyMem_Malloc((__pyx_v_map_len * (sizeof(level_datum_t *)))));

  /* "setools/policyrep/selinuxpolicy.pxi":848
 *             map_len * sizeof(sepol.level_datum_t*))
 * 
 *         if self.level_val_to_struct == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  __pyx_t_6 = ((__pyx_v_self->level_val_to_struct == NULL) != 0);
  if (unlikely(__pyx_t_6)) {

    /* "setools/policyrep/selinuxpolicy.pxi":849
 * 
 *         if self.level_val_to_struct == NULL:
 *             raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *         while bucket < bucket_len:
 */
    PyErr_NoMemory(); __PYX_ERR(5, 849, __pyx_L1_error)

    /* "setools/policyrep/selinuxpolicy.pxi":848
 *             map_len * sizeof(sepol.level_datum_t*))
 * 
 *         if self.level_val_to_struct == NULL:             # <<<<<<<<<<<<<<
 *             raise MemoryError
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":851
 *             raise MemoryError
 * 
 *         while bucket < bucket_len:             # <<<<<<<<<<<<<<
 *             node = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_6 = ((__pyx_v_bucket < __pyx_v_bucket_len) != 0);
    if (!__pyx_t_6) break;

    /* "setools/policyrep/selinuxpolicy.pxi":852
 * 
 *         while bucket < bucket_len:
 *             node = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 level_datum = <sepol.level_datum_t *>node.datum
 */
    __pyx_v_node = (((__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table[0]).htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":853
 *         while bucket < bucket_len:
 *             node = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 level_datum = <sepol.level_datum_t *>node.datum
 *                 if level_datum != NULL:
 */
    while (1) {
      __pyx_t_6 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_6) break;

      /* "setools/policyrep/selinuxpolicy.pxi":854
 *             node = self.handle.p.symtab[sepol.SYM_LEVELS].table[0].htable[bucket]
 *             while node != NULL:
 *                 level_datum = <sepol.level_datum_t *>node.datum             # <<<<<<<<<<<<<<
 *                 if level_datum != NULL:
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum
 */
      __pyx_v_level_datum = ((level_datum_t *)__pyx_v_node->datum);

      /* "setools/policyrep/selinuxpolicy.pxi":855
 *             while node != NULL:
 *                 level_datum = <sepol.level_datum_t *>node.datum
 *                 if level_datum != NULL:             # <<<<<<<<<<<<<<
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum
 * 
 */
      __pyx_t_6 = ((__pyx_v_level_datum != NULL) != 0);
      if (__pyx_t_6) {

        /* "setools/policyrep/selinuxpolicy.pxi":856
 *                 level_datum = <sepol.level_datum_t *>node.datum
 *                 if level_datum != NULL:
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        (__pyx_v_self->level_val_to_struct[(__pyx_v_level_datum->level->sens - 1)]) = __pyx_v_level_datum;

        /* "setools/policyrep/selinuxpolicy.pxi":855
 *             while node != NULL:
 *                 level_datum = <sepol.level_datum_t *>node.datum
 *                 if level_datum != NULL:             # <<<<<<<<<<<<<<
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":858
 *                     self.level_val_to_struct[level_datum.level.sens - 1] = level_datum
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":860
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *     cdef _load_category_aliases(self):
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":802
 *             bit = sepol.ebitmap_next(&node, bit)
 * 
 *     cdef _create_mls_val_to_struct(self):             # <<<<<<<<<<<<<<
 *         """Create *_val_to_struct arrays for categories and levels."""
 *         cdef:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._create_mls_val_to_struct", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":862
 *             bucket += 1
 * 
 *     cdef _load_category_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to categories"""
 *         cdef:
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_category_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  hashtab_t *__pyx_v_table;
  cat_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_entry = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  cat_datum_t *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  struct hashtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_category_aliases", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":865
 *         """Build map of aliases to categories"""
 *         cdef:
 *             sepol.hashtab_t *table = &self.handle.p.symtab[sepol.SYM_CATS].table             # <<<<<<<<<<<<<<
 *             sepol.cat_datum_t *datum
 *             sepol.hashtab_node_t *node
 */
  __pyx_v_table = (&(__pyx_v_self->handle->p.symtab[SYM_CATS]).table);

  /* "setools/policyrep/selinuxpolicy.pxi":868
 *             sepol.cat_datum_t *datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             list entry
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":871
 *             list entry
 * 
 *         self.category_alias_map = dict()             # <<<<<<<<<<<<<<
 * 
 *         while bucket < table[0].size:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->category_alias_map);
  __Pyx_DECREF(__pyx_v_self->category_alias_map);
  __pyx_v_self->category_alias_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":873
 *         self.category_alias_map = dict()
 * 
 *         while bucket < table[0].size:             # <<<<<<<<<<<<<<
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_bucket < (__pyx_v_table[0])->size) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/selinuxpolicy.pxi":874
 * 
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":875
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 */
    while (1) {
      __pyx_t_2 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_2) break;

      /* "setools/policyrep/selinuxpolicy.pxi":876
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum == NULL:
 *                     continue
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_3 = ((cat_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_3 = NULL;
      }
      __pyx_v_datum = __pyx_t_3;

      /* "setools/policyrep/selinuxpolicy.pxi":877
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
      __pyx_t_2 = ((__pyx_v_datum == NULL) != 0);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":878
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())
 */
        goto __pyx_L5_continue;

        /* "setools/policyrep/selinuxpolicy.pxi":877
 *             while node != NULL:
 *                 datum = <sepol.cat_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":880
 *                     continue
 * 
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())             # <<<<<<<<<<<<<<
 *                 if datum.isalias:
 *                     entry.append(intern(node.key))
 */
      if (unlikely(__pyx_v_self->category_alias_map == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "setdefault");
        __PYX_ERR(5, 880, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_datum->s.value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyDict_SetDefault(__pyx_v_self->category_alias_map, __pyx_t_1, __pyx_t_4, -1L); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(5, 880, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_entry, ((PyObject*)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":881
 * 
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())
 *                 if datum.isalias:             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
 */
      __pyx_t_2 = (__pyx_v_datum->isalias != 0);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":882
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())
 *                 if datum.isalias:
 *                     entry.append(intern(node.key))             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        if (unlikely(__pyx_v_entry == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(5, 882, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyStr_FromString(__pyx_v_node->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 882, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_Intern(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 882, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_entry, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 882, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "setools/policyrep/selinuxpolicy.pxi":881
 * 
 *                 entry = self.category_alias_map.setdefault(datum.s.value, list())
 *                 if datum.isalias:             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":884
 *                     entry.append(intern(node.key))
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
      __pyx_L5_continue:;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":886
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *     cdef _load_sensitivity_aliases(self):
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":862
 *             bucket += 1
 * 
 *     cdef _load_category_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to categories"""
 *         cdef:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_category_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_entry);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":888
 *             bucket += 1
 * 
 *     cdef _load_sensitivity_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to sensitivities"""
 *         cdef:
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_sensitivity_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  hashtab_t *__pyx_v_table;
  level_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_entry = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  level_datum_t *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  struct hashtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_sensitivity_aliases", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":891
 *         """Build map of aliases to sensitivities"""
 *         cdef:
 *             sepol.hashtab_t *table = &self.handle.p.symtab[sepol.SYM_LEVELS].table             # <<<<<<<<<<<<<<
 *             sepol.level_datum_t *datum
 *             sepol.hashtab_node_t *node
 */
  __pyx_v_table = (&(__pyx_v_self->handle->p.symtab[SYM_LEVELS]).table);

  /* "setools/policyrep/selinuxpolicy.pxi":894
 *             sepol.level_datum_t *datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             list entry
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":897
 *             list entry
 * 
 *         self.sensitivity_alias_map = dict()             # <<<<<<<<<<<<<<
 * 
 *         while bucket < table[0].size:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->sensitivity_alias_map);
  __Pyx_DECREF(__pyx_v_self->sensitivity_alias_map);
  __pyx_v_self->sensitivity_alias_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":899
 *         self.sensitivity_alias_map = dict()
 * 
 *         while bucket < table[0].size:             # <<<<<<<<<<<<<<
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_bucket < (__pyx_v_table[0])->size) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/selinuxpolicy.pxi":900
 * 
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":901
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 */
    while (1) {
      __pyx_t_2 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_2) break;

      /* "setools/policyrep/selinuxpolicy.pxi":902
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum == NULL:
 *                     continue
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_3 = ((level_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_3 = NULL;
      }
      __pyx_v_datum = __pyx_t_3;

      /* "setools/policyrep/selinuxpolicy.pxi":903
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
      __pyx_t_2 = ((__pyx_v_datum == NULL) != 0);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":904
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())
 */
        goto __pyx_L5_continue;

        /* "setools/policyrep/selinuxpolicy.pxi":903
 *             while node != NULL:
 *                 datum = <sepol.level_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":906
 *                     continue
 * 
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())             # <<<<<<<<<<<<<<
 *                 if datum.isalias:
 *                     entry.append(intern(node.key))
 */
      if (unlikely(__pyx_v_self->sensitivity_alias_map == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "setdefault");
        __PYX_ERR(5, 906, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_datum->level->sens); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 906, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 906, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyDict_SetDefault(__pyx_v_self->sensitivity_alias_map, __pyx_t_1, __pyx_t_4, -1L); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 906, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(5, 906, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_entry, ((PyObject*)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":907
 * 
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())
 *                 if datum.isalias:             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
 */
      __pyx_t_2 = (__pyx_v_datum->isalias != 0);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":908
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())
 *                 if datum.isalias:
 *                     entry.append(intern(node.key))             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        if (unlikely(__pyx_v_entry == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(5, 908, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyStr_FromString(__pyx_v_node->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 908, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_Intern(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 908, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_entry, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 908, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "setools/policyrep/selinuxpolicy.pxi":907
 * 
 *                 entry = self.sensitivity_alias_map.setdefault(datum.level.sens, list())
 *                 if datum.isalias:             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":910
 *                     entry.append(intern(node.key))
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
      __pyx_L5_continue:;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":912
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *     cdef _load_type_aliases(self):
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":888
 *             bucket += 1
 * 
 *     cdef _load_sensitivity_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to sensitivities"""
 *         cdef:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_sensitivity_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_entry);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":914
 *             bucket += 1
 * 
 *     cdef _load_type_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to types"""
 *         cdef:
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_type_aliases(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  hashtab_t *__pyx_v_table;
  type_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_entry = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  type_datum_t *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  struct hashtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_type_aliases", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":917
 *         """Build map of aliases to types"""
 *         cdef:
 *             sepol.hashtab_t *table = &self.handle.p.symtab[sepol.SYM_TYPES].table             # <<<<<<<<<<<<<<
 *             sepol.type_datum_t *datum
 *             sepol.hashtab_node_t *node
 */
  __pyx_v_table = (&(__pyx_v_self->handle->p.symtab[SYM_TYPES]).table);

  /* "setools/policyrep/selinuxpolicy.pxi":920
 *             sepol.type_datum_t *datum
 *             sepol.hashtab_node_t *node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *             list entry
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":923
 *             list entry
 * 
 *         self.type_alias_map = dict()             # <<<<<<<<<<<<<<
 * 
 *         while bucket < table[0].size:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->type_alias_map);
  __Pyx_DECREF(__pyx_v_self->type_alias_map);
  __pyx_v_self->type_alias_map = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":925
 *         self.type_alias_map = dict()
 * 
 *         while bucket < table[0].size:             # <<<<<<<<<<<<<<
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_bucket < (__pyx_v_table[0])->size) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/selinuxpolicy.pxi":926
 * 
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/selinuxpolicy.pxi":927
 *         while bucket < table[0].size:
 *             node = table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 */
    while (1) {
      __pyx_t_2 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_2) break;

      /* "setools/policyrep/selinuxpolicy.pxi":928
 *             node = table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum == NULL:
 *                     continue
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_3 = ((type_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_3 = NULL;
      }
      __pyx_v_datum = __pyx_t_3;

      /* "setools/policyrep/selinuxpolicy.pxi":929
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
      __pyx_t_2 = ((__pyx_v_datum == NULL) != 0);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":930
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())
 */
        goto __pyx_L5_continue;

        /* "setools/policyrep/selinuxpolicy.pxi":929
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum == NULL:             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":932
 *                     continue
 * 
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())             # <<<<<<<<<<<<<<
 *                 if type_is_alias(datum):
 *                     entry.append(intern(node.key))
 */
      if (unlikely(__pyx_v_self->type_alias_map == Py_None)) {
        PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "setdefault");
        __PYX_ERR(5, 932, __pyx_L1_error)
      }
      __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_datum->s.value); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 932, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 932, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyDict_SetDefault(__pyx_v_self->type_alias_map, __pyx_t_1, __pyx_t_4, -1L); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 932, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(5, 932, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_entry, ((PyObject*)__pyx_t_5));
      __pyx_t_5 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":933
 * 
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())
 *                 if type_is_alias(datum):             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
 */
      __pyx_t_2 = (__pyx_f_7setools_9policyrep_type_is_alias(__pyx_v_datum) != 0);
      if (__pyx_t_2) {

        /* "setools/policyrep/selinuxpolicy.pxi":934
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())
 *                 if type_is_alias(datum):
 *                     entry.append(intern(node.key))             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        if (unlikely(__pyx_v_entry == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
          __PYX_ERR(5, 934, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyStr_FromString(__pyx_v_node->key); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 934, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_Intern(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 934, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_entry, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(5, 934, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "setools/policyrep/selinuxpolicy.pxi":933
 * 
 *                 entry = self.type_alias_map.setdefault(datum.s.value, list())
 *                 if type_is_alias(datum):             # <<<<<<<<<<<<<<
 *                     entry.append(intern(node.key))
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":936
 *                     entry.append(intern(node.key))
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
      __pyx_L5_continue:;
    }

    /* "setools/policyrep/selinuxpolicy.pxi":938
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *     cdef _rebuild_attrs_from_map(self):
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/selinuxpolicy.pxi":914
 *             bucket += 1
 * 
 *     cdef _load_type_aliases(self):             # <<<<<<<<<<<<<<
 *         """Build map of aliases to types"""
 *         cdef:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._load_type_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_entry);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":940
 *             bucket += 1
 * 
 *     cdef _rebuild_attrs_from_map(self):             # <<<<<<<<<<<<<<
 *         """
 *         Rebuilds data for the attributes and inserts them into the policydb.
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__rebuild_attrs_from_map(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  size_t __pyx_v_i;
  int __pyx_v_bit;
  ebitmap_node_t *__pyx_v_node;
  type_datum_t *__pyx_v_tmp_type;
  char *__pyx_v_tmp_name;
  type_datum_t *__pyx_v_orig_type;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  uint32_t __pyx_t_4;
  uint32_t __pyx_t_5;
  size_t __pyx_t_6;
  int __pyx_t_7;
  ebitmap_node_t *__pyx_t_8;
  uint32_t __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_rebuild_attrs_from_map", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":954
 *             size_t i, count
 *             int bit
 *             sepol.ebitmap_node_t *node = NULL             # <<<<<<<<<<<<<<
 *             sepol.type_datum_t *tmp_type
 *             char *tmp_name
 */
  __pyx_v_node = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":958
 *             char *tmp_name
 * 
 *         self.log.debug("Rebuilding attributes.")             # <<<<<<<<<<<<<<
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_Rebuilding_attributes) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_Rebuilding_attributes);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":960
 *         self.log.debug("Rebuilding attributes.")
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):             # <<<<<<<<<<<<<<
 *             tmp_type = self.handle.p.type_val_to_struct[i]
 * 
 */
  __pyx_t_4 = (__pyx_v_self->handle->p.symtab[SYM_TYPES]).nprim;
  __pyx_t_5 = __pyx_t_4;
  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
    __pyx_v_i = __pyx_t_6;

    /* "setools/policyrep/selinuxpolicy.pxi":961
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 *             tmp_type = self.handle.p.type_val_to_struct[i]             # <<<<<<<<<<<<<<
 * 
 *             # skip types
 */
    __pyx_v_tmp_type = (__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_i]);

    /* "setools/policyrep/selinuxpolicy.pxi":964
 * 
 *             # skip types
 *             if tmp_type.flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
    __pyx_t_7 = ((__pyx_v_tmp_type->flavor != TYPE_ATTRIB) != 0);
    if (__pyx_t_7) {

      /* "setools/policyrep/selinuxpolicy.pxi":965
 *             # skip types
 *             if tmp_type.flavor != sepol.TYPE_ATTRIB:
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             # Synthesize a name if it is missing
 */
      goto __pyx_L3_continue;

      /* "setools/policyrep/selinuxpolicy.pxi":964
 * 
 *             # skip types
 *             if tmp_type.flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":968
 * 
 *             # Synthesize a name if it is missing
 *             if self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] == NULL:             # <<<<<<<<<<<<<<
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))
 */
    __pyx_t_7 = ((((__pyx_v_self->handle->p.sym_val_to_name[SYM_TYPES])[__pyx_v_i]) == NULL) != 0);
    if (__pyx_t_7) {

      /* "setools/policyrep/selinuxpolicy.pxi":970
 *             if self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] == NULL:
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))             # <<<<<<<<<<<<<<
 *                 if tmp_name == NULL:
 *                     raise MemoryError
 */
      __pyx_v_tmp_name = ((char *)calloc(15, (sizeof(char))));

      /* "setools/policyrep/selinuxpolicy.pxi":971
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))
 *                 if tmp_name == NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError
 * 
 */
      __pyx_t_7 = ((__pyx_v_tmp_name == NULL) != 0);
      if (unlikely(__pyx_t_7)) {

        /* "setools/policyrep/selinuxpolicy.pxi":972
 *                 tmp_name = <char*>calloc(15, sizeof(char))
 *                 if tmp_name == NULL:
 *                     raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *                 snprintf(tmp_name, 15, "@ttr%010zd", i + 1)
 */
        PyErr_NoMemory(); __PYX_ERR(5, 972, __pyx_L1_error)

        /* "setools/policyrep/selinuxpolicy.pxi":971
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))
 *                 if tmp_name == NULL:             # <<<<<<<<<<<<<<
 *                     raise MemoryError
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":974
 *                     raise MemoryError
 * 
 *                 snprintf(tmp_name, 15, "@ttr%010zd", i + 1)             # <<<<<<<<<<<<<<
 * 
 *                 self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name
 */
      (void)(snprintf(__pyx_v_tmp_name, 15, ((char const *)"@ttr%010zd"), (__pyx_v_i + 1)));

      /* "setools/policyrep/selinuxpolicy.pxi":976
 *                 snprintf(tmp_name, 15, "@ttr%010zd", i + 1)
 * 
 *                 self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name             # <<<<<<<<<<<<<<
 * 
 *                 # do not free, memory is owned by policydb now.
 */
      ((__pyx_v_self->handle->p.sym_val_to_name[SYM_TYPES])[__pyx_v_i]) = __pyx_v_tmp_name;

      /* "setools/policyrep/selinuxpolicy.pxi":979
 * 
 *                 # do not free, memory is owned by policydb now.
 *                 tmp_name = NULL             # <<<<<<<<<<<<<<
 * 
 *             # determine if attribute is empty
 */
      __pyx_v_tmp_name = NULL;

      /* "setools/policyrep/selinuxpolicy.pxi":968
 * 
 *             # Synthesize a name if it is missing
 *             if self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] == NULL:             # <<<<<<<<<<<<<<
 *                 # synthesize name
 *                 tmp_name = <char*>calloc(15, sizeof(char))
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":982
 * 
 *             # determine if attribute is empty
 *             bit = sepol.ebitmap_start(&self.handle.p.attr_type_map[i], &node)             # <<<<<<<<<<<<<<
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 */
    __pyx_v_bit = ebitmap_start((&(__pyx_v_self->handle->p.attr_type_map[__pyx_v_i])), (&__pyx_v_node));

    /* "setools/policyrep/selinuxpolicy.pxi":983
 *             # determine if attribute is empty
 *             bit = sepol.ebitmap_start(&self.handle.p.attr_type_map[i], &node)
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):             # <<<<<<<<<<<<<<
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     break
 */
    while (1) {
      __pyx_t_7 = ((__pyx_v_bit < ebitmap_length((&(__pyx_v_self->handle->p.attr_type_map[__pyx_v_i])))) != 0);
      if (!__pyx_t_7) break;

      /* "setools/policyrep/selinuxpolicy.pxi":984
 *             bit = sepol.ebitmap_start(&self.handle.p.attr_type_map[i], &node)
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):
 *                 if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                     break
 * 
 */
      __pyx_t_7 = (ebitmap_node_get_bit(__pyx_v_node, __pyx_v_bit) != 0);
      if (__pyx_t_7) {

        /* "setools/policyrep/selinuxpolicy.pxi":985
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     break             # <<<<<<<<<<<<<<
 * 
 *                 bit = sepol.ebitmap_next(&node, bit)
 */
        goto __pyx_L9_break;

        /* "setools/policyrep/selinuxpolicy.pxi":984
 *             bit = sepol.ebitmap_start(&self.handle.p.attr_type_map[i], &node)
 *             while bit < sepol.ebitmap_length(&self.handle.p.attr_type_map[i]):
 *                 if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                     break
 * 
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":987
 *                     break
 * 
 *                 bit = sepol.ebitmap_next(&node, bit)             # <<<<<<<<<<<<<<
 * 
 *             else:
 */
      __pyx_v_bit = ebitmap_next((&__pyx_v_node), __pyx_v_bit);
    }

    /* "setools/policyrep/selinuxpolicy.pxi":991
 *             else:
 *                 # skip empty attributes
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             # relink the attr_type_map ebitmap to the type datum
 */
    /*else*/ {
      goto __pyx_L3_continue;
    }
    __pyx_L9_break:;

    /* "setools/policyrep/selinuxpolicy.pxi":994
 * 
 *             # relink the attr_type_map ebitmap to the type datum
 *             tmp_type.types.node = self.handle.p.attr_type_map[i].node             # <<<<<<<<<<<<<<
 *             tmp_type.types.highbit = self.handle.p.attr_type_map[i].highbit
 * 
 */
    __pyx_t_8 = (__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]).node;
    __pyx_v_tmp_type->types.node = __pyx_t_8;

    /* "setools/policyrep/selinuxpolicy.pxi":995
 *             # relink the attr_type_map ebitmap to the type datum
 *             tmp_type.types.node = self.handle.p.attr_type_map[i].node
 *             tmp_type.types.highbit = self.handle.p.attr_type_map[i].highbit             # <<<<<<<<<<<<<<
 * 
 *             # disconnect ebitmap from attr_type_map to avoid
 */
    __pyx_t_9 = (__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]).highbit;
    __pyx_v_tmp_type->types.highbit = __pyx_t_9;

    /* "setools/policyrep/selinuxpolicy.pxi":999
 *             # disconnect ebitmap from attr_type_map to avoid
 *             # double free on policy destroy
 *             self.handle.p.attr_type_map[i].node = NULL             # <<<<<<<<<<<<<<
 *             self.handle.p.attr_type_map[i].highbit = 0
 * 
 */
    (__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]).node = NULL;

    /* "setools/policyrep/selinuxpolicy.pxi":1000
 *             # double free on policy destroy
 *             self.handle.p.attr_type_map[i].node = NULL
 *             self.handle.p.attr_type_map[i].highbit = 0             # <<<<<<<<<<<<<<
 * 
 *             # now go through each of the member types, and set
 */
    (__pyx_v_self->handle->p.attr_type_map[__pyx_v_i]).highbit = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1004
 *             # now go through each of the member types, and set
 *             # the reverse mapping
 *             bit = sepol.ebitmap_start(&tmp_type.types, &node)             # <<<<<<<<<<<<<<
 *             while bit < sepol.ebitmap_length(&tmp_type.types):
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 */
    __pyx_v_bit = ebitmap_start((&__pyx_v_tmp_type->types), (&__pyx_v_node));

    /* "setools/policyrep/selinuxpolicy.pxi":1005
 *             # the reverse mapping
 *             bit = sepol.ebitmap_start(&tmp_type.types, &node)
 *             while bit < sepol.ebitmap_length(&tmp_type.types):             # <<<<<<<<<<<<<<
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     orig_type = self.handle.p.type_val_to_struct[bit]
 */
    while (1) {
      __pyx_t_7 = ((__pyx_v_bit < ebitmap_length((&__pyx_v_tmp_type->types))) != 0);
      if (!__pyx_t_7) break;

      /* "setools/policyrep/selinuxpolicy.pxi":1006
 *             bit = sepol.ebitmap_start(&tmp_type.types, &node)
 *             while bit < sepol.ebitmap_length(&tmp_type.types):
 *                 if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                     orig_type = self.handle.p.type_val_to_struct[bit]
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)
 */
      __pyx_t_7 = (ebitmap_node_get_bit(__pyx_v_node, __pyx_v_bit) != 0);
      if (__pyx_t_7) {

        /* "setools/policyrep/selinuxpolicy.pxi":1007
 *             while bit < sepol.ebitmap_length(&tmp_type.types):
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     orig_type = self.handle.p.type_val_to_struct[bit]             # <<<<<<<<<<<<<<
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)
 * 
 */
        __pyx_v_orig_type = (__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_bit]);

        /* "setools/policyrep/selinuxpolicy.pxi":1008
 *                 if sepol.ebitmap_node_get_bit(node, bit):
 *                     orig_type = self.handle.p.type_val_to_struct[bit]
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)             # <<<<<<<<<<<<<<
 * 
 *                 bit = sepol.ebitmap_next(&node, bit)
 */
        __pyx_f_7setools_9policyrep_ebitmap_set_bit((&__pyx_v_orig_type->types), (__pyx_v_tmp_type->s.value - 1), 1);

        /* "setools/policyrep/selinuxpolicy.pxi":1006
 *             bit = sepol.ebitmap_start(&tmp_type.types, &node)
 *             while bit < sepol.ebitmap_length(&tmp_type.types):
 *                 if sepol.ebitmap_node_get_bit(node, bit):             # <<<<<<<<<<<<<<
 *                     orig_type = self.handle.p.type_val_to_struct[bit]
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)
 */
      }

      /* "setools/policyrep/selinuxpolicy.pxi":1010
 *                     ebitmap_set_bit(&orig_type.types, tmp_type.s.value - 1, 1)
 * 
 *                 bit = sepol.ebitmap_next(&node, bit)             # <<<<<<<<<<<<<<
 * 
 *     cdef _synthesize_attrs(self):
 */
      __pyx_v_bit = ebitmap_next((&__pyx_v_node), __pyx_v_bit);
    }
    __pyx_L3_continue:;
  }

  /* "setools/policyrep/selinuxpolicy.pxi":940
 *             bucket += 1
 * 
 *     cdef _rebuild_attrs_from_map(self):             # <<<<<<<<<<<<<<
 *         """
 *         Rebuilds data for the attributes and inserts them into the policydb.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._rebuild_attrs_from_map", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":1012
 *                 bit = sepol.ebitmap_next(&node, bit)
 * 
 *     cdef _synthesize_attrs(self):             # <<<<<<<<<<<<<<
 *         """
 *         Builds data for empty attributes and inserts them into the policydb.
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__synthesize_attrs(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  size_t __pyx_v_i;
  char *__pyx_v_tmp_name;
  CYTHON_UNUSED char *__pyx_v_buff;
  type_datum_t *__pyx_v_tmp_type;
  ebitmap_t __pyx_v_tmp_bmap;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  uint32_t __pyx_t_4;
  uint32_t __pyx_t_5;
  size_t __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_synthesize_attrs", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":1026
 *         cdef:
 *             size_t i
 *             char *tmp_name = NULL             # <<<<<<<<<<<<<<
 *             char *buff = NULL
 *             sepol.type_datum_t *tmp_type = NULL
 */
  __pyx_v_tmp_name = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":1027
 *             size_t i
 *             char *tmp_name = NULL
 *             char *buff = NULL             # <<<<<<<<<<<<<<
 *             sepol.type_datum_t *tmp_type = NULL
 *             sepol.ebitmap_t tmp_bmap
 */
  __pyx_v_buff = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":1028
 *             char *tmp_name = NULL
 *             char *buff = NULL
 *             sepol.type_datum_t *tmp_type = NULL             # <<<<<<<<<<<<<<
 *             sepol.ebitmap_t tmp_bmap
 * 
 */
  __pyx_v_tmp_type = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":1031
 *             sepol.ebitmap_t tmp_bmap
 * 
 *         self.log.debug("Synthesizing missing attributes.")             # <<<<<<<<<<<<<<
 * 
 *         tmp_bmap.node = NULL
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->log, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_Synthesizing_missing_attributes) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_Synthesizing_missing_attributes);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":1033
 *         self.log.debug("Synthesizing missing attributes.")
 * 
 *         tmp_bmap.node = NULL             # <<<<<<<<<<<<<<
 *         tmp_bmap.highbit = 0
 * 
 */
  __pyx_v_tmp_bmap.node = NULL;

  /* "setools/policyrep/selinuxpolicy.pxi":1034
 * 
 *         tmp_bmap.node = NULL
 *         tmp_bmap.highbit = 0             # <<<<<<<<<<<<<<
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 */
  __pyx_v_tmp_bmap.highbit = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":1036
 *         tmp_bmap.highbit = 0
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):             # <<<<<<<<<<<<<<
 *             if self.handle.p.type_val_to_struct[i] != NULL:
 *                 continue
 */
  __pyx_t_4 = (__pyx_v_self->handle->p.symtab[SYM_TYPES]).nprim;
  __pyx_t_5 = __pyx_t_4;
  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
    __pyx_v_i = __pyx_t_6;

    /* "setools/policyrep/selinuxpolicy.pxi":1037
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 *             if self.handle.p.type_val_to_struct[i] != NULL:             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
    __pyx_t_7 = (((__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_i]) != NULL) != 0);
    if (__pyx_t_7) {

      /* "setools/policyrep/selinuxpolicy.pxi":1038
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 *             if self.handle.p.type_val_to_struct[i] != NULL:
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             tmp_name = <char*>calloc(15, sizeof(char))
 */
      goto __pyx_L3_continue;

      /* "setools/policyrep/selinuxpolicy.pxi":1037
 * 
 *         for i in range(self.handle.p.symtab[sepol.SYM_TYPES].nprim):
 *             if self.handle.p.type_val_to_struct[i] != NULL:             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":1040
 *                 continue
 * 
 *             tmp_name = <char*>calloc(15, sizeof(char))             # <<<<<<<<<<<<<<
 *             if tmp_name == NULL:
 *                 raise MemoryError
 */
    __pyx_v_tmp_name = ((char *)calloc(15, (sizeof(char))));

    /* "setools/policyrep/selinuxpolicy.pxi":1041
 * 
 *             tmp_name = <char*>calloc(15, sizeof(char))
 *             if tmp_name == NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError
 * 
 */
    __pyx_t_7 = ((__pyx_v_tmp_name == NULL) != 0);
    if (unlikely(__pyx_t_7)) {

      /* "setools/policyrep/selinuxpolicy.pxi":1042
 *             tmp_name = <char*>calloc(15, sizeof(char))
 *             if tmp_name == NULL:
 *                 raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *             snprintf(tmp_name, 15, "@ttr%010zd", i + 1)
 */
      PyErr_NoMemory(); __PYX_ERR(5, 1042, __pyx_L1_error)

      /* "setools/policyrep/selinuxpolicy.pxi":1041
 * 
 *             tmp_name = <char*>calloc(15, sizeof(char))
 *             if tmp_name == NULL:             # <<<<<<<<<<<<<<
 *                 raise MemoryError
 * 
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":1044
 *                 raise MemoryError
 * 
 *             snprintf(tmp_name, 15, "@ttr%010zd", i + 1)             # <<<<<<<<<<<<<<
 * 
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))
 */
    (void)(snprintf(__pyx_v_tmp_name, 15, ((char const *)"@ttr%010zd"), (__pyx_v_i + 1)));

    /* "setools/policyrep/selinuxpolicy.pxi":1046
 *             snprintf(tmp_name, 15, "@ttr%010zd", i + 1)
 * 
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))             # <<<<<<<<<<<<<<
 *             if tmp_type == NULL:
 *                 free(tmp_name)
 */
    __pyx_v_tmp_type = ((type_datum_t *)calloc(1, (sizeof(type_datum_t))));

    /* "setools/policyrep/selinuxpolicy.pxi":1047
 * 
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))
 *             if tmp_type == NULL:             # <<<<<<<<<<<<<<
 *                 free(tmp_name)
 *                 raise MemoryError
 */
    __pyx_t_7 = ((__pyx_v_tmp_type == NULL) != 0);
    if (unlikely(__pyx_t_7)) {

      /* "setools/policyrep/selinuxpolicy.pxi":1048
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))
 *             if tmp_type == NULL:
 *                 free(tmp_name)             # <<<<<<<<<<<<<<
 *                 raise MemoryError
 * 
 */
      free(__pyx_v_tmp_name);

      /* "setools/policyrep/selinuxpolicy.pxi":1049
 *             if tmp_type == NULL:
 *                 free(tmp_name)
 *                 raise MemoryError             # <<<<<<<<<<<<<<
 * 
 *             tmp_type.primary = 1
 */
      PyErr_NoMemory(); __PYX_ERR(5, 1049, __pyx_L1_error)

      /* "setools/policyrep/selinuxpolicy.pxi":1047
 * 
 *             tmp_type = <sepol.type_datum_t*>calloc(1, sizeof(sepol.type_datum_t))
 *             if tmp_type == NULL:             # <<<<<<<<<<<<<<
 *                 free(tmp_name)
 *                 raise MemoryError
 */
    }

    /* "setools/policyrep/selinuxpolicy.pxi":1051
 *                 raise MemoryError
 * 
 *             tmp_type.primary = 1             # <<<<<<<<<<<<<<
 *             tmp_type.flavor = sepol.TYPE_ATTRIB
 *             tmp_type.s.value = i + 1
 */
    __pyx_v_tmp_type->primary = 1;

    /* "setools/policyrep/selinuxpolicy.pxi":1052
 * 
 *             tmp_type.primary = 1
 *             tmp_type.flavor = sepol.TYPE_ATTRIB             # <<<<<<<<<<<<<<
 *             tmp_type.s.value = i + 1
 *             tmp_type.types = tmp_bmap
 */
    __pyx_v_tmp_type->flavor = TYPE_ATTRIB;

    /* "setools/policyrep/selinuxpolicy.pxi":1053
 *             tmp_type.primary = 1
 *             tmp_type.flavor = sepol.TYPE_ATTRIB
 *             tmp_type.s.value = i + 1             # <<<<<<<<<<<<<<
 *             tmp_type.types = tmp_bmap
 * 
 */
    __pyx_v_tmp_type->s.value = (__pyx_v_i + 1);

    /* "setools/policyrep/selinuxpolicy.pxi":1054
 *             tmp_type.flavor = sepol.TYPE_ATTRIB
 *             tmp_type.s.value = i + 1
 *             tmp_type.types = tmp_bmap             # <<<<<<<<<<<<<<
 * 
 *             try:
 */
    __pyx_v_tmp_type->types = __pyx_v_tmp_bmap;

    /* "setools/policyrep/selinuxpolicy.pxi":1056
 *             tmp_type.types = tmp_bmap
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 hashtab_insert(self.handle.p.symtab[sepol.SYM_TYPES].table,
 *                                <sepol.hashtab_key_t> tmp_name,
 */
    {
      (void)__pyx_t_8; (void)__pyx_t_9; (void)__pyx_t_10; /* mark used */
      /*try:*/ {

        /* "setools/policyrep/selinuxpolicy.pxi":1057
 * 
 *             try:
 *                 hashtab_insert(self.handle.p.symtab[sepol.SYM_TYPES].table,             # <<<<<<<<<<<<<<
 *                                <sepol.hashtab_key_t> tmp_name,
 *                                <sepol.hashtab_datum_t> tmp_type)
 */
        (void)(__pyx_f_7setools_9policyrep_hashtab_insert((__pyx_v_self->handle->p.symtab[SYM_TYPES]).table, ((hashtab_key_t)__pyx_v_tmp_name), ((hashtab_datum_t)__pyx_v_tmp_type)));

        /* "setools/policyrep/selinuxpolicy.pxi":1056
 *             tmp_type.types = tmp_bmap
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 hashtab_insert(self.handle.p.symtab[sepol.SYM_TYPES].table,
 *                                <sepol.hashtab_key_t> tmp_name,
 */
      }
    }

    /* "setools/policyrep/selinuxpolicy.pxi":1065
 *                 raise
 * 
 *             self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name             # <<<<<<<<<<<<<<
 *             self.handle.p.type_val_to_struct[i] = tmp_type
 * 
 */
    ((__pyx_v_self->handle->p.sym_val_to_name[SYM_TYPES])[__pyx_v_i]) = __pyx_v_tmp_name;

    /* "setools/policyrep/selinuxpolicy.pxi":1066
 * 
 *             self.handle.p.sym_val_to_name[sepol.SYM_TYPES][i] = tmp_name
 *             self.handle.p.type_val_to_struct[i] = tmp_type             # <<<<<<<<<<<<<<
 * 
 *             # memory now owned by policydb, do not free
 */
    (__pyx_v_self->handle->p.type_val_to_struct[__pyx_v_i]) = __pyx_v_tmp_type;

    /* "setools/policyrep/selinuxpolicy.pxi":1069
 * 
 *             # memory now owned by policydb, do not free
 *             tmp_name = NULL             # <<<<<<<<<<<<<<
 *             tmp_type = NULL
 * 
 */
    __pyx_v_tmp_name = NULL;

    /* "setools/policyrep/selinuxpolicy.pxi":1070
 *             # memory now owned by policydb, do not free
 *             tmp_name = NULL
 *             tmp_type = NULL             # <<<<<<<<<<<<<<
 * 
 *     cdef _cache_constraint_counts(self):
 */
    __pyx_v_tmp_type = NULL;
    __pyx_L3_continue:;
  }

  /* "setools/policyrep/selinuxpolicy.pxi":1012
 *                 bit = sepol.ebitmap_next(&node, bit)
 * 
 *     cdef _synthesize_attrs(self):             # <<<<<<<<<<<<<<
 *         """
 *         Builds data for empty attributes and inserts them into the policydb.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._synthesize_attrs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_2generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/selinuxpolicy.pxi":1075
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())             # <<<<<<<<<<<<<<
 * 
 *     cdef _cache_terule_counts(self):
 */

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 1075, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_2generator27, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_SELinuxPolicy__cache_constraint, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(5, 1075, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._cache_constraint_counts.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_2generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 1075, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(5, 1075, __pyx_L1_error) }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_constraints); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1075, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 1075, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1075, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(5, 1075, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1075, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(5, 1075, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_r, __pyx_n_s_ruletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_5;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_5 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(5, 1075, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":1072
 *             tmp_type = NULL
 * 
 *     cdef _cache_constraint_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_constraint_counts(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_cache_constraint_counts", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(5, 1072, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/selinuxpolicy.pxi":1074
 *     cdef _cache_constraint_counts(self):
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:             # <<<<<<<<<<<<<<
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_self->constraint_counts); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(5, 1074, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/selinuxpolicy.pxi":1075
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())             # <<<<<<<<<<<<<<
 * 
 *     cdef _cache_terule_counts(self):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_collections); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_24_cache_constraint_counts_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_self->constraint_counts);
    __Pyx_DECREF(__pyx_cur_scope->__pyx_v_self->constraint_counts);
    __pyx_cur_scope->__pyx_v_self->constraint_counts = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1074
 *     cdef _cache_constraint_counts(self):
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:             # <<<<<<<<<<<<<<
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())
 * 
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":1072
 *             tmp_type = NULL
 * 
 *     cdef _cache_constraint_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all constraints in one iteration."""
 *         if not self.constraint_counts:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._cache_constraint_counts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":1077
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())
 * 
 *     cdef _cache_terule_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:
 */

static PyObject *__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_terule_counts(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_cache_terule_counts", 0);

  /* "setools/policyrep/selinuxpolicy.pxi":1079
 *     cdef _cache_terule_counts(self):
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:             # <<<<<<<<<<<<<<
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->terule_counts); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(5, 1079, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/selinuxpolicy.pxi":1080
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()             # <<<<<<<<<<<<<<
 *             self.terule_counts[TERuletype.type_transition.value] += \
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 */
    __pyx_t_4 = __pyx_f_7setools_9policyrep_14TERuleIterator_factory(__pyx_v_self, (&__pyx_v_self->handle->p.te_avtab)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1080, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ruletype_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1080, __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_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1080, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->terule_counts);
    __Pyx_DECREF(__pyx_v_self->terule_counts);
    __pyx_v_self->terule_counts = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1081
 *         if not self.terule_counts:
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \             # <<<<<<<<<<<<<<
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 * 
 */
    __Pyx_INCREF(__pyx_v_self->terule_counts);
    __pyx_t_3 = __pyx_v_self->terule_counts;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_type_transition); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1081, __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_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "setools/policyrep/selinuxpolicy.pxi":1082
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))             # <<<<<<<<<<<<<<
 * 
 *             for c in self.conditionals():
 */
    __pyx_t_6 = __pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(__pyx_v_self, (&__pyx_v_self->handle->p.filename_trans)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 1082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1082, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 1082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);

    /* "setools/policyrep/selinuxpolicy.pxi":1081
 *         if not self.terule_counts:
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \             # <<<<<<<<<<<<<<
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 * 
 */
    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1081, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_5, __pyx_t_8) < 0)) __PYX_ERR(5, 1081, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1084
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 * 
 *             for c in self.conditionals():             # <<<<<<<<<<<<<<
 *                 self.terule_counts.update(c.true_rules().ruletype_count())
 *                 self.terule_counts.update(c.false_rules().ruletype_count())
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_conditionals); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1084, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1084, __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_7 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1084, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_7 >= 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_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(5, 1084, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1084, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_7 >= 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_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(5, 1084, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1084, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_9(__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(5, 1084, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":1085
 * 
 *             for c in self.conditionals():
 *                 self.terule_counts.update(c.true_rules().ruletype_count())             # <<<<<<<<<<<<<<
 *                 self.terule_counts.update(c.false_rules().ruletype_count())
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->terule_counts, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_true_rules); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
        }
      }
      __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_10);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ruletype_count); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
        }
      }
      __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_10);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_3 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":1086
 *             for c in self.conditionals():
 *                 self.terule_counts.update(c.true_rules().ruletype_count())
 *                 self.terule_counts.update(c.false_rules().ruletype_count())             # <<<<<<<<<<<<<<
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->terule_counts, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_false_rules); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_11 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_10 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 1086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_ruletype_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 1086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "setools/policyrep/selinuxpolicy.pxi":1084
 *                 len(FileNameTERuleIterator.factory(self, &self.handle.p.filename_trans))
 * 
 *             for c in self.conditionals():             # <<<<<<<<<<<<<<
 *                 self.terule_counts.update(c.true_rules().ruletype_count())
 *                 self.terule_counts.update(c.false_rules().ruletype_count())
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/selinuxpolicy.pxi":1079
 *     cdef _cache_terule_counts(self):
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:             # <<<<<<<<<<<<<<
 *             self.terule_counts = TERuleIterator.factory(self, &self.handle.p.te_avtab).ruletype_count()
 *             self.terule_counts[TERuletype.type_transition.value] += \
 */
  }

  /* "setools/policyrep/selinuxpolicy.pxi":1077
 *             self.constraint_counts = collections.Counter(r.ruletype for r in self.constraints())
 * 
 *     cdef _cache_terule_counts(self):             # <<<<<<<<<<<<<<
 *         """Count all TE rules in one iteration."""
 *         if not self.terule_counts:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy._cache_terule_counts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":55
 * 
 *         # Public attributes:
 *         readonly str path             # <<<<<<<<<<<<<<
 *         readonly object handle_unknown
 *         readonly object target_platform
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_4path_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_4path_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_4path___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_4path___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

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

/* "setools/policyrep/selinuxpolicy.pxi":56
 *         # Public attributes:
 *         readonly str path
 *         readonly object handle_unknown             # <<<<<<<<<<<<<<
 *         readonly object target_platform
 *         readonly unsigned int version
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14handle_unknown_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_14handle_unknown_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_14handle_unknown___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_14handle_unknown___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->handle_unknown);
  __pyx_r = __pyx_v_self->handle_unknown;
  goto __pyx_L0;

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

/* "setools/policyrep/selinuxpolicy.pxi":57
 *         readonly str path
 *         readonly object handle_unknown
 *         readonly object target_platform             # <<<<<<<<<<<<<<
 *         readonly unsigned int version
 *         readonly bint mls
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15target_platform_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15target_platform_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_15target_platform___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_15target_platform___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->target_platform);
  __pyx_r = __pyx_v_self->target_platform;
  goto __pyx_L0;

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

/* "setools/policyrep/selinuxpolicy.pxi":58
 *         readonly object handle_unknown
 *         readonly object target_platform
 *         readonly unsigned int version             # <<<<<<<<<<<<<<
 *         readonly bint mls
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7version_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_7version_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_7version___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_7version___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->version); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 58, __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("setools.policyrep.SELinuxPolicy.version.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/selinuxpolicy.pxi":59
 *         readonly object target_platform
 *         readonly unsigned int version
 *         readonly bint mls             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, policyfile=None):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_3mls_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_3mls_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_3mls___get__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_3mls___get__(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->mls); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 59, __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("setools.policyrep.SELinuxPolicy.mls.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_103__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_103__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__82, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13SELinuxPolicy_105__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_13SELinuxPolicy_105__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__83, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.SELinuxPolicy.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":59
 * 
 *     @property
 *     def filename(self):             # <<<<<<<<<<<<<<
 *         """The type_transition rule's file name."""
 *         # Since name type_transitions have a different
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_8filename_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_8filename_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_8filename___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_8filename___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":63
 *         # Since name type_transitions have a different
 *         # class, this is always an error.
 *         if self.ruletype == TERuletype.type_transition:             # <<<<<<<<<<<<<<
 *             raise TERuleNoFilename
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_type_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->__pyx_base.ruletype, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(19, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_3)) {

    /* "setools/policyrep/terule.pxi":64
 *         # class, this is always an error.
 *         if self.ruletype == TERuletype.type_transition:
 *             raise TERuleNoFilename             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuleUseError("{0} rules do not have file names".format(self.ruletype))
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuleNoFilename); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(19, 64, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":63
 *         # Since name type_transitions have a different
 *         # class, this is always an error.
 *         if self.ruletype == TERuletype.type_transition:             # <<<<<<<<<<<<<<
 *             raise TERuleNoFilename
 *         else:
 */
  }

  /* "setools/policyrep/terule.pxi":66
 *             raise TERuleNoFilename
 *         else:
 *             raise RuleUseError("{0} rules do not have file names".format(self.ruletype))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_rules_do_not_have_file_names, __pyx_n_s_format_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_self->__pyx_base.ruletype) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_self->__pyx_base.ruletype);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 66, __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 && unlikely(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_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 66, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(19, 66, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":59
 * 
 *     @property
 *     def filename(self):             # <<<<<<<<<<<<<<
 *         """The type_transition rule's file name."""
 *         # Since name type_transitions have a different
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.filename.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":69
 * 
 *     @property
 *     def conditional(self):             # <<<<<<<<<<<<<<
 *         """The rule's conditional expression."""
 *         if self._conditional is None:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_11conditional_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_11conditional_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_11conditional___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_11conditional___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":71
 *     def conditional(self):
 *         """The rule's conditional expression."""
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             raise RuleNotConditional
 *         else:
 */
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_conditional) == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/terule.pxi":72
 *         """The rule's conditional expression."""
 *         if self._conditional is None:
 *             raise RuleNotConditional             # <<<<<<<<<<<<<<
 *         else:
 *             return self._conditional
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_RuleNotConditional); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 72, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(19, 72, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":71
 *     def conditional(self):
 *         """The rule's conditional expression."""
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             raise RuleNotConditional
 *         else:
 */
  }

  /* "setools/policyrep/terule.pxi":74
 *             raise RuleNotConditional
 *         else:
 *             return self._conditional             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject *)__pyx_v_self->_conditional));
    __pyx_r = ((PyObject *)__pyx_v_self->_conditional);
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":69
 * 
 *     @property
 *     def conditional(self):             # <<<<<<<<<<<<<<
 *         """The rule's conditional expression."""
 *         if self._conditional is None:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.conditional.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":77
 * 
 *     @property
 *     def conditional_block(self):             # <<<<<<<<<<<<<<
 *         """
 *         The conditional block of the rule (T/F)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_17conditional_block_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_17conditional_block_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_17conditional_block___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_17conditional_block___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":89
 *         }
 *         """
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             raise RuleNotConditional
 *         else:
 */
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_conditional) == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/terule.pxi":90
 *         """
 *         if self._conditional is None:
 *             raise RuleNotConditional             # <<<<<<<<<<<<<<
 *         else:
 *             return self._conditional_block
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_RuleNotConditional); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(19, 90, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":89
 *         }
 *         """
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             raise RuleNotConditional
 *         else:
 */
  }

  /* "setools/policyrep/terule.pxi":92
 *             raise RuleNotConditional
 *         else:
 *             return self._conditional_block             # <<<<<<<<<<<<<<
 * 
 *     def enabled(self, **kwargs):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->_conditional_block); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 92, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":77
 * 
 *     @property
 *     def conditional_block(self):             # <<<<<<<<<<<<<<
 *         """
 *         The conditional block of the rule (T/F)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.conditional_block.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":94
 *             return self._conditional_block
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_1enabled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_10BaseTERule_enabled[] = "\n        Determine if the rule is enabled, given the stated boolean values.\n\n        Keyword Parameters: bool_name=True|False\n        Each keyword parameter name corresponds to a Boolean name\n        in the expression and the state to use in the evaluation.\n        If a Boolean value is not set, its default value is used.\n        Extra values are ignored.\n\n        Return:     bool\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_1enabled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_kwargs = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("enabled (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("enabled", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;}
  if (__pyx_kwds && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "enabled", 1))) return NULL;
  if (__pyx_kwds) {
    __pyx_v_kwargs = PyDict_Copy(__pyx_kwds); if (unlikely(!__pyx_v_kwargs)) return NULL;
    __Pyx_GOTREF(__pyx_v_kwargs);
  } else {
    __pyx_v_kwargs = NULL;
  }
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_enabled(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self), __pyx_v_kwargs);

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

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_enabled(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self, PyObject *__pyx_v_kwargs) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("enabled", 0);

  /* "setools/policyrep/terule.pxi":106
 *         Return:     bool
 *         """
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             return True
 * 
 */
  __pyx_t_1 = (((PyObject *)__pyx_v_self->_conditional) == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":107
 *         """
 *         if self._conditional is None:
 *             return True             # <<<<<<<<<<<<<<
 * 
 *         if self._conditional.evaluate(**kwargs):
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":106
 *         Return:     bool
 *         """
 *         if self._conditional is None:             # <<<<<<<<<<<<<<
 *             return True
 * 
 */
  }

  /* "setools/policyrep/terule.pxi":109
 *             return True
 * 
 *         if self._conditional.evaluate(**kwargs):             # <<<<<<<<<<<<<<
 *             return self._conditional_block
 *         else:
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_conditional), __pyx_n_s_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(19, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":110
 * 
 *         if self._conditional.evaluate(**kwargs):
 *             return self._conditional_block             # <<<<<<<<<<<<<<
 *         else:
 *             return not self._conditional_block
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_self->_conditional_block); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":109
 *             return True
 * 
 *         if self._conditional.evaluate(**kwargs):             # <<<<<<<<<<<<<<
 *             return self._conditional_block
 *         else:
 */
  }

  /* "setools/policyrep/terule.pxi":112
 *             return self._conditional_block
 *         else:
 *             return not self._conditional_block             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyBool_FromLong((!(__pyx_v_self->_conditional_block != 0))); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":94
 *             return self._conditional_block
 * 
 *     def enabled(self, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Determine if the rule is enabled, given the stated boolean values.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.enabled", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":53
 * 
 *     cdef:
 *         readonly ObjClass tclass             # <<<<<<<<<<<<<<
 *         str rule_string
 *         Conditional _conditional
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_6tclass_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_6tclass_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_6tclass___get__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_6tclass___get__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __pyx_r = ((PyObject *)__pyx_v_self->tclass);
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(11); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_conditional));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_conditional));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->_conditional));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.origin);
  PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_self->__pyx_base.origin);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_4, 5, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->rule_string);
  __Pyx_GIVEREF(__pyx_v_self->rule_string);
  PyTuple_SET_ITEM(__pyx_t_4, 6, __pyx_v_self->rule_string);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_4, 7, __pyx_v_self->__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.source);
  PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.source);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.target);
  PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.target);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->tclass));
  PyTuple_SET_ITEM(__pyx_t_4, 10, ((PyObject *)__pyx_v_self->tclass));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, None), state
 */
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->_conditional) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.origin != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->rule_string != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.ruletype != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.source != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.target != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->tclass) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    __pyx_t_6 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, None), state
 *     else:
 */
  __pyx_t_6 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_BaseTERule); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_82942606);
    __Pyx_GIVEREF(__pyx_int_82942606);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_82942606);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, None), state
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_BaseTERule); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_82942606);
    __Pyx_GIVEREF(__pyx_int_82942606);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_82942606);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_10BaseTERule_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_10BaseTERule_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_10BaseTERule_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseTERule__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseTERule, (type(self), 0x4f19a8e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseTERule__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.BaseTERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_7factory_2generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":132
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,             # <<<<<<<<<<<<<<
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
 */

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_7factory_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_36_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_36_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 132, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_6AVRule_7factory_2generator28, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_AVRule_factory_locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 132, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRule.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_7factory_2generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  uint32_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 132, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy)) { __Pyx_RaiseClosureNameError("policy"); __PYX_ERR(19, 132, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_r)) { __Pyx_RaiseClosureNameError("r"); __PYX_ERR(19, 132, __pyx_L1_error) }
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_r->__pyx_base.tclass);
  __Pyx_INCREF(__pyx_t_2);

  /* "setools/policyrep/terule.pxi":133
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))             # <<<<<<<<<<<<<<
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 */
  if (((__pyx_cur_scope->__pyx_outer_scope->__pyx_v_key->specified & AVTAB_AUDITDENY) != 0)) {
    __pyx_t_3 = (~__pyx_cur_scope->__pyx_outer_scope->__pyx_v_datum->data);
  } else {
    __pyx_t_3 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_datum->data;
  }

  /* "setools/policyrep/terule.pxi":132
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,             # <<<<<<<<<<<<<<
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
 */
  __pyx_t_4 = __pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 132, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(19, 132, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(19, 132, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_6(__pyx_t_2);
      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(19, 132, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_p);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_p);
    __pyx_r = __pyx_cur_scope->__pyx_v_p;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_5;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_6;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_5 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_6 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 132, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":122
 * 
 *     @staticmethod
 *     cdef inline AVRule factory(SELinuxPolicy policy, sepol.avtab_key_t *key, sepol.avtab_datum_t *datum,             # <<<<<<<<<<<<<<
 *                                conditional, conditional_block):
 *         """Factory function for creating AVRule objects."""
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_f_7setools_9policyrep_6AVRule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *__pyx_cur_scope;
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_factory(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_factory, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 122, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_policy = __pyx_v_policy;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __pyx_cur_scope->__pyx_v_key = __pyx_v_key;
  __pyx_cur_scope->__pyx_v_datum = __pyx_v_datum;

  /* "setools/policyrep/terule.pxi":125
 *                                conditional, conditional_block):
 *         """Factory function for creating AVRule objects."""
 *         cdef AVRule r = AVRule.__new__(AVRule)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_AVRule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 125, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
  __pyx_cur_scope->__pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":126
 *         """Factory function for creating AVRule objects."""
 *         cdef AVRule r = AVRule.__new__(AVRule)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 */
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_policy));
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_cur_scope->__pyx_v_policy;

  /* "setools/policyrep/terule.pxi":127
 *         cdef AVRule r = AVRule.__new__(AVRule)
 *         r.policy = policy
 *         r.key = <uintptr_t>key             # <<<<<<<<<<<<<<
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 */
  __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_cur_scope->__pyx_v_key);

  /* "setools/policyrep/terule.pxi":128
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)             # <<<<<<<<<<<<<<
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_cur_scope->__pyx_v_key->specified & (~AVTAB_ENABLED))); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":129
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 */
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_cur_scope->__pyx_v_policy, (__pyx_cur_scope->__pyx_v_key->source_type - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":130
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,
 */
  __pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_cur_scope->__pyx_v_policy, (__pyx_cur_scope->__pyx_v_key->target_type - 1)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":131
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))             # <<<<<<<<<<<<<<
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 */
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_cur_scope->__pyx_v_policy, (__pyx_cur_scope->__pyx_v_key->target_class - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass));
  __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":132
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,             # <<<<<<<<<<<<<<
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
 */
  __pyx_t_2 = __pyx_pf_7setools_9policyrep_6AVRule_7factory_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyFrozenSet_New(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->perms);
  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->perms);
  __pyx_cur_scope->__pyx_v_r->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":134
 *         r.perms = frozenset(p for p in PermissionVectorIterator.factory(policy, r.tclass,
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional             # <<<<<<<<<<<<<<
 *         r._conditional_block = conditional_block
 *         r.origin = None
 */
  if (!(likely(((__pyx_v_conditional) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_conditional, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(19, 134, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_conditional;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional));
  __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":135
 *                       ~datum.data if key.specified & sepol.AVTAB_AUDITDENY else datum.data))
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         return r
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_conditional_block); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 135, __pyx_L1_error)
  __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_5;

  /* "setools/policyrep/terule.pxi":136
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

  /* "setools/policyrep/terule.pxi":137
 *         r._conditional_block = conditional_block
 *         r.origin = None
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
  __pyx_r = __pyx_cur_scope->__pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":122
 * 
 *     @staticmethod
 *     cdef inline AVRule factory(SELinuxPolicy policy, sepol.avtab_key_t *key, sepol.avtab_datum_t *datum,             # <<<<<<<<<<<<<<
 *                                conditional, conditional_block):
 *         """Factory function for creating AVRule objects."""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.AVRule.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":139
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}".
 *             format(self, self._conditional, self._conditional_block))
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_6AVRule_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_6AVRule_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule___hash__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_6AVRule___hash__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_hash_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/terule.pxi":140
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}".             # <<<<<<<<<<<<<<
 *             format(self, self._conditional, self._conditional_block))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_3, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/terule.pxi":141
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}".
 *             format(self, self._conditional, self._conditional_block))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  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 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[4] = {__pyx_t_4, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 141, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __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[4] = {__pyx_t_4, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 141, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_self));
    __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, ((PyObject *)__pyx_v_self->__pyx_base._conditional));
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":140
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}".             # <<<<<<<<<<<<<<
 *             format(self, self._conditional, self._conditional_block))
 * 
 */
  __pyx_t_7 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_7 == ((Py_hash_t)-1))) __PYX_ERR(19, 140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":139
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}".
 *             format(self, self._conditional, self._conditional_block))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.AVRule.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":143
 *             format(self, self._conditional, self._conditional_block))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_2__lt__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_2__lt__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/terule.pxi":144
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 144, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":143
 *             format(self, self._conditional, self._conditional_block))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.AVRule.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":147
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default type."""
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_7default_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_7default___get__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_7default___get__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":149
 *     def default(self):
 *         """The rule's default type."""
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))             # <<<<<<<<<<<<<<
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_rules_do_not_have_a_default_t, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 149, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base.__pyx_base.ruletype) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 149, __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 && 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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(19, 149, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":147
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default type."""
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.AVRule.default.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":151
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):             # <<<<<<<<<<<<<<
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_5derive_expanded(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_7setools_9policyrep_6AVRule_4derive_expanded[] = "Derive an expanded rule from source, target, and perms.";
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_5derive_expanded(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_source = 0;
  struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_target = 0;
  PyObject *__pyx_v_perms = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("derive_expanded (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_source,&__pyx_n_s_target,&__pyx_n_s_perms,0};
    PyObject* values[3] = {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  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_source)) != 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_target)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("derive_expanded", 1, 3, 3, 1); __PYX_ERR(19, 151, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_perms)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("derive_expanded", 1, 3, 3, 2); __PYX_ERR(19, 151, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "derive_expanded") < 0)) __PYX_ERR(19, 151, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v_source = ((struct __pyx_obj_7setools_9policyrep_BaseType *)values[0]);
    __pyx_v_target = ((struct __pyx_obj_7setools_9policyrep_BaseType *)values[1]);
    __pyx_v_perms = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("derive_expanded", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(19, 151, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRule.derive_expanded", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_source), __pyx_ptype_7setools_9policyrep_BaseType, 1, "source", 0))) __PYX_ERR(19, 151, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_target), __pyx_ptype_7setools_9policyrep_BaseType, 1, "target", 0))) __PYX_ERR(19, 151, __pyx_L1_error)
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_4derive_expanded(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self), __pyx_v_source, __pyx_v_target, __pyx_v_perms);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_15derive_expanded_2generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":171
 *         r.target = target
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)             # <<<<<<<<<<<<<<
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block
 */

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_15derive_expanded_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_38_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_38_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 171, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_6AVRule_15derive_expanded_2generator29, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_derive_expanded_locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 171, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRule.derive_expanded.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_15derive_expanded_2generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 171, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_perms)) { __Pyx_RaiseClosureNameError("perms"); __PYX_ERR(19, 171, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_perms)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_perms)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_perms; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_perms); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 171, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 171, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(19, 171, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 171, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(19, 171, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 171, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      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(19, 171, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_p);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_p);
    __pyx_r = __pyx_cur_scope->__pyx_v_p;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 171, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":151
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):             # <<<<<<<<<<<<<<
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
 */

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_4derive_expanded(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_source, struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_target, PyObject *__pyx_v_perms) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *__pyx_cur_scope;
  struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_r = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  uintptr_t __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("derive_expanded", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_37_derive_expanded(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_37_derive_expanded, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 151, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_perms = __pyx_v_perms;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_perms);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_perms);

  /* "setools/policyrep/terule.pxi":154
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
 *         if self.origin is not None:             # <<<<<<<<<<<<<<
 *             raise RuleUseError("{0} rule is already expanded.".format(self.ruletype))
 * 
 */
  __pyx_t_1 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/terule.pxi":155
 *         cdef AVRule r
 *         if self.origin is not None:
 *             raise RuleUseError("{0} rule is already expanded.".format(self.ruletype))             # <<<<<<<<<<<<<<
 * 
 *         if source is not self.source and source not in self.source:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_rule_is_already_expanded, __pyx_n_s_format_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_self->__pyx_base.__pyx_base.ruletype) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(19, 155, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":154
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
 *         if self.origin is not None:             # <<<<<<<<<<<<<<
 *             raise RuleUseError("{0} rule is already expanded.".format(self.ruletype))
 * 
 */
  }

  /* "setools/policyrep/terule.pxi":157
 *             raise RuleUseError("{0} rule is already expanded.".format(self.ruletype))
 * 
 *         if source is not self.source and source not in self.source:             # <<<<<<<<<<<<<<
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(source, self.source))
 *         if target is not self.target and target not in self.target:
 */
  __pyx_t_1 = (((PyObject *)__pyx_v_source) != __pyx_v_self->__pyx_base.__pyx_base.source);
  __pyx_t_8 = (__pyx_t_1 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_2 = __pyx_t_8;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_source), __pyx_v_self->__pyx_base.__pyx_base.source, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(19, 157, __pyx_L1_error)
  __pyx_t_1 = (__pyx_t_8 != 0);
  __pyx_t_2 = __pyx_t_1;
  __pyx_L5_bool_binop_done:;
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/terule.pxi":158
 * 
 *         if source is not self.source and source not in self.source:
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(source, self.source))             # <<<<<<<<<<<<<<
 *         if target is not self.target and target not in self.target:
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(target, self.target))
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_1_and_is_not_in_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_source), __pyx_v_self->__pyx_base.__pyx_base.source};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 158, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_source), __pyx_v_self->__pyx_base.__pyx_base.source};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 158, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(19, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_INCREF(((PyObject *)__pyx_v_source));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_source));
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, ((PyObject *)__pyx_v_source));
      __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
      __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_self->__pyx_base.__pyx_base.source);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(19, 158, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":157
 *             raise RuleUseError("{0} rule is already expanded.".format(self.ruletype))
 * 
 *         if source is not self.source and source not in self.source:             # <<<<<<<<<<<<<<
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(source, self.source))
 *         if target is not self.target and target not in self.target:
 */
  }

  /* "setools/policyrep/terule.pxi":159
 *         if source is not self.source and source not in self.source:
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(source, self.source))
 *         if target is not self.target and target not in self.target:             # <<<<<<<<<<<<<<
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(target, self.target))
 *         # No reasonable perms check possible as perms can be disjoint
 */
  __pyx_t_1 = (((PyObject *)__pyx_v_target) != __pyx_v_self->__pyx_base.__pyx_base.target);
  __pyx_t_8 = (__pyx_t_1 != 0);
  if (__pyx_t_8) {
  } else {
    __pyx_t_2 = __pyx_t_8;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_target), __pyx_v_self->__pyx_base.__pyx_base.target, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(19, 159, __pyx_L1_error)
  __pyx_t_1 = (__pyx_t_8 != 0);
  __pyx_t_2 = __pyx_t_1;
  __pyx_L8_bool_binop_done:;
  if (unlikely(__pyx_t_2)) {

    /* "setools/policyrep/terule.pxi":160
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(source, self.source))
 *         if target is not self.target and target not in self.target:
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(target, self.target))             # <<<<<<<<<<<<<<
 *         # No reasonable perms check possible as perms can be disjoint
 *         # from self.perms when redundant perms are removed.
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_1_and_is_not_in_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_10, ((PyObject *)__pyx_v_target), __pyx_v_self->__pyx_base.__pyx_base.target};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 160, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_10, ((PyObject *)__pyx_v_target), __pyx_v_self->__pyx_base.__pyx_base.target};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 160, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 160, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_10) {
        __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10); __pyx_t_10 = NULL;
      }
      __Pyx_INCREF(((PyObject *)__pyx_v_target));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_target));
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, ((PyObject *)__pyx_v_target));
      __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
      __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_v_self->__pyx_base.__pyx_base.target);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 160, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(19, 160, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":159
 *         if source is not self.source and source not in self.source:
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(source, self.source))
 *         if target is not self.target and target not in self.target:             # <<<<<<<<<<<<<<
 *             raise RuleUseError("{0} is not {1} and is not in {1}".format(target, self.target))
 *         # No reasonable perms check possible as perms can be disjoint
 */
  }

  /* "setools/policyrep/terule.pxi":164
 *         # from self.perms when redundant perms are removed.
 * 
 *         r = AVRule.__new__(AVRule)             # <<<<<<<<<<<<<<
 *         r.policy = self.policy
 *         r.key = self.key
 */
  __pyx_t_3 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_AVRule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 164, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":165
 * 
 *         r = AVRule.__new__(AVRule)
 *         r.policy = self.policy             # <<<<<<<<<<<<<<
 *         r.key = self.key
 *         r.ruletype = self.ruletype
 */
  __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":166
 *         r = AVRule.__new__(AVRule)
 *         r.policy = self.policy
 *         r.key = self.key             # <<<<<<<<<<<<<<
 *         r.ruletype = self.ruletype
 *         r.source = source
 */
  __pyx_t_11 = __pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_11;

  /* "setools/policyrep/terule.pxi":167
 *         r.policy = self.policy
 *         r.key = self.key
 *         r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *         r.source = source
 *         r.target = target
 */
  __pyx_t_3 = __pyx_v_self->__pyx_base.__pyx_base.ruletype;
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":168
 *         r.key = self.key
 *         r.ruletype = self.ruletype
 *         r.source = source             # <<<<<<<<<<<<<<
 *         r.target = target
 *         r.tclass = self.tclass
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_source));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_source));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = ((PyObject *)__pyx_v_source);

  /* "setools/policyrep/terule.pxi":169
 *         r.ruletype = self.ruletype
 *         r.source = source
 *         r.target = target             # <<<<<<<<<<<<<<
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_target));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_target));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = ((PyObject *)__pyx_v_target);

  /* "setools/policyrep/terule.pxi":170
 *         r.source = source
 *         r.target = target
 *         r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *         r.perms = frozenset(p for p in perms)
 *         r._conditional = self._conditional
 */
  __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.tclass);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.tclass));
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":171
 *         r.target = target
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)             # <<<<<<<<<<<<<<
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block
 */
  __pyx_t_3 = __pyx_pf_7setools_9policyrep_6AVRule_15derive_expanded_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyFrozenSet_New(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_r->perms);
  __Pyx_DECREF(__pyx_v_r->perms);
  __pyx_v_r->perms = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "setools/policyrep/terule.pxi":172
 *         r.tclass = self.tclass
 *         r.perms = frozenset(p for p in perms)
 *         r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *         r._conditional_block = self._conditional_block
 *         r.origin = self
 */
  __pyx_t_4 = ((PyObject *)__pyx_v_self->__pyx_base._conditional);
  __Pyx_INCREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base._conditional);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base._conditional));
  __pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "setools/policyrep/terule.pxi":173
 *         r.perms = frozenset(p for p in perms)
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *         r.origin = self
 *         return r
 */
  __pyx_t_2 = __pyx_v_self->__pyx_base._conditional_block;
  __pyx_v_r->__pyx_base._conditional_block = __pyx_t_2;

  /* "setools/policyrep/terule.pxi":174
 *         r._conditional = self._conditional
 *         r._conditional_block = self._conditional_block
 *         r.origin = self             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_v_self);

  /* "setools/policyrep/terule.pxi":175
 *         r._conditional_block = self._conditional_block
 *         r.origin = self
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = ((PyObject *)__pyx_v_r);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":151
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 * 
 *     def derive_expanded(self, BaseType source, BaseType target, perms):             # <<<<<<<<<<<<<<
 *         """Derive an expanded rule from source, target, and perms."""
 *         cdef AVRule r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.AVRule.derive_expanded", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_8generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":177
 *         return r
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_7expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_6AVRule_6expand[] = "Expand the rule into an equivalent set of rules without attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_7expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_6expand(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_6expand(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_39_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_39_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 177, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_6AVRule_8generator7, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_AVRule_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 177, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_6AVRule_8generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *(*__pyx_t_12)(PyObject *);
  uintptr_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L10_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 177, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":180
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRule.__new__(AVRule)
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.origin == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":181
 *         cdef AVRule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = AVRule.__new__(AVRule)
 *                 r.policy = self.policy
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_n_s_expand); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_n_s_expand); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 181, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 181, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 181, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_6);
      __pyx_t_4 = 0;
      __pyx_t_6 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 181, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __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(19, 181, __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(19, 181, __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(19, 181, __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(19, 181, __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(19, 181, __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(19, 181, __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(19, 181, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(19, 181, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 181, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 181, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 181, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_4), 2) < 0) __PYX_ERR(19, 181, __pyx_L1_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(19, 181, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/terule.pxi":182
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRule.__new__(AVRule)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
 */
      __pyx_t_3 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_AVRule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 182, __pyx_L1_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_t_3));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":183
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRule.__new__(AVRule)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":184
 *                 r = AVRule.__new__(AVRule)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 */
      __pyx_t_13 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_13;

      /* "setools/policyrep/terule.pxi":185
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":186
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/terule.pxi":187
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/terule.pxi":188
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.perms = self.perms
 *                 r._conditional = self._conditional
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.tclass);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":189
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms             # <<<<<<<<<<<<<<
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->perms;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->perms);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->perms);
      __pyx_cur_scope->__pyx_v_r->perms = ((PyObject*)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":190
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms
 *                 r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base._conditional);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional));
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":191
 *                 r.perms = self.perms
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
 */
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base._conditional_block;
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_2;

      /* "setools/policyrep/terule.pxi":192
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/terule.pxi":193
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_10;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_11;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_11 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 193, __pyx_L1_error)

      /* "setools/policyrep/terule.pxi":181
 *         cdef AVRule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = AVRule.__new__(AVRule)
 *                 r.policy = self.policy
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":180
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRule.__new__(AVRule)
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/terule.pxi":197
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L10_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 197, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/terule.pxi":177
 *         return r
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRule r
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":199
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} ".format(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_10statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_10statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_9statement(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_9statement(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  PyObject *__pyx_v_perms = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/terule.pxi":200
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} ".format(self)
 * 
 */
  __pyx_t_1 = (__pyx_v_self->__pyx_base.rule_string != Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_v_self->__pyx_base.rule_string) != 0);
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":201
 *     def statement(self):
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} ".format(self)             # <<<<<<<<<<<<<<
 * 
 *             # allow/dontaudit/auditallow/neverallow rules
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_4, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 201, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(19, 201, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
    __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
    __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/terule.pxi":204
 * 
 *             # allow/dontaudit/auditallow/neverallow rules
 *             perms = self.perms             # <<<<<<<<<<<<<<
 *             if len(perms) > 1:
 *                 self.rule_string += "{{ {0} }};".format(' '.join(sorted(perms)))
 */
    __pyx_t_3 = __pyx_v_self->perms;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_perms = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/terule.pxi":205
 *             # allow/dontaudit/auditallow/neverallow rules
 *             perms = self.perms
 *             if len(perms) > 1:             # <<<<<<<<<<<<<<
 *                 self.rule_string += "{{ {0} }};".format(' '.join(sorted(perms)))
 *             else:
 */
    if (unlikely(__pyx_v_perms == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(19, 205, __pyx_L1_error)
    }
    __pyx_t_6 = PySet_GET_SIZE(__pyx_v_perms); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(19, 205, __pyx_L1_error)
    __pyx_t_2 = ((__pyx_t_6 > 1) != 0);
    if (__pyx_t_2) {

      /* "setools/policyrep/terule.pxi":206
 *             perms = self.perms
 *             if len(perms) > 1:
 *                 self.rule_string += "{{ {0} }};".format(' '.join(sorted(perms)))             # <<<<<<<<<<<<<<
 *             else:
 *                 # convert to list since sets cannot be indexed
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_5, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = PySequence_List(__pyx_v_perms); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = ((PyObject*)__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_8 = PyList_Sort(__pyx_t_5); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(19, 206, __pyx_L1_error)
      __pyx_t_7 = PyUnicode_Join(__pyx_kp_u__3, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx_base.rule_string, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 206, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(19, 206, __pyx_L1_error)
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
      __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
      __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":205
 *             # allow/dontaudit/auditallow/neverallow rules
 *             perms = self.perms
 *             if len(perms) > 1:             # <<<<<<<<<<<<<<
 *                 self.rule_string += "{{ {0} }};".format(' '.join(sorted(perms)))
 *             else:
 */
      goto __pyx_L4;
    }

    /* "setools/policyrep/terule.pxi":209
 *             else:
 *                 # convert to list since sets cannot be indexed
 *                 self.rule_string += "{0};".format(list(perms)[0])             # <<<<<<<<<<<<<<
 * 
 *             try:
 */
    /*else*/ {
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_6, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 209, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = PySequence_List(__pyx_v_perms); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 209, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_t_7, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 209, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 209, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx_base.rule_string, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 209, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(19, 209, __pyx_L1_error)
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
      __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
      __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_3);
      __pyx_t_3 = 0;
    }
    __pyx_L4:;

    /* "setools/policyrep/terule.pxi":211
 *                 self.rule_string += "{0};".format(list(perms)[0])
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)
 *             except RuleNotConditional:
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      /*try:*/ {

        /* "setools/policyrep/terule.pxi":212
 * 
 *             try:
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)             # <<<<<<<<<<<<<<
 *             except RuleNotConditional:
 *                 pass
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_conditional_0_conditional_blo, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 212, __pyx_L5_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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_self));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 212, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx_base.rule_string, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 212, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(19, 212, __pyx_L5_error)
        __Pyx_GIVEREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
        __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
        __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_4);
        __pyx_t_4 = 0;

        /* "setools/policyrep/terule.pxi":211
 *                 self.rule_string += "{0};".format(list(perms)[0])
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)
 *             except RuleNotConditional:
 */
      }
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "setools/policyrep/terule.pxi":213
 *             try:
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)
 *             except RuleNotConditional:             # <<<<<<<<<<<<<<
 *                 pass
 * 
 */
      __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_3, &__pyx_t_5);
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_RuleNotConditional); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 213, __pyx_L7_except_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_12 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_ErrRestore(__pyx_t_4, __pyx_t_3, __pyx_t_5);
      __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0;
      if (__pyx_t_12) {
        __Pyx_ErrRestore(0,0,0);
        goto __pyx_L6_exception_handled;
      }
      goto __pyx_L7_except_error;
      __pyx_L7_except_error:;

      /* "setools/policyrep/terule.pxi":211
 *                 self.rule_string += "{0};".format(list(perms)[0])
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)
 *             except RuleNotConditional:
 */
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      goto __pyx_L1_error;
      __pyx_L6_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      __pyx_L10_try_end:;
    }

    /* "setools/policyrep/terule.pxi":200
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} ".format(self)
 * 
 */
  }

  /* "setools/policyrep/terule.pxi":216
 *                 pass
 * 
 *         return self.rule_string             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __pyx_r = __pyx_v_self->__pyx_base.rule_string;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":199
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} ".format(self)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.AVRule.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_perms);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":119
 *     """An access vector type enforcement rule."""
 * 
 *     cdef readonly frozenset perms             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_5perms___get__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_5perms___get__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->perms);
  __pyx_r = __pyx_v_self->perms;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_12__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_12__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_11__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_11__reduce_cython__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(12); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->__pyx_base._conditional));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_INCREF(__pyx_v_self->perms);
  __Pyx_GIVEREF(__pyx_v_self->perms);
  PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_v_self->perms);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_4, 6, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.rule_string);
  PyTuple_SET_ITEM(__pyx_t_4, 7, __pyx_v_self->__pyx_base.rule_string);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  PyTuple_SET_ITEM(__pyx_t_4, 11, ((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, None), state
 */
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base._conditional) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->perms != ((PyObject*)Py_None));
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.rule_string != ((PyObject*)Py_None));
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.ruletype != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.__pyx_base.source != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.target != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, None), state
 *     else:
 */
  __pyx_t_6 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_AVRule); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_197552485);
    __Pyx_GIVEREF(__pyx_int_197552485);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_197552485);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, None), state
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_AVRule); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_197552485);
    __Pyx_GIVEREF(__pyx_int_197552485);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_197552485);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.AVRule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_14__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6AVRule_14__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6AVRule_13__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_6AVRule_13__setstate_cython__(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_AVRule__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRule, (type(self), 0xbc66965, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRule__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.AVRule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":226
 *     """
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         """
 *         String formating.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_1__format__(PyObject *__pyx_v_self, PyObject *__pyx_v_spec); /*proto*/
static char __pyx_doc_7setools_9policyrep_8IoctlSet___format__[] = "\n        String formating.\n\n        The standard formatting (no specification) will render the\n        ranges of ioctls, space separated.\n\n        The , option by itself will render the ranges of ioctls,\n        comma separated\n\n        Any other combination of formatting options will fall back\n        to set's formatting behavior.\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_1__format__(PyObject *__pyx_v_self, PyObject *__pyx_v_spec) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__format__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet___format__(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self), ((PyObject *)__pyx_v_spec));

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

/* "setools/policyrep/terule.pxi":243
 *         perms = sorted(self)
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):             # <<<<<<<<<<<<<<
 *             group = list(i)
 *             if len(group) > 1:
 */

static PyObject *__pyx_pf_7setools_9policyrep_114__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_c);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_c);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_c);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_10__format___lambda26(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8IoctlSet_10__format___lambda26 = {"lambda26", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_8IoctlSet_10__format___lambda26, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_10__format___lambda26(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_c = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda26 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_k,&__pyx_n_s_c,0};
    PyObject* values[2] = {0,0};
    __pyx_defaults1 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self);
    values[1] = __pyx_dynamic_args->__pyx_arg_c;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        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_k)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda26") < 0)) __PYX_ERR(19, 243, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_k = values[0];
    __pyx_v_c = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda26", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(19, 243, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__format__.lambda26", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_lambda26(__pyx_self, __pyx_v_k, __pyx_v_c);

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

static PyObject *__pyx_lambda_funcdef_lambda26(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda26", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyIter_Next(__pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Subtract(__pyx_v_k, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__format__.lambda26", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":226
 *     """
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         """
 *         String formating.
 */

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet___format__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self, PyObject *__pyx_v_spec) {
  PyObject *__pyx_v_perms = NULL;
  PyObject *__pyx_v_shortlist = NULL;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_group = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  Py_ssize_t __pyx_t_12;
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__format__", 0);

  /* "setools/policyrep/terule.pxi":241
 * 
 *         # generate short permission notation
 *         perms = sorted(self)             # <<<<<<<<<<<<<<
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 */
  __pyx_t_2 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_3 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(19, 241, __pyx_L1_error)
  __pyx_v_perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":242
 *         # generate short permission notation
 *         perms = sorted(self)
 *         shortlist = []             # <<<<<<<<<<<<<<
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 *             group = list(i)
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_shortlist = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":243
 *         perms = sorted(self)
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):             # <<<<<<<<<<<<<<
 *             group = list(i)
 *             if len(group) > 1:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_itertools); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_groupby); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_perms);
  __Pyx_GIVEREF(__pyx_v_perms);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_perms);
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8IoctlSet_10__format___lambda26, 0, __pyx_n_s_format___locals_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults1), 1)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_itertools); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_5)->__pyx_arg_c = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_7setools_9policyrep_114__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_key, __pyx_t_5) < 0) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __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_9 = 0;
    __pyx_t_10 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(19, 243, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_10)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_9 >= 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_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(19, 243, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 243, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_9 >= 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_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(19, 243, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 243, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_10(__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(19, 243, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
      PyObject* sequence = __pyx_t_5;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(19, 243, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext;
      index = 0; __pyx_t_1 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      index = 1; __pyx_t_2 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_6), 2) < 0) __PYX_ERR(19, 243, __pyx_L1_error)
      __pyx_t_11 = NULL;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L6_unpacking_done;
      __pyx_L5_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_11 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(19, 243, __pyx_L1_error)
      __pyx_L6_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_1);
    __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/terule.pxi":244
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 *             group = list(i)             # <<<<<<<<<<<<<<
 *             if len(group) > 1:
 *                 shortlist.append("{0:#06x}-{1:#06x}".format(group[0], group[-1]))
 */
    __pyx_t_5 = PySequence_List(__pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 244, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_group, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":245
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 *             group = list(i)
 *             if len(group) > 1:             # <<<<<<<<<<<<<<
 *                 shortlist.append("{0:#06x}-{1:#06x}".format(group[0], group[-1]))
 *             else:
 */
    __pyx_t_12 = PyList_GET_SIZE(__pyx_v_group); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(19, 245, __pyx_L1_error)
    __pyx_t_13 = ((__pyx_t_12 > 1) != 0);
    if (__pyx_t_13) {

      /* "setools/policyrep/terule.pxi":246
 *             group = list(i)
 *             if len(group) > 1:
 *                 shortlist.append("{0:#06x}-{1:#06x}".format(group[0], group[-1]))             # <<<<<<<<<<<<<<
 *             else:
 *                 shortlist.append("{0:#06x}".format(group[0]))
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_06x_1_06x, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_group, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_group, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = NULL;
      __pyx_t_14 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_14 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6};
        __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 246, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6};
        __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 246, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      {
        __pyx_t_7 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_14, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_14, __pyx_t_6);
        __pyx_t_1 = 0;
        __pyx_t_6 = 0;
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_shortlist, __pyx_t_5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(19, 246, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "setools/policyrep/terule.pxi":245
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):
 *             group = list(i)
 *             if len(group) > 1:             # <<<<<<<<<<<<<<
 *                 shortlist.append("{0:#06x}-{1:#06x}".format(group[0], group[-1]))
 *             else:
 */
      goto __pyx_L7;
    }

    /* "setools/policyrep/terule.pxi":248
 *                 shortlist.append("{0:#06x}-{1:#06x}".format(group[0], group[-1]))
 *             else:
 *                 shortlist.append("{0:#06x}".format(group[0]))             # <<<<<<<<<<<<<<
 * 
 *         if not spec:
 */
    /*else*/ {
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_06x, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 248, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_group, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 248, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 248, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_shortlist, __pyx_t_5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(19, 248, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_L7:;

    /* "setools/policyrep/terule.pxi":243
 *         perms = sorted(self)
 *         shortlist = []
 *         for _, i in itertools.groupby(perms, key=lambda k, c=itertools.count(): k - next(c)):             # <<<<<<<<<<<<<<
 *             group = list(i)
 *             if len(group) > 1:
 */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/terule.pxi":250
 *                 shortlist.append("{0:#06x}".format(group[0]))
 * 
 *         if not spec:             # <<<<<<<<<<<<<<
 *             return " ".join(shortlist)
 *         elif spec == ",":
 */
  __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_spec); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(19, 250, __pyx_L1_error)
  __pyx_t_15 = ((!__pyx_t_13) != 0);
  if (__pyx_t_15) {

    /* "setools/policyrep/terule.pxi":251
 * 
 *         if not spec:
 *             return " ".join(shortlist)             # <<<<<<<<<<<<<<
 *         elif spec == ",":
 *             return ", ".join(shortlist)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__3, __pyx_v_shortlist); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":250
 *                 shortlist.append("{0:#06x}".format(group[0]))
 * 
 *         if not spec:             # <<<<<<<<<<<<<<
 *             return " ".join(shortlist)
 *         elif spec == ",":
 */
  }

  /* "setools/policyrep/terule.pxi":252
 *         if not spec:
 *             return " ".join(shortlist)
 *         elif spec == ",":             # <<<<<<<<<<<<<<
 *             return ", ".join(shortlist)
 *         else:
 */
  __pyx_t_15 = (__Pyx_PyUnicode_Equals(__pyx_v_spec, __pyx_kp_u__34, Py_EQ)); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(19, 252, __pyx_L1_error)
  if (__pyx_t_15) {

    /* "setools/policyrep/terule.pxi":253
 *             return " ".join(shortlist)
 *         elif spec == ",":
 *             return ", ".join(shortlist)             # <<<<<<<<<<<<<<
 *         else:
 *             return super(IoctlSet, self).__format__(spec)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyUnicode_Join(__pyx_kp_u__84, __pyx_v_shortlist); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 253, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":252
 *         if not spec:
 *             return " ".join(shortlist)
 *         elif spec == ",":             # <<<<<<<<<<<<<<
 *             return ", ".join(shortlist)
 *         else:
 */
  }

  /* "setools/policyrep/terule.pxi":255
 *             return ", ".join(shortlist)
 *         else:
 *             return super(IoctlSet, self).__format__(spec)             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IoctlSet));
    __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IoctlSet));
    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_IoctlSet));
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_self));
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 255, __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_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 255, __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_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_v_spec) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_spec);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/terule.pxi":226
 *     """
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         """
 *         String formating.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__format__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_perms);
  __Pyx_XDECREF(__pyx_v_shortlist);
  __Pyx_XDECREF(__pyx_v__);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_group);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":257
 *             return super(IoctlSet, self).__format__(spec)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return "{0}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_3__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_3__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet_2__str__(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_2__str__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "setools/policyrep/terule.pxi":258
 * 
 *     def __str__(self):
 *         return "{0}".format(self)             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_3, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":257
 *             return super(IoctlSet, self).__format__(spec)
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return "{0}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":260
 *         return "{0}".format(self)
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "{{ {0:,} }}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_5__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet_4__repr__(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_4__repr__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "setools/policyrep/terule.pxi":261
 * 
 *     def __repr__(self):
 *         return "{{ {0:,} }}".format(self)             # <<<<<<<<<<<<<<
 * 
 *     def ranges(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_7, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":260
 *         return "{0}".format(self)
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "{{ {0:,} }}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":263
 *         return "{{ {0:,} }}".format(self)
 * 
 *     def ranges(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the number of ranges in the set.  Main use
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_7ranges(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_8IoctlSet_6ranges[] = "\n        Return the number of ranges in the set.  Main use\n        is to determine if brackets need to be used in\n        string output.\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_7ranges(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ranges (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet_6ranges(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_8IoctlSet_6ranges_2generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":270
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))             # <<<<<<<<<<<<<<
 * 
 * 
 */

static PyObject *__pyx_pf_7setools_9policyrep_116__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_c);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_c);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_c);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_6ranges_7genexpr_lambda28(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_8IoctlSet_6ranges_7genexpr_lambda28 = {"lambda28", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_8IoctlSet_6ranges_7genexpr_lambda28, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_6ranges_7genexpr_lambda28(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_c = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lambda28 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_k,&__pyx_n_s_c,0};
    PyObject* values[2] = {0,0};
    __pyx_defaults2 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self);
    values[1] = __pyx_dynamic_args->__pyx_arg_c;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        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_k)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lambda28") < 0)) __PYX_ERR(19, 270, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_k = values[0];
    __pyx_v_c = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lambda28", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(19, 270, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.ranges.genexpr.lambda28", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_lambda_funcdef_lambda28(__pyx_self, __pyx_v_k, __pyx_v_c);

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

static PyObject *__pyx_lambda_funcdef_lambda28(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_k, PyObject *__pyx_v_c) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lambda28", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyIter_Next(__pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Subtract(__pyx_v_k, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.ranges.genexpr.lambda28", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":269
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
 */

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_6ranges_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_41_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_41_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 269, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_8IoctlSet_6ranges_2generator30, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_ranges_locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 269, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.ranges.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_8IoctlSet_6ranges_2generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L8_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 269, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_itertools); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_groupby); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":270
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(19, 270, __pyx_L1_error) }
  __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_1 = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_5 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(19, 270, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":269
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
 */
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":270
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_8IoctlSet_6ranges_7genexpr_lambda28, 0, __pyx_n_s_ranges_locals_genexpr_locals_lam, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults2), 1)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_itertools); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
    }
  }
  __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_3)->__pyx_arg_c = __pyx_t_6;
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_7setools_9policyrep_116__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_key, __pyx_t_3) < 0) __PYX_ERR(19, 270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":269
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    __pyx_t_10 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 269, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(19, 269, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_10)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(19, 269, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(19, 269, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_10(__pyx_t_1);
      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(19, 269, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
      PyObject* sequence = __pyx_t_3;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(19, 269, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 269, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_2 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_6), 2) < 0) __PYX_ERR(19, 269, __pyx_L1_error)
      __pyx_t_11 = NULL;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L7_unpacking_done;
      __pyx_L6_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_11 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(19, 269, __pyx_L1_error)
      __pyx_L7_unpacking_done:;
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__a);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__a, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__b);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__b, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_10;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L8_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_10 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 269, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":263
 *         return "{{ {0:,} }}".format(self)
 * 
 *     def ranges(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the number of ranges in the set.  Main use
 */

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_6ranges(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ranges", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_40_ranges(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_40_ranges, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 263, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/terule.pxi":269
 *         string output.
 *         """
 *         return sum(1 for (_a, _b) in itertools.groupby(             # <<<<<<<<<<<<<<
 *             sorted(self), key=lambda k, c=itertools.count(): k - next(c)))
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_8IoctlSet_6ranges_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":263
 *         return "{{ {0:,} }}".format(self)
 * 
 *     def ranges(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the number of ranges in the set.  Main use
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.ranges", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_8__reduce_cython__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, None), state
 *     else:
 */
  __pyx_t_3 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_3) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_IoctlSet); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_222419149);
    __Pyx_GIVEREF(__pyx_int_222419149);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_222419149);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, None), state
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_IoctlSet); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_222419149);
    __Pyx_GIVEREF(__pyx_int_222419149);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_222419149);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8IoctlSet_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8IoctlSet_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_8IoctlSet_10__setstate_cython__(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_IoctlSet__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_IoctlSet, (type(self), 0xd41d8cd, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_IoctlSet__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IoctlSet.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":282
 * 
 *     @staticmethod
 *     cdef inline AVRuleXperm factory(SELinuxPolicy policy, sepol.avtab_key_t *key,             # <<<<<<<<<<<<<<
 *                                     sepol.avtab_datum_t *datum, conditional, conditional_block):
 *         """Factory function for creating AVRuleXperm objects."""
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block) {
  PyObject *__pyx_v_xperm_type = 0;
  avtab_extended_perms_t *__pyx_v_xperms;
  PyObject *__pyx_v_perms = 0;
  size_t __pyx_v_curr;
  size_t __pyx_v_len;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  avtab_extended_perms_t *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":287
 *         cdef:
 *             str xperm_type
 *             sepol.avtab_extended_perms_t *xperms = datum.xperms             # <<<<<<<<<<<<<<
 *             set perms = set()
 *             size_t curr = 0
 */
  __pyx_t_1 = __pyx_v_datum->xperms;
  __pyx_v_xperms = __pyx_t_1;

  /* "setools/policyrep/terule.pxi":288
 *             str xperm_type
 *             sepol.avtab_extended_perms_t *xperms = datum.xperms
 *             set perms = set()             # <<<<<<<<<<<<<<
 *             size_t curr = 0
 *             size_t len = sizeof(xperms.perms) * sepol.EXTENDED_PERMS_LEN
 */
  __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_perms = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":289
 *             sepol.avtab_extended_perms_t *xperms = datum.xperms
 *             set perms = set()
 *             size_t curr = 0             # <<<<<<<<<<<<<<
 *             size_t len = sizeof(xperms.perms) * sepol.EXTENDED_PERMS_LEN
 * 
 */
  __pyx_v_curr = 0;

  /* "setools/policyrep/terule.pxi":290
 *             set perms = set()
 *             size_t curr = 0
 *             size_t len = sizeof(xperms.perms) * sepol.EXTENDED_PERMS_LEN             # <<<<<<<<<<<<<<
 * 
 *         #
 */
  __pyx_v_len = ((sizeof(__pyx_v_xperms->perms)) * EXTENDED_PERMS_LEN);

  /* "setools/policyrep/terule.pxi":295
 *         # Build permission set
 *         #
 *         while curr < len:             # <<<<<<<<<<<<<<
 *             if sepol.xperm_test(curr, xperms.perms):
 *                 if xperms.specified & sepol.AVTAB_XPERMS_IOCTLFUNCTION:
 */
  while (1) {
    __pyx_t_3 = ((__pyx_v_curr < __pyx_v_len) != 0);
    if (!__pyx_t_3) break;

    /* "setools/policyrep/terule.pxi":296
 *         #
 *         while curr < len:
 *             if sepol.xperm_test(curr, xperms.perms):             # <<<<<<<<<<<<<<
 *                 if xperms.specified & sepol.AVTAB_XPERMS_IOCTLFUNCTION:
 *                     perms.add(xperms.driver << 8 | curr)
 */
    __pyx_t_3 = (xperm_test(__pyx_v_curr, __pyx_v_xperms->perms) != 0);
    if (__pyx_t_3) {

      /* "setools/policyrep/terule.pxi":297
 *         while curr < len:
 *             if sepol.xperm_test(curr, xperms.perms):
 *                 if xperms.specified & sepol.AVTAB_XPERMS_IOCTLFUNCTION:             # <<<<<<<<<<<<<<
 *                     perms.add(xperms.driver << 8 | curr)
 *                 elif xperms.specified & sepol.AVTAB_XPERMS_IOCTLDRIVER:
 */
      __pyx_t_3 = ((__pyx_v_xperms->specified & AVTAB_XPERMS_IOCTLFUNCTION) != 0);
      if (__pyx_t_3) {

        /* "setools/policyrep/terule.pxi":298
 *             if sepol.xperm_test(curr, xperms.perms):
 *                 if xperms.specified & sepol.AVTAB_XPERMS_IOCTLFUNCTION:
 *                     perms.add(xperms.driver << 8 | curr)             # <<<<<<<<<<<<<<
 *                 elif xperms.specified & sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *                     perms.add(curr << 8)
 */
        __pyx_t_2 = __Pyx_PyInt_FromSize_t(((__pyx_v_xperms->driver << 8) | __pyx_v_curr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 298, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = PySet_Add(__pyx_v_perms, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(19, 298, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "setools/policyrep/terule.pxi":297
 *         while curr < len:
 *             if sepol.xperm_test(curr, xperms.perms):
 *                 if xperms.specified & sepol.AVTAB_XPERMS_IOCTLFUNCTION:             # <<<<<<<<<<<<<<
 *                     perms.add(xperms.driver << 8 | curr)
 *                 elif xperms.specified & sepol.AVTAB_XPERMS_IOCTLDRIVER:
 */
        goto __pyx_L6;
      }

      /* "setools/policyrep/terule.pxi":299
 *                 if xperms.specified & sepol.AVTAB_XPERMS_IOCTLFUNCTION:
 *                     perms.add(xperms.driver << 8 | curr)
 *                 elif xperms.specified & sepol.AVTAB_XPERMS_IOCTLDRIVER:             # <<<<<<<<<<<<<<
 *                     perms.add(curr << 8)
 *                 else:
 */
      __pyx_t_3 = ((__pyx_v_xperms->specified & AVTAB_XPERMS_IOCTLDRIVER) != 0);
      if (likely(__pyx_t_3)) {

        /* "setools/policyrep/terule.pxi":300
 *                     perms.add(xperms.driver << 8 | curr)
 *                 elif xperms.specified & sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *                     perms.add(curr << 8)             # <<<<<<<<<<<<<<
 *                 else:
 *                     raise LowLevelPolicyError("Unknown extended permission: {}".format(
 */
        __pyx_t_2 = __Pyx_PyInt_FromSize_t((__pyx_v_curr << 8)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 300, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = PySet_Add(__pyx_v_perms, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(19, 300, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

        /* "setools/policyrep/terule.pxi":299
 *                 if xperms.specified & sepol.AVTAB_XPERMS_IOCTLFUNCTION:
 *                     perms.add(xperms.driver << 8 | curr)
 *                 elif xperms.specified & sepol.AVTAB_XPERMS_IOCTLDRIVER:             # <<<<<<<<<<<<<<
 *                     perms.add(curr << 8)
 *                 else:
 */
        goto __pyx_L6;
      }

      /* "setools/policyrep/terule.pxi":302
 *                     perms.add(curr << 8)
 *                 else:
 *                     raise LowLevelPolicyError("Unknown extended permission: {}".format(             # <<<<<<<<<<<<<<
 *                                               xperms.specified))
 * 
 */
      /*else*/ {
        __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 302, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Unknown_extended_permission, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 302, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);

        /* "setools/policyrep/terule.pxi":303
 *                 else:
 *                     raise LowLevelPolicyError("Unknown extended permission: {}".format(
 *                                               xperms.specified))             # <<<<<<<<<<<<<<
 * 
 *             curr += 1
 */
        __pyx_t_8 = __Pyx_PyInt_From_uint8_t(__pyx_v_xperms->specified); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 303, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 302, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
          }
        }
        __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 302, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_Raise(__pyx_t_2, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __PYX_ERR(19, 302, __pyx_L1_error)
      }
      __pyx_L6:;

      /* "setools/policyrep/terule.pxi":296
 *         #
 *         while curr < len:
 *             if sepol.xperm_test(curr, xperms.perms):             # <<<<<<<<<<<<<<
 *                 if xperms.specified & sepol.AVTAB_XPERMS_IOCTLFUNCTION:
 *                     perms.add(xperms.driver << 8 | curr)
 */
    }

    /* "setools/policyrep/terule.pxi":305
 *                                               xperms.specified))
 * 
 *             curr += 1             # <<<<<<<<<<<<<<
 * 
 *         #
 */
    __pyx_v_curr = (__pyx_v_curr + 1);
  }

  /* "setools/policyrep/terule.pxi":310
 *         # Determine xperm type
 *         #
 *         if datum.xperms == NULL:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
 */
  __pyx_t_3 = ((__pyx_v_datum->xperms == NULL) != 0);
  if (unlikely(__pyx_t_3)) {

    /* "setools/policyrep/terule.pxi":311
 *         #
 *         if datum.xperms == NULL:
 *             raise LowLevelPolicyError("Extended permission information is NULL")             # <<<<<<<<<<<<<<
 * 
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_u_Extended_permission_information) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_u_Extended_permission_information);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(19, 311, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":310
 *         # Determine xperm type
 *         #
 *         if datum.xperms == NULL:             # <<<<<<<<<<<<<<
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
 */
  }

  /* "setools/policyrep/terule.pxi":313
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \             # <<<<<<<<<<<<<<
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *             xperm_type = intern("ioctl")
 */
  __pyx_t_10 = ((__pyx_v_datum->xperms->specified == AVTAB_XPERMS_IOCTLFUNCTION) != 0);
  if (!__pyx_t_10) {
  } else {
    __pyx_t_3 = __pyx_t_10;
    goto __pyx_L9_bool_binop_done;
  }

  /* "setools/policyrep/terule.pxi":314
 * 
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:             # <<<<<<<<<<<<<<
 *             xperm_type = intern("ioctl")
 *         else:
 */
  __pyx_t_10 = ((__pyx_v_datum->xperms->specified == AVTAB_XPERMS_IOCTLDRIVER) != 0);
  __pyx_t_3 = __pyx_t_10;
  __pyx_L9_bool_binop_done:;

  /* "setools/policyrep/terule.pxi":313
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \             # <<<<<<<<<<<<<<
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *             xperm_type = intern("ioctl")
 */
  if (likely(__pyx_t_3)) {

    /* "setools/policyrep/terule.pxi":315
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *             xperm_type = intern("ioctl")             # <<<<<<<<<<<<<<
 *         else:
 *             raise LowLevelPolicyError("Unknown extended permission: {}".format(
 */
    __pyx_t_2 = __Pyx_Intern(__pyx_n_u_ioctl); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(19, 315, __pyx_L1_error)
    __pyx_v_xperm_type = ((PyObject*)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/terule.pxi":313
 *             raise LowLevelPolicyError("Extended permission information is NULL")
 * 
 *         if datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLFUNCTION \             # <<<<<<<<<<<<<<
 *             or datum.xperms.specified == sepol.AVTAB_XPERMS_IOCTLDRIVER:
 *             xperm_type = intern("ioctl")
 */
    goto __pyx_L8;
  }

  /* "setools/policyrep/terule.pxi":317
 *             xperm_type = intern("ioctl")
 *         else:
 *             raise LowLevelPolicyError("Unknown extended permission: {}".format(             # <<<<<<<<<<<<<<
 *                                       datum.xperms.specified))
 * 
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Unknown_extended_permission, __pyx_n_s_format_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);

    /* "setools/policyrep/terule.pxi":318
 *         else:
 *             raise LowLevelPolicyError("Unknown extended permission: {}".format(
 *                                       datum.xperms.specified))             # <<<<<<<<<<<<<<
 * 
 *         #
 */
    __pyx_t_8 = __Pyx_PyInt_From_uint8_t(__pyx_v_datum->xperms->specified); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 318, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(19, 317, __pyx_L1_error)
  }
  __pyx_L8:;

  /* "setools/policyrep/terule.pxi":323
 *         # Construct rule object
 *         #
 *         cdef AVRuleXperm r = AVRuleXperm.__new__(AVRuleXperm)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 */
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRuleXperm(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_AVRuleXperm), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 323, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":324
 *         #
 *         cdef AVRuleXperm r = AVRuleXperm.__new__(AVRuleXperm)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":325
 *         cdef AVRuleXperm r = AVRuleXperm.__new__(AVRuleXperm)
 *         r.policy = policy
 *         r.key = <uintptr_t>key             # <<<<<<<<<<<<<<
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 */
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_key);

  /* "setools/policyrep/terule.pxi":326
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)             # <<<<<<<<<<<<<<
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_key->specified & (~AVTAB_ENABLED))); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":327
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->source_type - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":328
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = IoctlSet(perms)
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_type - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":329
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))             # <<<<<<<<<<<<<<
 *         r.perms = IoctlSet(perms)
 *         r.extended = True
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_class - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.tclass));
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":330
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = IoctlSet(perms)             # <<<<<<<<<<<<<<
 *         r.extended = True
 *         r.xperm_type = xperm_type
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_7setools_9policyrep_IoctlSet), __pyx_v_perms); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->perms);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->perms));
  __pyx_v_r->perms = ((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":331
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.perms = IoctlSet(perms)
 *         r.extended = True             # <<<<<<<<<<<<<<
 *         r.xperm_type = xperm_type
 *         r._conditional = conditional
 */
  __pyx_v_r->__pyx_base.__pyx_base.extended = 1;

  /* "setools/policyrep/terule.pxi":332
 *         r.perms = IoctlSet(perms)
 *         r.extended = True
 *         r.xperm_type = xperm_type             # <<<<<<<<<<<<<<
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 */
  __Pyx_INCREF(__pyx_v_xperm_type);
  __Pyx_GIVEREF(__pyx_v_xperm_type);
  __Pyx_GOTREF(__pyx_v_r->xperm_type);
  __Pyx_DECREF(__pyx_v_r->xperm_type);
  __pyx_v_r->xperm_type = __pyx_v_xperm_type;

  /* "setools/policyrep/terule.pxi":333
 *         r.extended = True
 *         r.xperm_type = xperm_type
 *         r._conditional = conditional             # <<<<<<<<<<<<<<
 *         r._conditional_block = conditional_block
 *         r.origin = None
 */
  if (!(likely(((__pyx_v_conditional) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_conditional, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(19, 333, __pyx_L1_error)
  __pyx_t_2 = __pyx_v_conditional;
  __Pyx_INCREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base._conditional);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base._conditional));
  __pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":334
 *         r.xperm_type = xperm_type
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         return r
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_conditional_block); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 334, __pyx_L1_error)
  __pyx_v_r->__pyx_base._conditional_block = __pyx_t_3;

  /* "setools/policyrep/terule.pxi":335
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

  /* "setools/policyrep/terule.pxi":336
 *         r._conditional_block = conditional_block
 *         r.origin = None
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":282
 * 
 *     @staticmethod
 *     cdef inline AVRuleXperm factory(SELinuxPolicy policy, sepol.avtab_key_t *key,             # <<<<<<<<<<<<<<
 *                                     sepol.avtab_datum_t *datum, conditional, conditional_block):
 *         """Factory function for creating AVRuleXperm objects."""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xperm_type);
  __Pyx_XDECREF(__pyx_v_perms);
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":338
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.xperm_type}|{1}|{2}".
 *             format(self, self._conditional, self._conditional_block))
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_11AVRuleXperm_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_11AVRuleXperm_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm___hash__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_11AVRuleXperm___hash__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_hash_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/terule.pxi":339
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.xperm_type}|{1}|{2}".             # <<<<<<<<<<<<<<
 *             format(self, self._conditional, self._conditional_block))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_5, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/terule.pxi":340
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.xperm_type}|{1}|{2}".
 *             format(self, self._conditional, self._conditional_block))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  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 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[4] = {__pyx_t_4, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 340, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __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[4] = {__pyx_t_4, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 340, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_self));
    __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, ((PyObject *)__pyx_v_self->__pyx_base._conditional));
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":339
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.xperm_type}|{1}|{2}".             # <<<<<<<<<<<<<<
 *             format(self, self._conditional, self._conditional_block))
 * 
 */
  __pyx_t_7 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_7 == ((Py_hash_t)-1))) __PYX_ERR(19, 339, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":338
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.xperm_type}|{1}|{2}".
 *             format(self, self._conditional, self._conditional_block))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":342
 *             format(self, self._conditional, self._conditional_block))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_2__lt__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_2__lt__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/terule.pxi":343
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 343, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":342
 *             format(self, self._conditional, self._conditional_block))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":346
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default type."""
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_7default_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_7default___get__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_7default___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":348
 *     def default(self):
 *         """The rule's default type."""
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_rules_do_not_have_a_default_t, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 348, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base.__pyx_base.ruletype) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 348, __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 && 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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(19, 348, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":346
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default type."""
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.default.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_11AVRuleXperm_6generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":350
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_11AVRuleXperm_4expand[] = "Expand the rule into an equivalent set of rules without attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_4expand(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_4expand(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_42_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_42_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 350, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_11AVRuleXperm_6generator8, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_AVRuleXperm_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 350, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_11AVRuleXperm_6generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *(*__pyx_t_12)(PyObject *);
  uintptr_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L10_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 350, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":353
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.origin == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":354
 *         cdef AVRuleXperm r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 *                 r.policy = self.policy
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_n_s_expand); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_n_s_expand); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 354, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 354, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_6);
      __pyx_t_4 = 0;
      __pyx_t_6 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __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(19, 354, __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(19, 354, __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(19, 354, __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(19, 354, __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(19, 354, __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(19, 354, __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(19, 354, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(19, 354, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_4), 2) < 0) __PYX_ERR(19, 354, __pyx_L1_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(19, 354, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/terule.pxi":355
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRuleXperm.__new__(AVRuleXperm)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
 */
      __pyx_t_3 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_AVRuleXperm(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_AVRuleXperm), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 355, __pyx_L1_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_t_3));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":356
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":357
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 */
      __pyx_t_13 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_13;

      /* "setools/policyrep/terule.pxi":358
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":359
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/terule.pxi":360
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/terule.pxi":361
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.perms = self.perms
 *                 r.extended = True
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.tclass);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":362
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms             # <<<<<<<<<<<<<<
 *                 r.extended = True
 *                 r.xperm_type = self.xperm_type
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->perms);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->perms);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->perms));
      __pyx_cur_scope->__pyx_v_r->perms = ((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":363
 *                 r.tclass = self.tclass
 *                 r.perms = self.perms
 *                 r.extended = True             # <<<<<<<<<<<<<<
 *                 r.xperm_type = self.xperm_type
 *                 r._conditional = self._conditional
 */
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.extended = 1;

      /* "setools/policyrep/terule.pxi":364
 *                 r.perms = self.perms
 *                 r.extended = True
 *                 r.xperm_type = self.xperm_type             # <<<<<<<<<<<<<<
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->xperm_type;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->xperm_type);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->xperm_type);
      __pyx_cur_scope->__pyx_v_r->xperm_type = ((PyObject*)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":365
 *                 r.extended = True
 *                 r.xperm_type = self.xperm_type
 *                 r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base._conditional);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional));
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":366
 *                 r.xperm_type = self.xperm_type
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
 */
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base._conditional_block;
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_2;

      /* "setools/policyrep/terule.pxi":367
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/terule.pxi":368
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_10;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_11;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_11 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 368, __pyx_L1_error)

      /* "setools/policyrep/terule.pxi":354
 *         cdef AVRuleXperm r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 *                 r.policy = self.policy
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":353
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = AVRuleXperm.__new__(AVRuleXperm)
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/terule.pxi":372
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L10_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 372, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/terule.pxi":350
 *         raise RuleUseError("{0} rules do not have a default type.".format(self.ruletype))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef AVRuleXperm r
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":374
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} ". \
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_7statement(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_7statement(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v_perms = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/terule.pxi":375
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} ". \
 *                                 format(self)
 */
  __pyx_t_1 = (__pyx_v_self->__pyx_base.rule_string != Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_v_self->__pyx_base.rule_string) != 0);
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":376
 *     def statement(self):
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} ". \             # <<<<<<<<<<<<<<
 *                                 format(self)
 * 
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_6, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "setools/policyrep/terule.pxi":377
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} ". \
 *                                 format(self)             # <<<<<<<<<<<<<<
 * 
 *             # generate short permission notation
 */
    __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(19, 377, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":376
 *     def statement(self):
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} ". \             # <<<<<<<<<<<<<<
 *                                 format(self)
 * 
 */
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
    __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
    __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/terule.pxi":380
 * 
 *             # generate short permission notation
 *             perms = self.perms             # <<<<<<<<<<<<<<
 *             if perms.ranges() > 1:
 *                 self.rule_string += "{{ {0} }};".format(perms)
 */
    __pyx_t_3 = ((PyObject *)__pyx_v_self->perms);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_perms = ((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/terule.pxi":381
 *             # generate short permission notation
 *             perms = self.perms
 *             if perms.ranges() > 1:             # <<<<<<<<<<<<<<
 *                 self.rule_string += "{{ {0} }};".format(perms)
 *             else:
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_perms), __pyx_n_s_ranges); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 381, __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_3 = (__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_3)) __PYX_ERR(19, 381, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 381, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(19, 381, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_2) {

      /* "setools/policyrep/terule.pxi":382
 *             perms = self.perms
 *             if perms.ranges() > 1:
 *                 self.rule_string += "{{ {0} }};".format(perms)             # <<<<<<<<<<<<<<
 *             else:
 *                 self.rule_string += "{0};".format(perms)
 */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_5, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 382, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __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, ((PyObject *)__pyx_v_perms)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_perms));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 382, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx_base.rule_string, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 382, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(19, 382, __pyx_L1_error)
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
      __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
      __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":381
 *             # generate short permission notation
 *             perms = self.perms
 *             if perms.ranges() > 1:             # <<<<<<<<<<<<<<
 *                 self.rule_string += "{{ {0} }};".format(perms)
 *             else:
 */
      goto __pyx_L4;
    }

    /* "setools/policyrep/terule.pxi":384
 *                 self.rule_string += "{{ {0} }};".format(perms)
 *             else:
 *                 self.rule_string += "{0};".format(perms)             # <<<<<<<<<<<<<<
 * 
 *         return self.rule_string
 */
    /*else*/ {
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_6, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 384, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_perms)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_perms));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx_base.rule_string, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(19, 384, __pyx_L1_error)
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
      __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
      __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;
    }
    __pyx_L4:;

    /* "setools/policyrep/terule.pxi":375
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} ". \
 *                                 format(self)
 */
  }

  /* "setools/policyrep/terule.pxi":386
 *                 self.rule_string += "{0};".format(perms)
 * 
 *         return self.rule_string             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __pyx_r = __pyx_v_self->__pyx_base.rule_string;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":374
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} ". \
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_perms);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":278
 * 
 *     cdef:
 *         readonly IoctlSet perms             # <<<<<<<<<<<<<<
 *         readonly str xperm_type
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_5perms___get__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_5perms___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->perms));
  __pyx_r = ((PyObject *)__pyx_v_self->perms);
  goto __pyx_L0;

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

/* "setools/policyrep/terule.pxi":279
 *     cdef:
 *         readonly IoctlSet perms
 *         readonly str xperm_type             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_10xperm_type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_10xperm_type_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_10xperm_type___get__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_10xperm_type___get__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->xperm_type);
  __pyx_r = __pyx_v_self->xperm_type;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass, self.xperm_type)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(13); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->__pyx_base._conditional));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->perms));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->perms));
  PyTuple_SET_ITEM(__pyx_t_4, 5, ((PyObject *)__pyx_v_self->perms));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_4, 6, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.rule_string);
  PyTuple_SET_ITEM(__pyx_t_4, 7, __pyx_v_self->__pyx_base.rule_string);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  PyTuple_SET_ITEM(__pyx_t_4, 11, ((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __Pyx_INCREF(__pyx_v_self->xperm_type);
  __Pyx_GIVEREF(__pyx_v_self->xperm_type);
  PyTuple_SET_ITEM(__pyx_t_4, 12, __pyx_v_self->xperm_type);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass, self.xperm_type)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass, self.xperm_type)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None or self.xperm_type is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.extended, self.key, self.origin, self.perms, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass, self.xperm_type)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None or self.xperm_type is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, None), state
 */
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base._conditional) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->perms) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.rule_string != ((PyObject*)Py_None));
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.ruletype != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.__pyx_base.source != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.target != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->xperm_type != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_7 != 0);
    __pyx_t_6 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None or self.xperm_type is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, None), state
 *     else:
 */
  __pyx_t_6 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None or self.xperm_type is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_AVRuleXperm); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_261229992);
    __Pyx_GIVEREF(__pyx_int_261229992);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_261229992);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.origin is not None or self.perms is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None or self.xperm_type is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, None), state
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_AVRuleXperm); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_261229992);
    __Pyx_GIVEREF(__pyx_int_261229992);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_261229992);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_11AVRuleXperm_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_11AVRuleXperm_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_AVRuleXperm__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AVRuleXperm, (type(self), 0xf920da8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AVRuleXperm__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.AVRuleXperm.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":396
 * 
 *     @staticmethod
 *     cdef inline TERule factory(SELinuxPolicy policy, sepol.avtab_key_t *key,             # <<<<<<<<<<<<<<
 *                                sepol.avtab_datum_t *datum, conditional, conditional_block):
 *         """Factory function for creating TERule objects."""
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TERule *__pyx_f_7setools_9policyrep_6TERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, avtab_key_t *__pyx_v_key, avtab_datum_t *__pyx_v_datum, PyObject *__pyx_v_conditional, PyObject *__pyx_v_conditional_block) {
  struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_TERule *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":399
 *                                sepol.avtab_datum_t *datum, conditional, conditional_block):
 *         """Factory function for creating TERule objects."""
 *         cdef TERule r = TERule.__new__(TERule)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_TERule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_TERule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 399, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":400
 *         """Factory function for creating TERule objects."""
 *         cdef TERule r = TERule.__new__(TERule)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":401
 *         cdef TERule r = TERule.__new__(TERule)
 *         r.policy = policy
 *         r.key = <uintptr_t>key             # <<<<<<<<<<<<<<
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 */
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_key);

  /* "setools/policyrep/terule.pxi":402
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)             # <<<<<<<<<<<<<<
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_key->specified & (~AVTAB_ENABLED))); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":403
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->source_type - 1)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 403, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":404
 *         r.ruletype = TERuletype(key.specified & ~sepol.AVTAB_ENABLED)
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_type - 1)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":405
 *         r.source = type_or_attr_factory(policy, policy.type_value_to_datum(key.source_type - 1))
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))             # <<<<<<<<<<<<<<
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))
 *         r.origin = None
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_key->target_class - 1)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.tclass));
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":406
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.target_type - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         r._conditional = conditional
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_datum->data - 1)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->dft);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->dft));
  __pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":407
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.target_class - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

  /* "setools/policyrep/terule.pxi":408
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(datum.data - 1))
 *         r.origin = None
 *         r._conditional = conditional             # <<<<<<<<<<<<<<
 *         r._conditional_block = conditional_block
 *         return r
 */
  if (!(likely(((__pyx_v_conditional) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_conditional, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(19, 408, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_conditional;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base._conditional);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base._conditional));
  __pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":409
 *         r.origin = None
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_conditional_block); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(19, 409, __pyx_L1_error)
  __pyx_v_r->__pyx_base._conditional_block = __pyx_t_5;

  /* "setools/policyrep/terule.pxi":410
 *         r._conditional = conditional
 *         r._conditional_block = conditional_block
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":396
 * 
 *     @staticmethod
 *     cdef inline TERule factory(SELinuxPolicy policy, sepol.avtab_key_t *key,             # <<<<<<<<<<<<<<
 *                                sepol.avtab_datum_t *datum, conditional, conditional_block):
 *         """Factory function for creating TERule objects."""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TERule.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":412
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}|{3}".format(
 *             self, None, self._conditional, self._conditional_block))
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_6TERule_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_6TERule_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule___hash__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_6TERule___hash__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_hash_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/terule.pxi":413
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}|{3}".format(             # <<<<<<<<<<<<<<
 *             self, None, self._conditional, self._conditional_block))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_7, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/terule.pxi":414
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}|{3}".format(
 *             self, None, self._conditional, self._conditional_block))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  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 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, ((PyObject *)__pyx_v_self), Py_None, ((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 413, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __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[5] = {__pyx_t_4, ((PyObject *)__pyx_v_self), Py_None, ((PyObject *)__pyx_v_self->__pyx_base._conditional), __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 413, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_self));
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, Py_None);
    __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
    PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, ((PyObject *)__pyx_v_self->__pyx_base._conditional));
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":413
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}|{3}".format(             # <<<<<<<<<<<<<<
 *             self, None, self._conditional, self._conditional_block))
 * 
 */
  __pyx_t_7 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_7 == ((Py_hash_t)-1))) __PYX_ERR(19, 413, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":412
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{1}|{2}|{3}".format(
 *             self, None, self._conditional, self._conditional_block))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.TERule.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":416
 *             self, None, self._conditional, self._conditional_block))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_2__lt__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_2__lt__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/terule.pxi":417
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 417, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":416
 *             self, None, self._conditional, self._conditional_block))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TERule.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":420
 * 
 *     @property
 *     def perms(self):             # <<<<<<<<<<<<<<
 *         """The rule's permission set."""
 *         raise RuleUseError("{0} rules do not have a permission set.".format(self.ruletype))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_5perms___get__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_5perms___get__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":422
 *     def perms(self):
 *         """The rule's permission set."""
 *         raise RuleUseError("{0} rules do not have a permission set.".format(self.ruletype))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_rules_do_not_have_a_permissio, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 422, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base.__pyx_base.ruletype) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 422, __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 && 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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(19, 422, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":420
 * 
 *     @property
 *     def perms(self):             # <<<<<<<<<<<<<<
 *         """The rule's permission set."""
 *         raise RuleUseError("{0} rules do not have a permission set.".format(self.ruletype))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TERule.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":425
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default type."""
 *         return self.dft
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_7default_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_7default___get__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_7default___get__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":427
 *     def default(self):
 *         """The rule's default type."""
 *         return self.dft             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->dft));
  __pyx_r = ((PyObject *)__pyx_v_self->dft);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":425
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default type."""
 *         return self.dft
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_6TERule_6generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":429
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_6TERule_4expand[] = "Expand the rule into an equivalent set of rules without attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_4expand(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_4expand(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_43_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_43_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 429, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_6TERule_6generator9, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_TERule_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 429, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.TERule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_6TERule_6generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *(*__pyx_t_12)(PyObject *);
  uintptr_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L10_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 429, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":432
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = TERule.__new__(TERule)
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.origin == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":433
 *         cdef TERule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = TERule.__new__(TERule)
 *                 r.policy = self.policy
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_n_s_expand); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_n_s_expand); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 433, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 433, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 433, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_6);
      __pyx_t_4 = 0;
      __pyx_t_6 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 433, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __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(19, 433, __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(19, 433, __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(19, 433, __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(19, 433, __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(19, 433, __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(19, 433, __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(19, 433, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(19, 433, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 433, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 433, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 433, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_4), 2) < 0) __PYX_ERR(19, 433, __pyx_L1_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(19, 433, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/terule.pxi":434
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = TERule.__new__(TERule)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
 */
      __pyx_t_3 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_TERule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_TERule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 434, __pyx_L1_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_t_3));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":435
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = TERule.__new__(TERule)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":436
 *                 r = TERule.__new__(TERule)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 */
      __pyx_t_13 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_13;

      /* "setools/policyrep/terule.pxi":437
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":438
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/terule.pxi":439
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/terule.pxi":440
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.dft = self.dft
 *                 r.origin = self
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.tclass);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":441
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 r._conditional = self._conditional
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->dft);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->dft);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->dft));
      __pyx_cur_scope->__pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":442
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/terule.pxi":443
 *                 r.dft = self.dft
 *                 r.origin = self
 *                 r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *                 r._conditional_block = self._conditional_block
 *                 yield r
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base._conditional);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional));
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":444
 *                 r.origin = self
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *                 yield r
 * 
 */
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base._conditional_block;
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_2;

      /* "setools/policyrep/terule.pxi":445
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_10;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_11;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_11 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 445, __pyx_L1_error)

      /* "setools/policyrep/terule.pxi":433
 *         cdef TERule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = TERule.__new__(TERule)
 *                 r.policy = self.policy
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":432
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = TERule.__new__(TERule)
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/terule.pxi":449
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L10_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 449, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/terule.pxi":429
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef TERule r
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":451
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};". \
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_7statement(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_7statement(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/terule.pxi":452
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};". \
 *                                format(self)
 */
  __pyx_t_1 = (__pyx_v_self->__pyx_base.rule_string != Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_v_self->__pyx_base.rule_string) != 0);
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":453
 *     def statement(self):
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};". \             # <<<<<<<<<<<<<<
 *                                format(self)
 * 
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "setools/policyrep/terule.pxi":454
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};". \
 *                                format(self)             # <<<<<<<<<<<<<<
 * 
 *             try:
 */
    __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(19, 454, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":453
 *     def statement(self):
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};". \             # <<<<<<<<<<<<<<
 *                                format(self)
 * 
 */
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
    __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
    __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/terule.pxi":456
 *                                format(self)
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)
 *             except RuleNotConditional:
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "setools/policyrep/terule.pxi":457
 * 
 *             try:
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)             # <<<<<<<<<<<<<<
 *             except RuleNotConditional:
 *                 pass
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_conditional_0_conditional_blo, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 457, __pyx_L4_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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_self));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 457, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_self->__pyx_base.rule_string, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 457, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(19, 457, __pyx_L4_error)
        __Pyx_GIVEREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_v_self->__pyx_base.rule_string);
        __Pyx_DECREF(__pyx_v_self->__pyx_base.rule_string);
        __pyx_v_self->__pyx_base.rule_string = ((PyObject*)__pyx_t_4);
        __pyx_t_4 = 0;

        /* "setools/policyrep/terule.pxi":456
 *                                format(self)
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)
 *             except RuleNotConditional:
 */
      }
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "setools/policyrep/terule.pxi":458
 *             try:
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)
 *             except RuleNotConditional:             # <<<<<<<<<<<<<<
 *                 pass
 * 
 */
      __Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_3, &__pyx_t_5);
      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_RuleNotConditional); if (unlikely(!__pyx_t_9)) __PYX_ERR(19, 458, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_9);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_ErrRestore(__pyx_t_4, __pyx_t_3, __pyx_t_5);
      __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0;
      if (__pyx_t_10) {
        __Pyx_ErrRestore(0,0,0);
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;
      __pyx_L6_except_error:;

      /* "setools/policyrep/terule.pxi":456
 *                                format(self)
 * 
 *             try:             # <<<<<<<<<<<<<<
 *                 self.rule_string += " [ {0.conditional} ]:{0.conditional_block}".format(self)
 *             except RuleNotConditional:
 */
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      __pyx_L9_try_end:;
    }

    /* "setools/policyrep/terule.pxi":452
 * 
 *     def statement(self):
 *         if not self.rule_string:             # <<<<<<<<<<<<<<
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};". \
 *                                format(self)
 */
  }

  /* "setools/policyrep/terule.pxi":461
 *                 pass
 * 
 *         return self.rule_string             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __pyx_r = __pyx_v_self->__pyx_base.rule_string;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":451
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         if not self.rule_string:
 *             self.rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default};". \
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.TERule.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.dft, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(12); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->__pyx_base._conditional));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->dft));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dft));
  PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_self->dft));
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_4, 6, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.rule_string);
  PyTuple_SET_ITEM(__pyx_t_4, 7, __pyx_v_self->__pyx_base.rule_string);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  PyTuple_SET_ITEM(__pyx_t_4, 11, ((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.dft, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.dft, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.dft, self.extended, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, None), state
 */
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base._conditional) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->dft) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.rule_string != ((PyObject*)Py_None));
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.ruletype != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.__pyx_base.source != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.target != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, None), state
 *     else:
 */
  __pyx_t_6 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_TERule); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_106968687);
    __Pyx_GIVEREF(__pyx_int_106968687);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_106968687);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.dft is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, None), state
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_TERule); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_106968687);
    __Pyx_GIVEREF(__pyx_int_106968687);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_106968687);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TERule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_6TERule_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_6TERule_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_6TERule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_TERule__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TERule, (type(self), 0x660366f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TERule__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":473
 * 
 *     @staticmethod
 *     cdef inline FileNameTERule factory(SELinuxPolicy policy,             # <<<<<<<<<<<<<<
 *                                        sepol.filename_trans_key_t *key,
 *                                        Type stype, size_t otype):
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_f_7setools_9policyrep_14FileNameTERule_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, filename_trans_key_t *__pyx_v_key, struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_stype, size_t __pyx_v_otype) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_r = 0;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":477
 *                                        Type stype, size_t otype):
 *         """Factory function for creating FileNameTERule objects."""
 *         cdef FileNameTERule r = FileNameTERule.__new__(FileNameTERule)             # <<<<<<<<<<<<<<
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_FileNameTERule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_FileNameTERule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 477, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":478
 *         """Factory function for creating FileNameTERule objects."""
 *         cdef FileNameTERule r = FileNameTERule.__new__(FileNameTERule)
 *         r.policy = policy             # <<<<<<<<<<<<<<
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype.type_transition
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":479
 *         cdef FileNameTERule r = FileNameTERule.__new__(FileNameTERule)
 *         r.policy = policy
 *         r.key = <uintptr_t>key             # <<<<<<<<<<<<<<
 *         r.ruletype = TERuletype.type_transition
 *         r.source = stype
 */
  __pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_key);

  /* "setools/policyrep/terule.pxi":480
 *         r.policy = policy
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype.type_transition             # <<<<<<<<<<<<<<
 *         r.source = stype
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TERuletype); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_type_transition); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.ruletype);
  __pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":481
 *         r.key = <uintptr_t>key
 *         r.ruletype = TERuletype.type_transition
 *         r.source = stype             # <<<<<<<<<<<<<<
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_stype));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_stype));
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.source);
  __pyx_v_r->__pyx_base.__pyx_base.source = ((PyObject *)__pyx_v_stype);

  /* "setools/policyrep/terule.pxi":482
 *         r.ruletype = TERuletype.type_transition
 *         r.source = stype
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))             # <<<<<<<<<<<<<<
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_key->ttype - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.target);
  __pyx_v_r->__pyx_base.__pyx_base.target = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":483
 *         r.source = stype
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))             # <<<<<<<<<<<<<<
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))
 *         r.filename = intern(key.name)
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8ObjClass_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum(__pyx_v_policy, (__pyx_v_key->tclass - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->__pyx_base.tclass));
  __pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":484
 *         r.target = type_or_attr_factory(policy, policy.type_value_to_datum(key.ttype - 1))
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))             # <<<<<<<<<<<<<<
 *         r.filename = intern(key.name)
 *         r.origin = None
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(__pyx_v_policy, __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_policy, (__pyx_v_otype - 1)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_r->dft);
  __Pyx_DECREF(((PyObject *)__pyx_v_r->dft));
  __pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":485
 *         r.tclass = ObjClass.factory(policy, policy.class_value_to_datum(key.tclass - 1))
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))
 *         r.filename = intern(key.name)             # <<<<<<<<<<<<<<
 *         r.origin = None
 *         return r
 */
  __pyx_t_2 = __Pyx_PyStr_FromString(__pyx_v_key->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_Intern(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(19, 485, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_r->filename);
  __Pyx_DECREF(__pyx_v_r->filename);
  __pyx_v_r->filename = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":486
 *         r.dft = Type.factory(policy, policy.type_value_to_datum(otype - 1))
 *         r.filename = intern(key.name)
 *         r.origin = None             # <<<<<<<<<<<<<<
 *         return r
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v_r->__pyx_base.__pyx_base.origin);
  __pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

  /* "setools/policyrep/terule.pxi":487
 *         r.filename = intern(key.name)
 *         r.origin = None
 *         return r             # <<<<<<<<<<<<<<
 * 
 *     def __hash__(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_r));
  __pyx_r = __pyx_v_r;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":473
 * 
 *     @staticmethod
 *     cdef inline FileNameTERule factory(SELinuxPolicy policy,             # <<<<<<<<<<<<<<
 *                                        sepol.filename_trans_key_t *key,
 *                                        Type stype, size_t otype):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_r);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":489
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.filename}|{1}|{2}".format(
 *             self, None, None))
 */

/* Python wrapper */
static Py_hash_t __pyx_pw_7setools_9policyrep_14FileNameTERule_1__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_7setools_9policyrep_14FileNameTERule_1__hash__(PyObject *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule___hash__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

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

static Py_hash_t __pyx_pf_7setools_9policyrep_14FileNameTERule___hash__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  Py_hash_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_hash_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__hash__", 0);

  /* "setools/policyrep/terule.pxi":490
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.filename}|{1}|{2}".format(             # <<<<<<<<<<<<<<
 *             self, None, None))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_8, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/terule.pxi":491
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.filename}|{1}|{2}".format(
 *             self, None, None))             # <<<<<<<<<<<<<<
 * 
 *     def __lt__(self, other):
 */
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  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_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[4] = {__pyx_t_3, ((PyObject *)__pyx_v_self), Py_None, Py_None};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 490, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[4] = {__pyx_t_3, ((PyObject *)__pyx_v_self), Py_None, Py_None};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 490, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 490, __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(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, ((PyObject *)__pyx_v_self));
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, Py_None);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, Py_None);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 490, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":490
 * 
 *     def __hash__(self):
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.filename}|{1}|{2}".format(             # <<<<<<<<<<<<<<
 *             self, None, None))
 * 
 */
  __pyx_t_6 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_hash_t)-1))) __PYX_ERR(19, 490, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":489
 *         return r
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash("{0.ruletype}|{0.source}|{0.target}|{0.tclass}|{0.filename}|{1}|{2}".format(
 *             self, None, None))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__hash__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":493
 *             self, None, None))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_3__lt__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__lt__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_2__lt__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_2__lt__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__lt__", 0);

  /* "setools/policyrep/terule.pxi":494
 * 
 *     def __lt__(self, other):
 *         return str(self) < str(other)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_other); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":493
 *             self, None, None))
 * 
 *     def __lt__(self, other):             # <<<<<<<<<<<<<<
 *         return str(self) < str(other)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__lt__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":497
 * 
 *     @property
 *     def perms(self):             # <<<<<<<<<<<<<<
 *         """The rule's permission set."""
 *         raise RuleUseError("{0} rules do not have a permission set.".format(self.ruletype))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_5perms_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_5perms_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_5perms___get__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_5perms___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":499
 *     def perms(self):
 *         """The rule's permission set."""
 *         raise RuleUseError("{0} rules do not have a permission set.".format(self.ruletype))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_rules_do_not_have_a_permissio, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 499, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base.__pyx_base.ruletype) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 499, __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 && 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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(19, 499, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":497
 * 
 *     @property
 *     def perms(self):             # <<<<<<<<<<<<<<
 *         """The rule's permission set."""
 *         raise RuleUseError("{0} rules do not have a permission set.".format(self.ruletype))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.perms.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":502
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default type."""
 *         return self.dft
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_7default_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_7default_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_7default___get__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_7default___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/terule.pxi":504
 *     def default(self):
 *         """The rule's default type."""
 *         return self.dft             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->dft));
  __pyx_r = ((PyObject *)__pyx_v_self->dft);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":502
 * 
 *     @property
 *     def default(self):             # <<<<<<<<<<<<<<
 *         """The rule's default type."""
 *         return self.dft
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_14FileNameTERule_6generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":506
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_14FileNameTERule_4expand[] = "Expand the rule into an equivalent set of rules without attributes.";
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_5expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_4expand(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_4expand(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_44_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_44_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 506, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_14FileNameTERule_6generator10, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_FileNameTERule_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 506, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_14FileNameTERule_6generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  PyObject *(*__pyx_t_12)(PyObject *);
  uintptr_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L9_resume_from_yield;
    case 2: goto __pyx_L10_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 506, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":509
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = FileNameTERule.__new__(FileNameTERule)
 */
  __pyx_t_1 = (__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.origin == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/terule.pxi":510
 *         cdef FileNameTERule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = FileNameTERule.__new__(FileNameTERule)
 *                 r.policy = self.policy
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_itertools); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_product); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.source, __pyx_n_s_expand); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.target, __pyx_n_s_expand); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 510, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 510, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 510, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_6);
      __pyx_t_4 = 0;
      __pyx_t_6 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 510, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __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(19, 510, __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(19, 510, __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(19, 510, __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(19, 510, __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(19, 510, __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(19, 510, __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(19, 510, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(19, 510, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(19, 510, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 510, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 510, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_6 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_4), 2) < 0) __PYX_ERR(19, 510, __pyx_L1_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L8_unpacking_done;
        __pyx_L7_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(19, 510, __pyx_L1_error)
        __pyx_L8_unpacking_done:;
      }
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;

      /* "setools/policyrep/terule.pxi":511
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = FileNameTERule.__new__(FileNameTERule)             # <<<<<<<<<<<<<<
 *                 r.policy = self.policy
 *                 r.key = self.key
 */
      __pyx_t_3 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_FileNameTERule(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_FileNameTERule), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 511, __pyx_L1_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
      __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, ((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_t_3));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":512
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = FileNameTERule.__new__(FileNameTERule)
 *                 r.policy = self.policy             # <<<<<<<<<<<<<<
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":513
 *                 r = FileNameTERule.__new__(FileNameTERule)
 *                 r.policy = self.policy
 *                 r.key = self.key             # <<<<<<<<<<<<<<
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 */
      __pyx_t_13 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key;
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_13;

      /* "setools/policyrep/terule.pxi":514
 *                 r.policy = self.policy
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype             # <<<<<<<<<<<<<<
 *                 r.source = s
 *                 r.target = t
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->__pyx_base.__pyx_base.ruletype;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.ruletype = __pyx_t_3;
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":515
 *                 r.key = self.key
 *                 r.ruletype = self.ruletype
 *                 r.source = s             # <<<<<<<<<<<<<<
 *                 r.target = t
 *                 r.tclass = self.tclass
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_s);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.source = __pyx_cur_scope->__pyx_v_s;

      /* "setools/policyrep/terule.pxi":516
 *                 r.ruletype = self.ruletype
 *                 r.source = s
 *                 r.target = t             # <<<<<<<<<<<<<<
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_t);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.target = __pyx_cur_scope->__pyx_v_t;

      /* "setools/policyrep/terule.pxi":517
 *                 r.source = s
 *                 r.target = t
 *                 r.tclass = self.tclass             # <<<<<<<<<<<<<<
 *                 r.dft = self.dft
 *                 r.filename = self.filename
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.tclass);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base.tclass));
      __pyx_cur_scope->__pyx_v_r->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":518
 *                 r.target = t
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft             # <<<<<<<<<<<<<<
 *                 r.filename = self.filename
 *                 r.origin = None
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->dft);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->dft);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->dft));
      __pyx_cur_scope->__pyx_v_r->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":519
 *                 r.tclass = self.tclass
 *                 r.dft = self.dft
 *                 r.filename = self.filename             # <<<<<<<<<<<<<<
 *                 r.origin = None
 *                 r._conditional = self._conditional
 */
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_self->filename;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->filename);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->filename);
      __pyx_cur_scope->__pyx_v_r->filename = ((PyObject*)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":520
 *                 r.dft = self.dft
 *                 r.filename = self.filename
 *                 r.origin = None             # <<<<<<<<<<<<<<
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 */
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = Py_None;

      /* "setools/policyrep/terule.pxi":521
 *                 r.filename = self.filename
 *                 r.origin = None
 *                 r._conditional = self._conditional             # <<<<<<<<<<<<<<
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 */
      __pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base._conditional);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional);
      __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_r->__pyx_base._conditional));
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":522
 *                 r.origin = None
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block             # <<<<<<<<<<<<<<
 *                 r.origin = self
 *                 yield r
 */
      __pyx_t_2 = __pyx_cur_scope->__pyx_v_self->__pyx_base._conditional_block;
      __pyx_cur_scope->__pyx_v_r->__pyx_base._conditional_block = __pyx_t_2;

      /* "setools/policyrep/terule.pxi":523
 *                 r._conditional = self._conditional
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self             # <<<<<<<<<<<<<<
 *                 yield r
 * 
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
      __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __Pyx_DECREF(__pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin);
      __pyx_cur_scope->__pyx_v_r->__pyx_base.__pyx_base.origin = ((PyObject *)__pyx_cur_scope->__pyx_v_self);

      /* "setools/policyrep/terule.pxi":524
 *                 r._conditional_block = self._conditional_block
 *                 r.origin = self
 *                 yield r             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_r));
      __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_r);
      __Pyx_XGIVEREF(__pyx_t_5);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_5;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_10;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_11;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L9_resume_from_yield:;
      __pyx_t_5 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_5);
      __pyx_t_10 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_11 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 524, __pyx_L1_error)

      /* "setools/policyrep/terule.pxi":510
 *         cdef FileNameTERule r
 *         if self.origin is None:
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):             # <<<<<<<<<<<<<<
 *                 r = FileNameTERule.__new__(FileNameTERule)
 *                 r.policy = self.policy
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/terule.pxi":509
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
 *         if self.origin is None:             # <<<<<<<<<<<<<<
 *             for s, t in itertools.product(self.source.expand(), self.target.expand()):
 *                 r = FileNameTERule.__new__(FileNameTERule)
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/terule.pxi":528
 *         else:
 *             # this rule is already expanded.
 *             yield self             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
    __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 2;
    return __pyx_r;
    __pyx_L10_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 528, __pyx_L1_error)
  }
  __pyx_L4:;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/terule.pxi":506
 *         return self.dft
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Expand the rule into an equivalent set of rules without attributes."""
 *         cdef FileNameTERule r
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":530
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default} {0.filename};". \
 *             format(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_7statement(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_7statement(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/terule.pxi":531
 * 
 *     def statement(self):
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default} {0.filename};". \             # <<<<<<<<<<<<<<
 *             format(self)
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "setools/policyrep/terule.pxi":532
 *     def statement(self):
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default} {0.filename};". \
 *             format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_ruletype_0_source_0_target_0_9, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":530
 *             yield self
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.default} {0.filename};". \
 *             format(self)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":470
 *     cdef:
 *         Type dft
 *         readonly str filename             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_8filename_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_8filename_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_8filename___get__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_8filename___get__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->filename);
  __pyx_r = __pyx_v_self->filename;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.dft, self.extended, self.filename, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base._conditional_block); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->__pyx_base.__pyx_base.extended); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(13); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._conditional));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->__pyx_base._conditional));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->dft));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dft));
  PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_self->dft));
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->filename);
  __Pyx_GIVEREF(__pyx_v_self->filename);
  PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_self->filename);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.origin);
  PyTuple_SET_ITEM(__pyx_t_4, 6, __pyx_v_self->__pyx_base.__pyx_base.origin);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_4, 7, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->__pyx_base.rule_string);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.rule_string);
  PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_v_self->__pyx_base.rule_string);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.ruletype);
  PyTuple_SET_ITEM(__pyx_t_4, 9, __pyx_v_self->__pyx_base.__pyx_base.ruletype);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.source);
  PyTuple_SET_ITEM(__pyx_t_4, 10, __pyx_v_self->__pyx_base.__pyx_base.source);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.target);
  PyTuple_SET_ITEM(__pyx_t_4, 11, __pyx_v_self->__pyx_base.__pyx_base.target);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.tclass));
  PyTuple_SET_ITEM(__pyx_t_4, 12, ((PyObject *)__pyx_v_self->__pyx_base.tclass));
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._conditional, self._conditional_block, self.dft, self.extended, self.filename, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.dft, self.extended, self.filename, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._conditional is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._conditional, self._conditional_block, self.dft, self.extended, self.filename, self.key, self.origin, self.policy, self.rule_string, self.ruletype, self.source, self.target, self.tclass)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._conditional is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, None), state
 */
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base._conditional) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->dft) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->filename != ((PyObject*)Py_None));
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.origin != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.rule_string != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.__pyx_base.ruletype != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (__pyx_v_self->__pyx_base.__pyx_base.source != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_6 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.__pyx_base.target != Py_None);
    __pyx_t_7 = (__pyx_t_5 != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->__pyx_base.tclass) != Py_None);
    __pyx_t_5 = (__pyx_t_7 != 0);
    __pyx_t_6 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, None), state
 *     else:
 */
  __pyx_t_6 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":13
 *         use_setstate = self._conditional is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_FileNameTERule); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_234029960);
    __Pyx_GIVEREF(__pyx_int_234029960);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_234029960);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._conditional is not None or self.dft is not None or self.filename is not None or self.origin is not None or self.policy is not None or self.rule_string is not None or self.ruletype is not None or self.source is not None or self.target is not None or self.tclass is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, None), state
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_FileNameTERule); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_234029960);
    __Pyx_GIVEREF(__pyx_int_234029960);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_234029960);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14FileNameTERule_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14FileNameTERule_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_14FileNameTERule_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_FileNameTERule__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_FileNameTERule, (type(self), 0xdf30388, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_FileNameTERule__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERule.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":550
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.avtab *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TERule iterators."""
 *         i = TERuleIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_14TERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, struct avtab *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":552
 *     cdef factory(SELinuxPolicy policy, sepol.avtab *table):
 *         """Factory function for creating TERule iterators."""
 *         i = TERuleIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_TERuleIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":553
 *         """Factory function for creating TERule iterators."""
 *         i = TERuleIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.policy));
  __pyx_v_i->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":554
 *         i = TERuleIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->table = __pyx_v_table;

  /* "setools/policyrep/terule.pxi":555
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":556
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     cdef void _next_bucket(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":550
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.avtab *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TERule iterators."""
 *         i = TERuleIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":558
 *         return i
 * 
 *     cdef void _next_bucket(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 */

static void __pyx_f_7setools_9policyrep_14TERuleIterator__next_bucket(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("_next_bucket", 0);

  /* "setools/policyrep/terule.pxi":560
 *     cdef void _next_bucket(self):
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1             # <<<<<<<<<<<<<<
 *         if self.bucket < self.table.nslot:
 *             self.node = self.table.htable[self.bucket]
 */
  __pyx_v_self->bucket = (__pyx_v_self->bucket + 1);

  /* "setools/policyrep/terule.pxi":561
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 *         if self.bucket < self.table.nslot:             # <<<<<<<<<<<<<<
 *             self.node = self.table.htable[self.bucket]
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_self->bucket < __pyx_v_self->table->nslot) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":562
 *         self.bucket += 1
 *         if self.bucket < self.table.nslot:
 *             self.node = self.table.htable[self.bucket]             # <<<<<<<<<<<<<<
 *         else:
 *             self.node = NULL
 */
    __pyx_v_self->node = (__pyx_v_self->table->htable[__pyx_v_self->bucket]);

    /* "setools/policyrep/terule.pxi":561
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 *         if self.bucket < self.table.nslot:             # <<<<<<<<<<<<<<
 *             self.node = self.table.htable[self.bucket]
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/terule.pxi":564
 *             self.node = self.table.htable[self.bucket]
 *         else:
 *             self.node = NULL             # <<<<<<<<<<<<<<
 * 
 *     cdef void _next_node(self):
 */
  /*else*/ {
    __pyx_v_self->node = NULL;
  }
  __pyx_L3:;

  /* "setools/policyrep/terule.pxi":558
 *         return i
 * 
 *     cdef void _next_bucket(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next bucket."""
 *         self.bucket += 1
 */

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

/* "setools/policyrep/terule.pxi":566
 *             self.node = NULL
 * 
 *     cdef void _next_node(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
 */

static void __pyx_f_7setools_9policyrep_14TERuleIterator__next_node(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  struct avtab_node *__pyx_t_3;
  __Pyx_RefNannySetupContext("_next_node", 0);

  /* "setools/policyrep/terule.pxi":568
 *     cdef void _next_node(self):
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:             # <<<<<<<<<<<<<<
 *             self.node = self.node.next
 *         else:
 */
  __pyx_t_2 = ((__pyx_v_self->node != NULL) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->node->next != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":569
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
 *             self.node = self.node.next             # <<<<<<<<<<<<<<
 *         else:
 *             self._next_bucket()
 */
    __pyx_t_3 = __pyx_v_self->node->next;
    __pyx_v_self->node = __pyx_t_3;

    /* "setools/policyrep/terule.pxi":568
 *     cdef void _next_node(self):
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:             # <<<<<<<<<<<<<<
 *             self.node = self.node.next
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/terule.pxi":571
 *             self.node = self.node.next
 *         else:
 *             self._next_bucket()             # <<<<<<<<<<<<<<
 *             while self.bucket < self.table.nslot and self.node == NULL:
 *                 self._next_bucket()
 */
  /*else*/ {
    ((struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *)__pyx_v_self->__pyx_vtab)->_next_bucket(__pyx_v_self);

    /* "setools/policyrep/terule.pxi":572
 *         else:
 *             self._next_bucket()
 *             while self.bucket < self.table.nslot and self.node == NULL:             # <<<<<<<<<<<<<<
 *                 self._next_bucket()
 * 
 */
    while (1) {
      __pyx_t_2 = ((__pyx_v_self->bucket < __pyx_v_self->table->nslot) != 0);
      if (__pyx_t_2) {
      } else {
        __pyx_t_1 = __pyx_t_2;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_2 = ((__pyx_v_self->node == NULL) != 0);
      __pyx_t_1 = __pyx_t_2;
      __pyx_L8_bool_binop_done:;
      if (!__pyx_t_1) break;

      /* "setools/policyrep/terule.pxi":573
 *             self._next_bucket()
 *             while self.bucket < self.table.nslot and self.node == NULL:
 *                 self._next_bucket()             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
      ((struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *)__pyx_v_self->__pyx_vtab)->_next_bucket(__pyx_v_self);
    }
  }
  __pyx_L3:;

  /* "setools/policyrep/terule.pxi":566
 *             self.node = NULL
 * 
 *     cdef void _next_node(self):             # <<<<<<<<<<<<<<
 *         """Internal method for advancing to the next node."""
 *         if self.node != NULL and self.node.next != NULL:
 */

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

/* "setools/policyrep/terule.pxi":575
 *                 self._next_bucket()
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.avtab_key_t *key
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator___next__(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator___next__(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  avtab_key_t *__pyx_v_key;
  avtab_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/terule.pxi":580
 *             sepol.avtab_datum_t *datum
 * 
 *         if self.table == NULL or self.table.nel == 0 or self.bucket >= self.table.nslot:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_2 = ((__pyx_v_self->table == NULL) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->table->nel == 0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->bucket >= __pyx_v_self->table->nslot) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":581
 * 
 *         if self.table == NULL or self.table.nel == 0 or self.bucket >= self.table.nslot:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         key = &self.node.key
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(19, 581, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":580
 *             sepol.avtab_datum_t *datum
 * 
 *         if self.table == NULL or self.table.nel == 0 or self.bucket >= self.table.nslot:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/terule.pxi":583
 *             raise StopIteration
 * 
 *         key = &self.node.key             # <<<<<<<<<<<<<<
 *         datum = &self.node.datum
 * 
 */
  __pyx_v_key = (&__pyx_v_self->node->key);

  /* "setools/policyrep/terule.pxi":584
 * 
 *         key = &self.node.key
 *         datum = &self.node.datum             # <<<<<<<<<<<<<<
 * 
 *         self._next_node()
 */
  __pyx_v_datum = (&__pyx_v_self->node->datum);

  /* "setools/policyrep/terule.pxi":586
 *         datum = &self.node.datum
 * 
 *         self._next_node()             # <<<<<<<<<<<<<<
 * 
 *         if key.specified & sepol.AVRULE_AV:
 */
  ((struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *)__pyx_v_self->__pyx_vtab)->_next_node(__pyx_v_self);

  /* "setools/policyrep/terule.pxi":588
 *         self._next_node()
 * 
 *         if key.specified & sepol.AVRULE_AV:             # <<<<<<<<<<<<<<
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:
 */
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_AV) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":589
 * 
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, None, None)             # <<<<<<<<<<<<<<
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, None, None)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = ((PyObject *)__pyx_f_7setools_9policyrep_6AVRule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_key, __pyx_v_datum, Py_None, Py_None)); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":588
 *         self._next_node()
 * 
 *         if key.specified & sepol.AVRULE_AV:             # <<<<<<<<<<<<<<
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:
 */
  }

  /* "setools/policyrep/terule.pxi":590
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:             # <<<<<<<<<<<<<<
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:
 */
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_TYPE) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":591
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, None, None)             # <<<<<<<<<<<<<<
 *         elif key.specified & sepol.AVRULE_XPERMS:
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_6TERule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_4), __pyx_v_key, __pyx_v_datum, Py_None, Py_None)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 591, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":590
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_TYPE:             # <<<<<<<<<<<<<<
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:
 */
  }

  /* "setools/policyrep/terule.pxi":592
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:             # <<<<<<<<<<<<<<
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_XPERMS) != 0);
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":593
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)             # <<<<<<<<<<<<<<
 *         else:
 *             raise LowLevelPolicyError("Unknown AV rule type 0x{}".format(key.specified, '04x'))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = ((PyObject *)__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_key, __pyx_v_datum, Py_None, Py_None)); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 593, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":592
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, None, None)
 *         elif key.specified & sepol.AVRULE_XPERMS:             # <<<<<<<<<<<<<<
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)
 *         else:
 */
  }

  /* "setools/policyrep/terule.pxi":595
 *             return AVRuleXperm.factory(self.policy, key, datum, None, None)
 *         else:
 *             raise LowLevelPolicyError("Unknown AV rule type 0x{}".format(key.specified, '04x'))             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Unknown_AV_rule_type_0x, __pyx_n_s_format_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyInt_From_uint16_t(__pyx_v_key->specified); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, __pyx_kp_u_04x};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 595, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, __pyx_kp_u_04x};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 595, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(19, 595, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_7);
      __Pyx_INCREF(__pyx_kp_u_04x);
      __Pyx_GIVEREF(__pyx_kp_u_04x);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_kp_u_04x);
      __pyx_t_7 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 595, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(19, 595, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":575
 *                 self._next_bucket()
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.avtab_key_t *key
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":597
 *             raise LowLevelPolicyError("Unknown AV rule type 0x{}".format(key.specified, '04x'))
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.table.nel
 * 
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_14TERuleIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/terule.pxi":598
 * 
 *     def __len__(self):
 *         return self.table.nel             # <<<<<<<<<<<<<<
 * 
 *     def ruletype_count(self):
 */
  __pyx_r = __pyx_v_self->table->nel;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":597
 *             raise LowLevelPolicyError("Unknown AV rule type 0x{}".format(key.specified, '04x'))
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.table.nel
 * 
 */

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

/* "setools/policyrep/terule.pxi":600
 *         return self.table.nel
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_5ruletype_count(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_14TERuleIterator_4ruletype_count[] = "\n        Determine the number of rules.\n\n        Return: collections.Counter object keyed by TERuletype.value\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_5ruletype_count(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ruletype_count (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_4ruletype_count(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_4ruletype_count(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  avtab_key_t *__pyx_v_key;
  avtab_ptr_t __pyx_v_node;
  uint32_t __pyx_v_bucket;
  PyObject *__pyx_v_count = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  avtab_key_t *__pyx_t_5;
  int __pyx_t_6;
  struct avtab_node *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ruletype_count", 0);

  /* "setools/policyrep/terule.pxi":609
 *             sepol.avtab_key_t *key
 *             sepol.avtab_ptr_t node
 *             uint32_t bucket = 0             # <<<<<<<<<<<<<<
 * 
 *         count = collections.Counter()
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/terule.pxi":611
 *             uint32_t bucket = 0
 * 
 *         count = collections.Counter()             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].nslot:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_collections); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Counter); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 611, __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 && 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_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_count = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":613
 *         count = collections.Counter()
 * 
 *         while bucket < self.table[0].nslot:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_4 = ((__pyx_v_bucket < (__pyx_v_self->table[0]).nslot) != 0);
    if (!__pyx_t_4) break;

    /* "setools/policyrep/terule.pxi":614
 * 
 *         while bucket < self.table[0].nslot:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 key = &node.key if node else NULL
 */
    __pyx_v_node = ((__pyx_v_self->table[0]).htable[__pyx_v_bucket]);

    /* "setools/policyrep/terule.pxi":615
 *         while bucket < self.table[0].nslot:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 key = &node.key if node else NULL
 *                 if key != NULL:
 */
    while (1) {
      __pyx_t_4 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_4) break;

      /* "setools/policyrep/terule.pxi":616
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 key = &node.key if node else NULL             # <<<<<<<<<<<<<<
 *                 if key != NULL:
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_5 = (&__pyx_v_node->key);
      } else {
        __pyx_t_5 = NULL;
      }
      __pyx_v_key = __pyx_t_5;

      /* "setools/policyrep/terule.pxi":617
 *             while node != NULL:
 *                 key = &node.key if node else NULL
 *                 if key != NULL:             # <<<<<<<<<<<<<<
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1
 * 
 */
      __pyx_t_4 = ((__pyx_v_key != NULL) != 0);
      if (__pyx_t_4) {

        /* "setools/policyrep/terule.pxi":618
 *                 key = &node.key if node else NULL
 *                 if key != NULL:
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        __pyx_t_6 = (__pyx_v_key->specified & (~AVTAB_ENABLED));
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_count, __pyx_t_6, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 618, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 618, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_v_count, __pyx_t_6, __pyx_t_3, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(19, 618, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

        /* "setools/policyrep/terule.pxi":617
 *             while node != NULL:
 *                 key = &node.key if node else NULL
 *                 if key != NULL:             # <<<<<<<<<<<<<<
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1
 * 
 */
      }

      /* "setools/policyrep/terule.pxi":620
 *                     count[key.specified & ~sepol.AVTAB_ENABLED] += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_7 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_7;
    }

    /* "setools/policyrep/terule.pxi":622
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/terule.pxi":624
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_count);
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":600
 *         return self.table.nel
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.ruletype_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_count);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":626
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table.htable[0]
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_7reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_14TERuleIterator_6reset[] = "Reset the iterator to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_7reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_6reset(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/terule.pxi":628
 *     def reset(self):
 *         """Reset the iterator to the start."""
 *         self.node = self.table.htable[0]             # <<<<<<<<<<<<<<
 * 
 *         # advance to first item
 */
  __pyx_v_self->node = (__pyx_v_self->table->htable[0]);

  /* "setools/policyrep/terule.pxi":631
 * 
 *         # advance to first item
 *         if self.node == NULL:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->node == NULL) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":632
 *         # advance to first item
 *         if self.node == NULL:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    ((struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator *)__pyx_v_self->__pyx_vtab)->_next_node(__pyx_v_self);

    /* "setools/policyrep/terule.pxi":631
 * 
 *         # advance to first item
 *         if self.node == NULL:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  }

  /* "setools/policyrep/terule.pxi":626
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator to the start."""
 *         self.node = self.table.htable[0]
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__85, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_14TERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_14TERuleIterator_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_14TERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__86, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":646
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.cond_av_list_t *head, conditional, cond_block):             # <<<<<<<<<<<<<<
 *         """ConditionalTERuleIterator iterator factory."""
 *         c = ConditionalTERuleIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, cond_av_list_t *__pyx_v_head, PyObject *__pyx_v_conditional, PyObject *__pyx_v_cond_block) {
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_c = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":648
 *     cdef factory(SELinuxPolicy policy, sepol.cond_av_list_t *head, conditional, cond_block):
 *         """ConditionalTERuleIterator iterator factory."""
 *         c = ConditionalTERuleIterator()             # <<<<<<<<<<<<<<
 *         c.policy = policy
 *         c.head = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_c = ((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":649
 *         """ConditionalTERuleIterator iterator factory."""
 *         c = ConditionalTERuleIterator()
 *         c.policy = policy             # <<<<<<<<<<<<<<
 *         c.head = head
 *         c.conditional = conditional
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_c->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_c->__pyx_base.policy));
  __pyx_v_c->__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":650
 *         c = ConditionalTERuleIterator()
 *         c.policy = policy
 *         c.head = head             # <<<<<<<<<<<<<<
 *         c.conditional = conditional
 *         c.conditional_block = cond_block
 */
  __pyx_v_c->head = __pyx_v_head;

  /* "setools/policyrep/terule.pxi":651
 *         c.policy = policy
 *         c.head = head
 *         c.conditional = conditional             # <<<<<<<<<<<<<<
 *         c.conditional_block = cond_block
 *         c.reset()
 */
  __Pyx_INCREF(__pyx_v_conditional);
  __Pyx_GIVEREF(__pyx_v_conditional);
  __Pyx_GOTREF(__pyx_v_c->conditional);
  __Pyx_DECREF(__pyx_v_c->conditional);
  __pyx_v_c->conditional = __pyx_v_conditional;

  /* "setools/policyrep/terule.pxi":652
 *         c.head = head
 *         c.conditional = conditional
 *         c.conditional_block = cond_block             # <<<<<<<<<<<<<<
 *         c.reset()
 *         return c
 */
  __Pyx_INCREF(__pyx_v_cond_block);
  __Pyx_GIVEREF(__pyx_v_cond_block);
  __Pyx_GOTREF(__pyx_v_c->conditional_block);
  __Pyx_DECREF(__pyx_v_c->conditional_block);
  __pyx_v_c->conditional_block = __pyx_v_cond_block;

  /* "setools/policyrep/terule.pxi":653
 *         c.conditional = conditional
 *         c.conditional_block = cond_block
 *         c.reset()             # <<<<<<<<<<<<<<
 *         return c
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_c), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":654
 *         c.conditional_block = cond_block
 *         c.reset()
 *         return c             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_c));
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":646
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.cond_av_list_t *head, conditional, cond_block):             # <<<<<<<<<<<<<<
 *         """ConditionalTERuleIterator iterator factory."""
 *         c = ConditionalTERuleIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":656
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator___next__(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator___next__(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  avtab_key_t *__pyx_v_key;
  avtab_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  struct cond_av_list *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/terule.pxi":657
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->curr == NULL) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":658
 *     def __next__(self):
 *         if self.curr == NULL:
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         key = &self.curr.node.key
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(19, 658, __pyx_L1_error)

    /* "setools/policyrep/terule.pxi":657
 * 
 *     def __next__(self):
 *         if self.curr == NULL:             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "setools/policyrep/terule.pxi":660
 *             raise StopIteration
 * 
 *         key = &self.curr.node.key             # <<<<<<<<<<<<<<
 *         datum = &self.curr.node.datum
 * 
 */
  __pyx_v_key = (&__pyx_v_self->curr->node->key);

  /* "setools/policyrep/terule.pxi":661
 * 
 *         key = &self.curr.node.key
 *         datum = &self.curr.node.datum             # <<<<<<<<<<<<<<
 * 
 *         self.curr = self.curr.next
 */
  __pyx_v_datum = (&__pyx_v_self->curr->node->datum);

  /* "setools/policyrep/terule.pxi":663
 *         datum = &self.curr.node.datum
 * 
 *         self.curr = self.curr.next             # <<<<<<<<<<<<<<
 * 
 *         if key.specified & sepol.AVRULE_AV:
 */
  __pyx_t_2 = __pyx_v_self->curr->next;
  __pyx_v_self->curr = __pyx_t_2;

  /* "setools/policyrep/terule.pxi":665
 *         self.curr = self.curr.next
 * 
 *         if key.specified & sepol.AVRULE_AV:             # <<<<<<<<<<<<<<
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:
 */
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_AV) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":666
 * 
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)             # <<<<<<<<<<<<<<
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __pyx_v_self->conditional;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = __pyx_v_self->conditional_block;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = ((PyObject *)__pyx_f_7setools_9policyrep_6AVRule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_key, __pyx_v_datum, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 666, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":665
 *         self.curr = self.curr.next
 * 
 *         if key.specified & sepol.AVRULE_AV:             # <<<<<<<<<<<<<<
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:
 */
  }

  /* "setools/policyrep/terule.pxi":667
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:             # <<<<<<<<<<<<<<
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:
 */
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_TYPE) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/terule.pxi":668
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)             # <<<<<<<<<<<<<<
 *         elif key.specified & sepol.AVRULE_XPERMS:
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = __pyx_v_self->conditional;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_4 = __pyx_v_self->conditional_block;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_3 = ((PyObject *)__pyx_f_7setools_9policyrep_6TERule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_6), __pyx_v_key, __pyx_v_datum, __pyx_t_5, __pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 668, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":667
 *         if key.specified & sepol.AVRULE_AV:
 *             return AVRule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_TYPE:             # <<<<<<<<<<<<<<
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:
 */
  }

  /* "setools/policyrep/terule.pxi":669
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:             # <<<<<<<<<<<<<<
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_key->specified & AVRULE_XPERMS) != 0);
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/terule.pxi":670
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)             # <<<<<<<<<<<<<<
 *         else:
 *             raise LowLevelPolicyError("Unknown AV rule type 0x{}".format(key.specified, '04x'))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __pyx_v_self->conditional;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = __pyx_v_self->conditional_block;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = ((PyObject *)__pyx_f_7setools_9policyrep_11AVRuleXperm_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), __pyx_v_key, __pyx_v_datum, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/terule.pxi":669
 *         elif key.specified & sepol.AVRULE_TYPE:
 *             return TERule.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         elif key.specified & sepol.AVRULE_XPERMS:             # <<<<<<<<<<<<<<
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         else:
 */
  }

  /* "setools/policyrep/terule.pxi":672
 *             return AVRuleXperm.factory(self.policy, key, datum, self.conditional, self.conditional_block)
 *         else:
 *             raise LowLevelPolicyError("Unknown AV rule type 0x{}".format(key.specified, '04x'))             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_5)) __PYX_ERR(19, 672, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Unknown_AV_rule_type_0x, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 672, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyInt_From_uint16_t(__pyx_v_key->specified); if (unlikely(!__pyx_t_7)) __PYX_ERR(19, 672, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, __pyx_kp_u_04x};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 672, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_7, __pyx_kp_u_04x};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 672, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(19, 672, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_7);
      __Pyx_INCREF(__pyx_kp_u_04x);
      __Pyx_GIVEREF(__pyx_kp_u_04x);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_kp_u_04x);
      __pyx_t_7 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 672, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(19, 672, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(19, 672, __pyx_L1_error)
  }

  /* "setools/policyrep/terule.pxi":656
 *         return c
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         if self.curr == NULL:
 *             raise StopIteration
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":674
 *             raise LowLevelPolicyError("Unknown AV rule type 0x{}".format(key.specified, '04x'))
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_av_list_t *curr
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_2__len__(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  cond_av_list_t *__pyx_v_curr;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  cond_av_list_t *__pyx_t_1;
  int __pyx_t_2;
  struct cond_av_list *__pyx_t_3;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/terule.pxi":677
 *         cdef:
 *             sepol.cond_av_list_t *curr
 *             size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/terule.pxi":679
 *             size_t count = 0
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *             count += 1
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_1;

  /* "setools/policyrep/terule.pxi":680
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *             count += 1
 *             curr = curr.next
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_curr != NULL) != 0);
    if (!__pyx_t_2) break;

    /* "setools/policyrep/terule.pxi":681
 *         curr = self.head
 *         while curr != NULL:
 *             count += 1             # <<<<<<<<<<<<<<
 *             curr = curr.next
 * 
 */
    __pyx_v_count = (__pyx_v_count + 1);

    /* "setools/policyrep/terule.pxi":682
 *         while curr != NULL:
 *             count += 1
 *             curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_3 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_3;
  }

  /* "setools/policyrep/terule.pxi":684
 *             curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def ruletype_count(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":674
 *             raise LowLevelPolicyError("Unknown AV rule type 0x{}".format(key.specified, '04x'))
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             sepol.cond_av_list_t *curr
 */

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

/* "setools/policyrep/terule.pxi":686
 *         return count
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count[] = "\n        Determine the number of rules.\n\n        Return: collections.Counter object keyed by TERuletype.value\n        ";
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ruletype_count (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  cond_av_list_t *__pyx_v_curr;
  PyObject *__pyx_v_count = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  cond_av_list_t *__pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  struct cond_av_list *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ruletype_count", 0);

  /* "setools/policyrep/terule.pxi":694
 *         cdef sepol.cond_av_list_t *curr
 * 
 *         count = collections.Counter()             # <<<<<<<<<<<<<<
 * 
 *         curr = self.head
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_collections); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Counter); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 694, __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 && 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_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_count = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":696
 *         count = collections.Counter()
 * 
 *         curr = self.head             # <<<<<<<<<<<<<<
 *         while curr != NULL:
 *             count[curr.node.key.specified & ~sepol.AVTAB_ENABLED] += 1
 */
  __pyx_t_4 = __pyx_v_self->head;
  __pyx_v_curr = __pyx_t_4;

  /* "setools/policyrep/terule.pxi":697
 * 
 *         curr = self.head
 *         while curr != NULL:             # <<<<<<<<<<<<<<
 *             count[curr.node.key.specified & ~sepol.AVTAB_ENABLED] += 1
 *             curr = curr.next
 */
  while (1) {
    __pyx_t_5 = ((__pyx_v_curr != NULL) != 0);
    if (!__pyx_t_5) break;

    /* "setools/policyrep/terule.pxi":698
 *         curr = self.head
 *         while curr != NULL:
 *             count[curr.node.key.specified & ~sepol.AVTAB_ENABLED] += 1             # <<<<<<<<<<<<<<
 *             curr = curr.next
 * 
 */
    __pyx_t_6 = (__pyx_v_curr->node->key.specified & (~AVTAB_ENABLED));
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_count, __pyx_t_6, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_v_count, __pyx_t_6, __pyx_t_3, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(19, 698, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/terule.pxi":699
 *         while curr != NULL:
 *             count[curr.node.key.specified & ~sepol.AVTAB_ENABLED] += 1
 *             curr = curr.next             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_t_7 = __pyx_v_curr->next;
    __pyx_v_curr = __pyx_t_7;
  }

  /* "setools/policyrep/terule.pxi":701
 *             curr = curr.next
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_count);
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":686
 *         return count
 * 
 *     def ruletype_count(self):             # <<<<<<<<<<<<<<
 *         """
 *         Determine the number of rules.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.ruletype_count", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_count);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":703
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_7reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_6reset[] = "Reset the iterator back to the start.";
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_7reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_6reset(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  cond_av_list_t *__pyx_t_1;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/terule.pxi":705
 *     def reset(self):
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_v_self->head;
  __pyx_v_self->curr = __pyx_t_1;

  /* "setools/policyrep/terule.pxi":703
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         """Reset the iterator back to the start."""
 *         self.curr = self.head
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__87, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_25ConditionalTERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__88, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.ConditionalTERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":717
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating FileNameTERule iterators."""
 *         i = FileNameTERuleIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/terule.pxi":719
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating FileNameTERule iterators."""
 *         i = FileNameTERuleIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":720
 *         """Factory function for creating FileNameTERule iterators."""
 *         i = FileNameTERuleIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/terule.pxi":721
 *         i = FileNameTERuleIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/terule.pxi":722
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":723
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def _next_stype(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":717
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating FileNameTERule iterators."""
 *         i = FileNameTERuleIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":725
 *         return i
 * 
 *     def _next_stype(self):             # <<<<<<<<<<<<<<
 *         while True:
 *             if self.datum == NULL:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_next_stype (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator__next_stype(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator__next_stype(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  struct filename_trans_datum *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_next_stype", 0);

  /* "setools/policyrep/terule.pxi":726
 * 
 *     def _next_stype(self):
 *         while True:             # <<<<<<<<<<<<<<
 *             if self.datum == NULL:
 *                 super().__next__()
 */
  while (1) {

    /* "setools/policyrep/terule.pxi":727
 *     def _next_stype(self):
 *         while True:
 *             if self.datum == NULL:             # <<<<<<<<<<<<<<
 *                 super().__next__()
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 */
    __pyx_t_1 = ((__pyx_v_self->datum == NULL) != 0);
    if (__pyx_t_1) {

      /* "setools/policyrep/terule.pxi":728
 *         while True:
 *             if self.datum == NULL:
 *                 super().__next__()             # <<<<<<<<<<<<<<
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 */
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 728, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator));
      __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator));
      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator));
      __Pyx_INCREF(((PyObject *)__pyx_v_self));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
      PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self));
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 728, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_next); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 728, __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_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 728, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "setools/policyrep/terule.pxi":729
 *             if self.datum == NULL:
 *                 super().__next__()
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum             # <<<<<<<<<<<<<<
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:
 */
      __pyx_v_self->datum = ((filename_trans_datum_t *)__pyx_v_self->__pyx_base.curr->datum);

      /* "setools/policyrep/terule.pxi":730
 *                 super().__next__()
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)             # <<<<<<<<<<<<<<
 *             try:
 *                 return next(self.stypei)
 */
      __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), (&__pyx_v_self->datum->stypes)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 730, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_7setools_9policyrep_TypeEbitmapIterator))))) __PYX_ERR(19, 730, __pyx_L1_error)
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_v_self->stypei);
      __Pyx_DECREF(((PyObject *)__pyx_v_self->stypei));
      __pyx_v_self->stypei = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":727
 *     def _next_stype(self):
 *         while True:
 *             if self.datum == NULL:             # <<<<<<<<<<<<<<
 *                 super().__next__()
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 */
    }

    /* "setools/policyrep/terule.pxi":731
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:             # <<<<<<<<<<<<<<
 *                 return next(self.stypei)
 *             except StopIteration:
 */
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      /*try:*/ {

        /* "setools/policyrep/terule.pxi":732
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:
 *                 return next(self.stypei)             # <<<<<<<<<<<<<<
 *             except StopIteration:
 *                 pass
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = ((PyObject *)__pyx_v_self->stypei);
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_PyIter_Next(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 732, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        goto __pyx_L10_try_return;

        /* "setools/policyrep/terule.pxi":731
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:             # <<<<<<<<<<<<<<
 *                 return next(self.stypei)
 *             except StopIteration:
 */
      }
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "setools/policyrep/terule.pxi":733
 *             try:
 *                 return next(self.stypei)
 *             except StopIteration:             # <<<<<<<<<<<<<<
 *                 pass
 *             self.datum = self.datum.next
 */
      __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_StopIteration);
      if (__pyx_t_8) {
        __Pyx_ErrRestore(0,0,0);
        goto __pyx_L7_exception_handled;
      }
      goto __pyx_L8_except_error;
      __pyx_L8_except_error:;

      /* "setools/policyrep/terule.pxi":731
 *                 self.datum = <sepol.filename_trans_datum_t *>self.curr.datum
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 *             try:             # <<<<<<<<<<<<<<
 *                 return next(self.stypei)
 *             except StopIteration:
 */
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      goto __pyx_L1_error;
      __pyx_L10_try_return:;
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      goto __pyx_L0;
      __pyx_L7_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    }

    /* "setools/policyrep/terule.pxi":735
 *             except StopIteration:
 *                 pass
 *             self.datum = self.datum.next             # <<<<<<<<<<<<<<
 *             if self.datum != NULL:
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 */
    __pyx_t_9 = __pyx_v_self->datum->next;
    __pyx_v_self->datum = __pyx_t_9;

    /* "setools/policyrep/terule.pxi":736
 *                 pass
 *             self.datum = self.datum.next
 *             if self.datum != NULL:             # <<<<<<<<<<<<<<
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 * 
 */
    __pyx_t_1 = ((__pyx_v_self->datum != NULL) != 0);
    if (__pyx_t_1) {

      /* "setools/policyrep/terule.pxi":737
 *             self.datum = self.datum.next
 *             if self.datum != NULL:
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
      __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_2), (&__pyx_v_self->datum->stypes)); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 737, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_7setools_9policyrep_TypeEbitmapIterator))))) __PYX_ERR(19, 737, __pyx_L1_error)
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_v_self->stypei);
      __Pyx_DECREF(((PyObject *)__pyx_v_self->stypei));
      __pyx_v_self->stypei = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_t_3);
      __pyx_t_3 = 0;

      /* "setools/policyrep/terule.pxi":736
 *                 pass
 *             self.datum = self.datum.next
 *             if self.datum != NULL:             # <<<<<<<<<<<<<<
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 * 
 */
    }
  }

  /* "setools/policyrep/terule.pxi":725
 *         return i
 * 
 *     def _next_stype(self):             # <<<<<<<<<<<<<<
 *         while True:
 *             if self.datum == NULL:
 */

  /* 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_AddTraceback("setools.policyrep.FileNameTERuleIterator._next_stype", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":739
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         stype = self._next_stype()
 *         return FileNameTERule.factory(self.policy,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_2__next__(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_2__next__(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_v_stype = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/terule.pxi":740
 * 
 *     def __next__(self):
 *         stype = self._next_stype()             # <<<<<<<<<<<<<<
 *         return FileNameTERule.factory(self.policy,
 *                                       <sepol.filename_trans_key_t *>self.curr.key,
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next_stype); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_stype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":741
 *     def __next__(self):
 *         stype = self._next_stype()
 *         return FileNameTERule.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                       <sepol.filename_trans_key_t *>self.curr.key,
 *                                       stype, self.datum.otype)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/terule.pxi":743
 *         return FileNameTERule.factory(self.policy,
 *                                       <sepol.filename_trans_key_t *>self.curr.key,
 *                                       stype, self.datum.otype)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  if (!(likely(((__pyx_v_stype) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_stype, __pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(19, 743, __pyx_L1_error)

  /* "setools/policyrep/terule.pxi":741
 *     def __next__(self):
 *         stype = self._next_stype()
 *         return FileNameTERule.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                       <sepol.filename_trans_key_t *>self.curr.key,
 *                                       stype, self.datum.otype)
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_14FileNameTERule_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((filename_trans_key_t *)__pyx_v_self->__pyx_base.curr->key), ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_stype), __pyx_v_self->datum->otype)); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":739
 *                 self.stypei = TypeEbitmapIterator.factory(self.policy, &self.datum.stypes)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         stype = self._next_stype()
 *         return FileNameTERule.factory(self.policy,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stype);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":745
 *                                       stype, self.datum.otype)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_4__len__(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_22FileNameTERuleIterator_7__len___2generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/terule.pxi":746
 * 
 *     def __len__(self):
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_7__len___genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_46_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_46_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 746, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_22FileNameTERuleIterator_7__len___2generator31, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_len___locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(19, 746, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__len__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_22FileNameTERuleIterator_7__len___2generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 746, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(19, 746, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(19, 746, __pyx_L1_error) }
  __pyx_t_2 = __pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->__pyx_base.table); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 746, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(19, 746, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(19, 746, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      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(19, 746, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(19, 746, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":745
 *                                       stype, self.datum.otype)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 */

static Py_ssize_t __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_4__len__(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *__pyx_cur_scope;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_45___len__(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_45___len__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(19, 745, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/terule.pxi":746
 * 
 *     def __len__(self):
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_7__len___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(19, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  goto __pyx_L0;

  /* "setools/policyrep/terule.pxi":745
 *                                       stype, self.datum.otype)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/terule.pxi":748
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 *         self.datum = NULL
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_7reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_7reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_6reset(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_6reset(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/terule.pxi":749
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 *         self.datum = NULL
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_FileNameTERuleIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 749, __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_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 749, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":750
 *     def reset(self):
 *         super().reset()
 *         self.datum = NULL             # <<<<<<<<<<<<<<
 */
  __pyx_v_self->datum = NULL;

  /* "setools/policyrep/terule.pxi":748
 *         return sum(1 for r in FileNameTERuleIterator.factory(self.policy, self.table))
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 *         self.datum = NULL
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_8__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__89, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_10__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_22FileNameTERuleIterator_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__90, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.FileNameTERuleIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":35
 * # Type or attribute factory function
 * #
 * cdef inline BaseType type_or_attr_factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):             # <<<<<<<<<<<<<<
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_f_7setools_9policyrep_type_or_attr_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("type_or_attr_factory", 0);

  /* "setools/policyrep/typeattr.pxi":37
 * cdef inline BaseType type_or_attr_factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *         return TypeAttribute.factory(policy, symbol)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_symbol->flavor == TYPE_ATTRIB) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":38
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:
 *         return TypeAttribute.factory(policy, symbol)             # <<<<<<<<<<<<<<
 *     else:
 *         return Type.factory(policy, symbol)
 */
    __Pyx_XDECREF(((PyObject *)__pyx_r));
    __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_13TypeAttribute_factory(__pyx_v_policy, __pyx_v_symbol)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 38, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = ((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/typeattr.pxi":37
 * cdef inline BaseType type_or_attr_factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *         return TypeAttribute.factory(policy, symbol)
 *     else:
 */
  }

  /* "setools/policyrep/typeattr.pxi":40
 *         return TypeAttribute.factory(policy, symbol)
 *     else:
 *         return Type.factory(policy, symbol)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(((PyObject *)__pyx_r));
    __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(__pyx_v_policy, __pyx_v_symbol)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = ((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_t_2);
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/typeattr.pxi":35
 * # Type or attribute factory function
 * #
 * cdef inline BaseType type_or_attr_factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):             # <<<<<<<<<<<<<<
 *     """Factory function for creating type or attribute objects."""
 *     if symbol.flavor == sepol.TYPE_ATTRIB:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.type_or_attr_factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":50
 *     """Type/attribute base class."""
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         raise NotImplementedError
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_1expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_8BaseType_expand[] = "Generator that expands this attribute into its member types.";
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_1expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_expand(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_expand(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);

  /* "setools/policyrep/typeattr.pxi":52
 *     def expand(self):
 *         """Generator that expands this attribute into its member types."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def attributes(self):
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(20, 52, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":50
 *     """Type/attribute base class."""
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         raise NotImplementedError
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseType.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":54
 *         raise NotImplementedError
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise NotImplementedError
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_3attributes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_8BaseType_2attributes[] = "Generator that yields all attributes for this type.";
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_3attributes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("attributes (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_2attributes(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_2attributes(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("attributes", 0);

  /* "setools/policyrep/typeattr.pxi":56
 *     def attributes(self):
 *         """Generator that yields all attributes for this type."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(20, 56, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":54
 *         raise NotImplementedError
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise NotImplementedError
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseType.attributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":58
 *         raise NotImplementedError
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise NotImplementedError
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_5aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_8BaseType_4aliases[] = "Generator that yields all aliases for this type.";
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_5aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_4aliases(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_4aliases(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/typeattr.pxi":60
 *     def aliases(self):
 *         """Generator that yields all aliases for this type."""
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(20, 60, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":58
 *         raise NotImplementedError
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise NotImplementedError
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.BaseType.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_6__reduce_cython__(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    __pyx_t_4 = __pyx_t_3;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_BaseType); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_154850352);
    __Pyx_GIVEREF(__pyx_int_154850352);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_154850352);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, None), state
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_BaseType); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_154850352);
    __Pyx_GIVEREF(__pyx_int_154850352);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_154850352);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.BaseType.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8BaseType_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8BaseType_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_8BaseType_8__setstate_cython__(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseType__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BaseType, (type(self), 0x93ad430, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BaseType__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.BaseType.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":76
 * 
 *     @staticmethod
 *     cdef inline Type factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Type objects."""
 *         cdef Type t
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Type *__pyx_f_7setools_9policyrep_4Type_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_t = 0;
  struct __pyx_obj_7setools_9policyrep_Type *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  uint32_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":79
 *         """Factory function for creating Type objects."""
 *         cdef Type t
 *         if symbol.flavor != sepol.TYPE_TYPE:             # <<<<<<<<<<<<<<
 *             raise ValueError("{0} is not a type".format(
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 */
  __pyx_t_1 = ((__pyx_v_symbol->flavor != TYPE_TYPE) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/typeattr.pxi":80
 *         cdef Type t
 *         if symbol.flavor != sepol.TYPE_TYPE:
 *             raise ValueError("{0} is not a type".format(             # <<<<<<<<<<<<<<
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_a_type, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "setools/policyrep/typeattr.pxi":81
 *         if symbol.flavor != sepol.TYPE_TYPE:
 *             raise ValueError("{0} is not a type".format(
 *                 policy.type_value_to_name(symbol.s.value - 1)))             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
    __pyx_t_4 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __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_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/typeattr.pxi":80
 *         cdef Type t
 *         if symbol.flavor != sepol.TYPE_TYPE:
 *             raise ValueError("{0} is not a type".format(             # <<<<<<<<<<<<<<
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 80, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(20, 80, __pyx_L1_error)

    /* "setools/policyrep/typeattr.pxi":79
 *         """Factory function for creating Type objects."""
 *         cdef Type t
 *         if symbol.flavor != sepol.TYPE_TYPE:             # <<<<<<<<<<<<<<
 *             raise ValueError("{0} is not a type".format(
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 */
  }

  /* "setools/policyrep/typeattr.pxi":83
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    /*try:*/ {

      /* "setools/policyrep/typeattr.pxi":84
 * 
 *         try:
 *             return _type_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             t = Type.__new__(Type)
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__type_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 84, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 84, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(20, 84, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_2);
      __pyx_t_2 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/typeattr.pxi":83
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/typeattr.pxi":85
 *         try:
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             t = Type.__new__(Type)
 *             _type_cache[policy][<uintptr_t>symbol] = t
 */
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_9) {
      __Pyx_AddTraceback("setools.policyrep.Type.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(20, 85, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_t_4);

      /* "setools/policyrep/typeattr.pxi":86
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             t = Type.__new__(Type)             # <<<<<<<<<<<<<<
 *             _type_cache[policy][<uintptr_t>symbol] = t
 *             t.policy = policy
 */
      __pyx_t_5 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Type(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Type), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 86, __pyx_L6_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __pyx_v_t = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":87
 *         except KeyError:
 *             t = Type.__new__(Type)
 *             _type_cache[policy][<uintptr_t>symbol] = t             # <<<<<<<<<<<<<<
 *             t.policy = policy
 *             t.key = <uintptr_t>symbol
 */
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__type_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 87, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_5, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_t), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(20, 87, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":88
 *             t = Type.__new__(Type)
 *             _type_cache[policy][<uintptr_t>symbol] = t
 *             t.policy = policy             # <<<<<<<<<<<<<<
 *             t.key = <uintptr_t>symbol
 *             t.value = symbol.s.value
 */
      __Pyx_INCREF(((PyObject *)__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_t->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_t->__pyx_base.__pyx_base.__pyx_base.policy));
      __pyx_v_t->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/typeattr.pxi":89
 *             _type_cache[policy][<uintptr_t>symbol] = t
 *             t.policy = policy
 *             t.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             t.value = symbol.s.value
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)
 */
      __pyx_v_t->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/typeattr.pxi":90
 *             t.policy = policy
 *             t.key = <uintptr_t>symbol
 *             t.value = symbol.s.value             # <<<<<<<<<<<<<<
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE
 */
      __pyx_t_10 = __pyx_v_symbol->s.value;
      __pyx_v_t->value = __pyx_t_10;

      /* "setools/policyrep/typeattr.pxi":91
 *             t.key = <uintptr_t>symbol
 *             t.value = symbol.s.value
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE
 *             t._aliases = policy.type_alias_map[symbol.s.value]
 */
      __pyx_t_5 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 91, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_v_t->__pyx_base.__pyx_base.name);
      __Pyx_DECREF(__pyx_v_t->__pyx_base.__pyx_base.name);
      __pyx_v_t->__pyx_base.__pyx_base.name = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":92
 *             t.value = symbol.s.value
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE             # <<<<<<<<<<<<<<
 *             t._aliases = policy.type_alias_map[symbol.s.value]
 *             return t
 */
      __pyx_t_5 = __Pyx_PyInt_From_int(((__pyx_v_symbol->flags != 0) & TYPE_FLAGS_PERMISSIVE)); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 92, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_v_t->ispermissive);
      __Pyx_DECREF(__pyx_v_t->ispermissive);
      __pyx_v_t->ispermissive = __pyx_t_5;
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":93
 *             t.name = policy.type_value_to_name(symbol.s.value - 1)
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE
 *             t._aliases = policy.type_alias_map[symbol.s.value]             # <<<<<<<<<<<<<<
 *             return t
 * 
 */
      if (unlikely(__pyx_v_policy->type_alias_map == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(20, 93, __pyx_L6_except_error)
      }
      __pyx_t_5 = __Pyx_PyInt_From_uint32_t(__pyx_v_symbol->s.value); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 93, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_policy->type_alias_map, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(20, 93, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (!(likely(PyList_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(20, 93, __pyx_L6_except_error)
      __Pyx_GIVEREF(__pyx_t_11);
      __Pyx_GOTREF(__pyx_v_t->_aliases);
      __Pyx_DECREF(__pyx_v_t->_aliases);
      __pyx_v_t->_aliases = ((PyObject*)__pyx_t_11);
      __pyx_t_11 = 0;

      /* "setools/policyrep/typeattr.pxi":94
 *             t.ispermissive = <bint>symbol.flags & sepol.TYPE_FLAGS_PERMISSIVE
 *             t._aliases = policy.type_alias_map[symbol.s.value]
 *             return t             # <<<<<<<<<<<<<<
 * 
 *     cdef inline void _load_attributes(self):
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_t));
      __pyx_r = __pyx_v_t;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;
    __pyx_L6_except_error:;

    /* "setools/policyrep/typeattr.pxi":83
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _type_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L0;
  }

  /* "setools/policyrep/typeattr.pxi":76
 * 
 *     @staticmethod
 *     cdef inline Type factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Type objects."""
 *         cdef Type t
 */

  /* function exit code */
  __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_11);
  __Pyx_AddTraceback("setools.policyrep.Type.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_t);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":96
 *             return t
 * 
 *     cdef inline void _load_attributes(self):             # <<<<<<<<<<<<<<
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 */

static CYTHON_INLINE void __pyx_f_7setools_9policyrep_4Type__load_attributes(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  type_datum_t *__pyx_v_symbol;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_load_attributes", 0);

  /* "setools/policyrep/typeattr.pxi":98
 *     cdef inline void _load_attributes(self):
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._attrs is None:
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 */
  __pyx_v_symbol = ((type_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key);

  /* "setools/policyrep/typeattr.pxi":99
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._attrs is None:             # <<<<<<<<<<<<<<
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 */
  __pyx_t_1 = (__pyx_v_self->_attrs == ((PyObject*)Py_None));
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/typeattr.pxi":100
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._attrs is None:
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PySequence_List(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->_attrs);
    __Pyx_DECREF(__pyx_v_self->_attrs);
    __pyx_v_self->_attrs = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/typeattr.pxi":99
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._attrs is None:             # <<<<<<<<<<<<<<
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 */
  }

  /* "setools/policyrep/typeattr.pxi":96
 *             return t
 * 
 *     cdef inline void _load_attributes(self):             # <<<<<<<<<<<<<<
 *         """Helper method to load attributes."""
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("setools.policyrep.Type._load_attributes", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}
static PyObject *__pyx_gb_7setools_9policyrep_4Type_2generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/typeattr.pxi":102
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member types."""
 *         yield self
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_1expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_4Type_expand[] = "Generator that expands this into its member types.";
static PyObject *__pyx_pw_7setools_9policyrep_4Type_1expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_expand(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Type_expand(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_47_expand(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_47_expand, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(20, 102, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4Type_2generator11, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_expand, __pyx_n_s_Type_expand, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(20, 102, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.Type.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4Type_2generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(20, 102, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":104
 *     def expand(self):
 *         """Generator that expands this into its member types."""
 *         yield self             # <<<<<<<<<<<<<<
 * 
 *     def attributes(self):
 */
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  /* return from generator, yielding value */
  __pyx_generator->resume_label = 1;
  return __pyx_r;
  __pyx_L4_resume_from_yield:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(20, 104, __pyx_L1_error)
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "setools/policyrep/typeattr.pxi":102
 *             self._attrs = list(TypeAttributeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this into its member types."""
 *         yield self
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":106
 *         yield self
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_4attributes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_4Type_3attributes[] = "Generator that yields all attributes for this type.";
static PyObject *__pyx_pw_7setools_9policyrep_4Type_4attributes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("attributes (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_3attributes(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Type_3attributes(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("attributes", 0);

  /* "setools/policyrep/typeattr.pxi":108
 *     def attributes(self):
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()             # <<<<<<<<<<<<<<
 *         return iter(self._attrs)
 * 
 */
  __pyx_f_7setools_9policyrep_4Type__load_attributes(__pyx_v_self);

  /* "setools/policyrep/typeattr.pxi":109
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()
 *         return iter(self._attrs)             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_attrs;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":106
 *         yield self
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         self._load_attributes()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Type.attributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":111
 *         return iter(self._attrs)
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         return iter(self._aliases)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_6aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_4Type_5aliases[] = "Generator that yields all aliases for this type.";
static PyObject *__pyx_pw_7setools_9policyrep_4Type_6aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_5aliases(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Type_5aliases(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/typeattr.pxi":113
 *     def aliases(self):
 *         """Generator that yields all aliases for this type."""
 *         return iter(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":111
 *         return iter(self._attrs)
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         return iter(self._aliases)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Type.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":115
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Type_8statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_7statement(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Type_7statement(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  size_t __pyx_v_count;
  PyObject *__pyx_v_stmt = 0;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/typeattr.pxi":120
 *             str stmt
 * 
 *         self._load_attributes()             # <<<<<<<<<<<<<<
 *         count = len(self._aliases)
 * 
 */
  __pyx_f_7setools_9policyrep_4Type__load_attributes(__pyx_v_self);

  /* "setools/policyrep/typeattr.pxi":121
 * 
 *         self._load_attributes()
 *         count = len(self._aliases)             # <<<<<<<<<<<<<<
 * 
 *         stmt = "type {0}".format(self.name)
 */
  __pyx_t_1 = __pyx_v_self->_aliases;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(20, 121, __pyx_L1_error)
  }
  __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(20, 121, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_count = __pyx_t_2;

  /* "setools/policyrep/typeattr.pxi":123
 *         count = len(self._aliases)
 * 
 *         stmt = "type {0}".format(self.name)             # <<<<<<<<<<<<<<
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_type_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_self->__pyx_base.__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(20, 123, __pyx_L1_error)
  __pyx_v_stmt = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":124
 * 
 *         stmt = "type {0}".format(self.name)
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 */
  __pyx_t_5 = ((__pyx_v_count > 1) != 0);
  if (__pyx_t_5) {

    /* "setools/policyrep/typeattr.pxi":125
 *         stmt = "type {0}".format(self.name)
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))             # <<<<<<<<<<<<<<
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_alias_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __pyx_v_self->_aliases;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__3, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(20, 125, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "setools/policyrep/typeattr.pxi":124
 * 
 *         stmt = "type {0}".format(self.name)
 *         if count > 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/typeattr.pxi":126
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {0}".format(self._aliases[0])
 *         for attr in self._attrs:
 */
  __pyx_t_5 = ((__pyx_v_count == 1) != 0);
  if (__pyx_t_5) {

    /* "setools/policyrep/typeattr.pxi":127
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])             # <<<<<<<<<<<<<<
 *         for attr in self._attrs:
 *             stmt += ", {0}".format(attr)
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_alias_0_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(__pyx_v_self->_aliases == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(20, 127, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_self->_aliases, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(20, 127, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/typeattr.pxi":126
 *         if count > 1:
 *             stmt += " alias {{ {0} }}".format(' '.join(self._aliases))
 *         elif count == 1:             # <<<<<<<<<<<<<<
 *             stmt += " alias {0}".format(self._aliases[0])
 *         for attr in self._attrs:
 */
  }
  __pyx_L3:;

  /* "setools/policyrep/typeattr.pxi":128
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])
 *         for attr in self._attrs:             # <<<<<<<<<<<<<<
 *             stmt += ", {0}".format(attr)
 *         stmt += ";"
 */
  if (unlikely(__pyx_v_self->_attrs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(20, 128, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_self->_attrs; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(20, 128, __pyx_L1_error)
    #else
    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/typeattr.pxi":129
 *             stmt += " alias {0}".format(self._aliases[0])
 *         for attr in self._attrs:
 *             stmt += ", {0}".format(attr)             # <<<<<<<<<<<<<<
 *         stmt += ";"
 *         return stmt
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_8, __pyx_n_s_format_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_v_attr) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_attr);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 129, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(20, 129, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "setools/policyrep/typeattr.pxi":128
 *         elif count == 1:
 *             stmt += " alias {0}".format(self._aliases[0])
 *         for attr in self._attrs:             # <<<<<<<<<<<<<<
 *             stmt += ", {0}".format(attr)
 *         stmt += ";"
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":130
 *         for attr in self._attrs:
 *             stmt += ", {0}".format(attr)
 *         stmt += ";"             # <<<<<<<<<<<<<<
 *         return stmt
 * 
 */
  __pyx_t_1 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_stmt, __pyx_kp_u__32); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":131
 *             stmt += ", {0}".format(attr)
 *         stmt += ";"
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":115
 *         return iter(self._aliases)
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             size_t count
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Type.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":68
 * 
 *     cdef:
 *         readonly object ispermissive             # <<<<<<<<<<<<<<
 *         list _aliases
 *         list _attrs
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_12ispermissive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Type_12ispermissive_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_12ispermissive___get__(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Type_12ispermissive___get__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ispermissive);
  __pyx_r = __pyx_v_self->ispermissive;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Type_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_9__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Type_9__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._aliases, self._attrs, self.ispermissive, self.key, self.name, self.policy, self.value)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_uint32_t(__pyx_v_self->value); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_self->_aliases);
  __Pyx_GIVEREF(__pyx_v_self->_aliases);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->_aliases);
  __Pyx_INCREF(__pyx_v_self->_attrs);
  __Pyx_GIVEREF(__pyx_v_self->_attrs);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->_attrs);
  __Pyx_INCREF(__pyx_v_self->ispermissive);
  __Pyx_GIVEREF(__pyx_v_self->ispermissive);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_self->ispermissive);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_3, 5, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 6, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._aliases, self._attrs, self.ispermissive, self.key, self.name, self.policy, self.value)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self._aliases, self._attrs, self.ispermissive, self.key, self.name, self.policy, self.value)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._aliases, self._attrs, self.ispermissive, self.key, self.name, self.policy, self.value)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, None), state
 */
  /*else*/ {
    __pyx_t_4 = (__pyx_v_self->_aliases != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->_attrs != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (__pyx_v_self->ispermissive != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->__pyx_base.__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_4 = (__pyx_t_6 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_5 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_6 = (__pyx_t_4 != 0);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, None), state
 *     else:
 */
  __pyx_t_5 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_5) {

    /* "(tree fragment)":13
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_26029694);
    __Pyx_GIVEREF(__pyx_int_26029694);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_26029694);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._aliases is not None or self._attrs is not None or self.ispermissive is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, None), state
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Type); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_26029694);
    __Pyx_GIVEREF(__pyx_int_26029694);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_26029694);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Type.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4Type_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4Type_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4Type_11__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_4Type_11__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Type__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Type, (type(self), 0x18d2e7e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Type__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Type.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":141
 * 
 *     @staticmethod
 *     cdef inline TypeAttribute factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttribute objects."""
 *         cdef TypeAttribute a
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_f_7setools_9policyrep_13TypeAttribute_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_a = 0;
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":144
 *         """Factory function for creating TypeAttribute objects."""
 *         cdef TypeAttribute a
 *         if symbol.flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *             raise ValueError("{0} is not an attribute".format(
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 */
  __pyx_t_1 = ((__pyx_v_symbol->flavor != TYPE_ATTRIB) != 0);
  if (unlikely(__pyx_t_1)) {

    /* "setools/policyrep/typeattr.pxi":145
 *         cdef TypeAttribute a
 *         if symbol.flavor != sepol.TYPE_ATTRIB:
 *             raise ValueError("{0} is not an attribute".format(             # <<<<<<<<<<<<<<
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_not_an_attribute, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "setools/policyrep/typeattr.pxi":146
 *         if symbol.flavor != sepol.TYPE_ATTRIB:
 *             raise ValueError("{0} is not an attribute".format(
 *                 policy.type_value_to_name(symbol.s.value - 1)))             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
    __pyx_t_4 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __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_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "setools/policyrep/typeattr.pxi":145
 *         cdef TypeAttribute a
 *         if symbol.flavor != sepol.TYPE_ATTRIB:
 *             raise ValueError("{0} is not an attribute".format(             # <<<<<<<<<<<<<<
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(20, 145, __pyx_L1_error)

    /* "setools/policyrep/typeattr.pxi":144
 *         """Factory function for creating TypeAttribute objects."""
 *         cdef TypeAttribute a
 *         if symbol.flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *             raise ValueError("{0} is not an attribute".format(
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 */
  }

  /* "setools/policyrep/typeattr.pxi":148
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    /*try:*/ {

      /* "setools/policyrep/typeattr.pxi":149
 * 
 *         try:
 *             return _typeattr_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             a = TypeAttribute.__new__(TypeAttribute)
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__typeattr_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 149, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, ((uintptr_t)__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 149, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_7setools_9policyrep_TypeAttribute))))) __PYX_ERR(20, 149, __pyx_L4_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_t_2);
      __pyx_t_2 = 0;
      goto __pyx_L8_try_return;

      /* "setools/policyrep/typeattr.pxi":148
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/typeattr.pxi":150
 *         try:
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             a = TypeAttribute.__new__(TypeAttribute)
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a
 */
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_9) {
      __Pyx_AddTraceback("setools.policyrep.TypeAttribute.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) __PYX_ERR(20, 150, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_t_4);

      /* "setools/policyrep/typeattr.pxi":151
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             a = TypeAttribute.__new__(TypeAttribute)             # <<<<<<<<<<<<<<
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a
 *             a.policy = policy
 */
      __pyx_t_5 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_TypeAttribute(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_TypeAttribute), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 151, __pyx_L6_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      __pyx_v_a = ((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":152
 *         except KeyError:
 *             a = TypeAttribute.__new__(TypeAttribute)
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a             # <<<<<<<<<<<<<<
 *             a.policy = policy
 *             a.key = <uintptr_t>symbol
 */
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__typeattr_cache, ((PyObject *)__pyx_v_policy)); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 152, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_5, ((uintptr_t)__pyx_v_symbol), ((PyObject *)__pyx_v_a), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(20, 152, __pyx_L6_except_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":153
 *             a = TypeAttribute.__new__(TypeAttribute)
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a
 *             a.policy = policy             # <<<<<<<<<<<<<<
 *             a.key = <uintptr_t>symbol
 *             a.name = policy.type_value_to_name(symbol.s.value - 1)
 */
      __Pyx_INCREF(((PyObject *)__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_a->__pyx_base.__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_a->__pyx_base.__pyx_base.__pyx_base.policy));
      __pyx_v_a->__pyx_base.__pyx_base.__pyx_base.policy = __pyx_v_policy;

      /* "setools/policyrep/typeattr.pxi":154
 *             _typeattr_cache[policy][<uintptr_t>symbol] = a
 *             a.policy = policy
 *             a.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             a.name = policy.type_value_to_name(symbol.s.value - 1)
 *             return a
 */
      __pyx_v_a->__pyx_base.__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

      /* "setools/policyrep/typeattr.pxi":155
 *             a.policy = policy
 *             a.key = <uintptr_t>symbol
 *             a.name = policy.type_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 *             return a
 * 
 */
      __pyx_t_5 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name(__pyx_v_policy, (__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 155, __pyx_L6_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_v_a->__pyx_base.__pyx_base.name);
      __Pyx_DECREF(__pyx_v_a->__pyx_base.__pyx_base.name);
      __pyx_v_a->__pyx_base.__pyx_base.name = ((PyObject*)__pyx_t_5);
      __pyx_t_5 = 0;

      /* "setools/policyrep/typeattr.pxi":156
 *             a.key = <uintptr_t>symbol
 *             a.name = policy.type_value_to_name(symbol.s.value - 1)
 *             return a             # <<<<<<<<<<<<<<
 * 
 *     cdef load_types(self):
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_a));
      __pyx_r = __pyx_v_a;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L7_except_return;
    }
    goto __pyx_L6_except_error;
    __pyx_L6_except_error:;

    /* "setools/policyrep/typeattr.pxi":148
 *                 policy.type_value_to_name(symbol.s.value - 1)))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             return _typeattr_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L1_error;
    __pyx_L8_try_return:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L0;
    __pyx_L7_except_return:;
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L0;
  }

  /* "setools/policyrep/typeattr.pxi":141
 * 
 *     @staticmethod
 *     cdef inline TypeAttribute factory(SELinuxPolicy policy, sepol.type_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttribute objects."""
 *         cdef TypeAttribute a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_a);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":158
 *             return a
 * 
 *     cdef load_types(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:
 */

static PyObject *__pyx_f_7setools_9policyrep_13TypeAttribute_load_types(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  type_datum_t *__pyx_v_symbol;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("load_types", 0);

  /* "setools/policyrep/typeattr.pxi":159
 * 
 *     cdef load_types(self):
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key             # <<<<<<<<<<<<<<
 *         if self._types is None:
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 */
  __pyx_v_symbol = ((type_datum_t *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key);

  /* "setools/policyrep/typeattr.pxi":160
 *     cdef load_types(self):
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:             # <<<<<<<<<<<<<<
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 */
  __pyx_t_1 = (__pyx_v_self->_types == ((PyObject*)Py_None));
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "setools/policyrep/typeattr.pxi":161
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))             # <<<<<<<<<<<<<<
 * 
 *     def __contains__(self, other):
 */
    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_3), (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 161, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PySequence_List(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 161, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->_types);
    __Pyx_DECREF(__pyx_v_self->_types);
    __pyx_v_self->_types = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "setools/policyrep/typeattr.pxi":160
 *     cdef load_types(self):
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:             # <<<<<<<<<<<<<<
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 */
  }

  /* "setools/policyrep/typeattr.pxi":158
 *             return a
 * 
 *     cdef load_types(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *symbol = <sepol.type_datum_t *>self.key
 *         if self._types is None:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.load_types", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":163
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return other in self._types
 */

/* Python wrapper */
static int __pyx_pw_7setools_9policyrep_13TypeAttribute_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static int __pyx_pw_7setools_9policyrep_13TypeAttribute_1__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute___contains__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self), ((PyObject *)__pyx_v_other));

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

static int __pyx_pf_7setools_9policyrep_13TypeAttribute___contains__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__contains__", 0);

  /* "setools/policyrep/typeattr.pxi":164
 * 
 *     def __contains__(self, other):
 *         self.load_types()             # <<<<<<<<<<<<<<
 *         return other in self._types
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->load_types(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":165
 *     def __contains__(self, other):
 *         self.load_types()
 *         return other in self._types             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
 */
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_other, __pyx_v_self->_types, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(20, 165, __pyx_L1_error)
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":163
 *             self._types = list(TypeEbitmapIterator.factory(self.policy, &symbol.types))
 * 
 *     def __contains__(self, other):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return other in self._types
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":167
 *         return other in self._types
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return iter(self._types)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_3__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_3__iter__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_2__iter__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_2__iter__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__iter__", 0);

  /* "setools/policyrep/typeattr.pxi":168
 * 
 *     def __iter__(self):
 *         self.load_types()             # <<<<<<<<<<<<<<
 *         return iter(self._types)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->load_types(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":169
 *     def __iter__(self):
 *         self.load_types()
 *         return iter(self._types)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_types;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":167
 *         return other in self._types
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return iter(self._types)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":171
 *         return iter(self._types)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return len(self._types)
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_4__len__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_13TypeAttribute_4__len__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/typeattr.pxi":172
 * 
 *     def __len__(self):
 *         self.load_types()             # <<<<<<<<<<<<<<
 *         return len(self._types)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->load_types(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":173
 *     def __len__(self):
 *         self.load_types()
 *         return len(self._types)             # <<<<<<<<<<<<<<
 * 
 *     def expand(self):
 */
  __pyx_t_1 = __pyx_v_self->_types;
  __Pyx_INCREF(__pyx_t_1);
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(20, 173, __pyx_L1_error)
  }
  __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(20, 173, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":171
 *         return iter(self._types)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         self.load_types()
 *         return len(self._types)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":175
 *         return len(self._types)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_7expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13TypeAttribute_6expand[] = "Generator that expands this attribute into its member types.";
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_7expand(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("expand (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_6expand(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_6expand(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expand", 0);

  /* "setools/policyrep/typeattr.pxi":177
 *     def expand(self):
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()             # <<<<<<<<<<<<<<
 *         return iter(self._types)
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->load_types(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":178
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()
 *         return iter(self._types)             # <<<<<<<<<<<<<<
 * 
 *     def attributes(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_self->_types;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":175
 *         return len(self._types)
 * 
 *     def expand(self):             # <<<<<<<<<<<<<<
 *         """Generator that expands this attribute into its member types."""
 *         self.load_types()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.expand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":180
 *         return iter(self._types)
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise SymbolUseError("{0} is an attribute, thus does not have attributes.".format(
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_9attributes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13TypeAttribute_8attributes[] = "Generator that yields all attributes for this type.";
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_9attributes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("attributes (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_8attributes(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_8attributes(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("attributes", 0);

  /* "setools/policyrep/typeattr.pxi":182
 *     def attributes(self):
 *         """Generator that yields all attributes for this type."""
 *         raise SymbolUseError("{0} is an attribute, thus does not have attributes.".format(             # <<<<<<<<<<<<<<
 *                              self.name))
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_SymbolUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_an_attribute_thus_does_not, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/typeattr.pxi":183
 *         """Generator that yields all attributes for this type."""
 *         raise SymbolUseError("{0} is an attribute, thus does not have attributes.".format(
 *                              self.name))             # <<<<<<<<<<<<<<
 * 
 *     def aliases(self):
 */
  __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base.__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 182, __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 && 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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 182, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":180
 *         return iter(self._types)
 * 
 *     def attributes(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all attributes for this type."""
 *         raise SymbolUseError("{0} is an attribute, thus does not have attributes.".format(
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.attributes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":185
 *                              self.name))
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise SymbolUseError("{0} is an attribute, thus does not have aliases.".format(self.name))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_11aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_7setools_9policyrep_13TypeAttribute_10aliases[] = "Generator that yields all aliases for this type.";
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_11aliases(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("aliases (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_10aliases(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_10aliases(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("aliases", 0);

  /* "setools/policyrep/typeattr.pxi":187
 *     def aliases(self):
 *         """Generator that yields all aliases for this type."""
 *         raise SymbolUseError("{0} is an attribute, thus does not have aliases.".format(self.name))             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_SymbolUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_an_attribute_thus_does_not_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 187, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base.__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 187, __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 && 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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 187, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":185
 *                              self.name))
 * 
 *     def aliases(self):             # <<<<<<<<<<<<<<
 *         """Generator that yields all aliases for this type."""
 *         raise SymbolUseError("{0} is an attribute, thus does not have aliases.".format(self.name))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":190
 * 
 *     @property
 *     def ispermissive(self):             # <<<<<<<<<<<<<<
 *         """(T/F) the type is permissive."""
 *         raise SymbolUseError("{0} is an attribute, thus cannot be permissive.".format(self.name))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_12ispermissive_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_12ispermissive_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_12ispermissive___get__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_12ispermissive___get__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/typeattr.pxi":192
 *     def ispermissive(self):
 *         """(T/F) the type is permissive."""
 *         raise SymbolUseError("{0} is an attribute, thus cannot be permissive.".format(self.name))             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_SymbolUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_is_an_attribute_thus_cannot_b, __pyx_n_s_format_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 192, __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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->__pyx_base.__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 192, __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 && 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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(20, 192, __pyx_L1_error)

  /* "setools/policyrep/typeattr.pxi":190
 * 
 *     @property
 *     def ispermissive(self):             # <<<<<<<<<<<<<<
 *         """(T/F) the type is permissive."""
 *         raise SymbolUseError("{0} is an attribute, thus cannot be permissive.".format(self.name))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.ispermissive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":194
 *         raise SymbolUseError("{0} is an attribute, thus cannot be permissive.".format(self.name))
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "attribute {0};".format(self.name)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_13statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_13statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_12statement(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_12statement(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/typeattr.pxi":195
 * 
 *     def statement(self):
 *         return "attribute {0};".format(self.name)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_attribute_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->__pyx_base.__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":194
 *         raise SymbolUseError("{0} is an attribute, thus cannot be permissive.".format(self.name))
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "attribute {0};".format(self.name)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_15__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_14__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_14__reduce_cython__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._types, self.key, self.name, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->_types);
  __Pyx_GIVEREF(__pyx_v_self->_types);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->_types);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->__pyx_base.__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._types, self.key, self.name, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->_types != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->__pyx_base.__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_TypeAttribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_162073369);
    __Pyx_GIVEREF(__pyx_int_162073369);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_162073369);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._types is not None or self.name is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, None), state
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_TypeAttribute); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_162073369);
    __Pyx_GIVEREF(__pyx_int_162073369);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_162073369);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13TypeAttribute_17__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13TypeAttribute_16__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_13TypeAttribute_16__setstate_cython__(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_TypeAttribute__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_TypeAttribute, (type(self), 0x9a90b19, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_TypeAttribute__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttribute.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":201
 * # Hash Table Iterator Classes
 * #
 * cdef inline bint type_is_alias(sepol.type_datum_t *datum):             # <<<<<<<<<<<<<<
 *     """Determine if the type datum is an alias."""
 *     return (datum.primary == 0 and datum.flavor == sepol.TYPE_TYPE) \
 */

static CYTHON_INLINE int __pyx_f_7setools_9policyrep_type_is_alias(type_datum_t *__pyx_v_datum) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("type_is_alias", 0);

  /* "setools/policyrep/typeattr.pxi":203
 * cdef inline bint type_is_alias(sepol.type_datum_t *datum):
 *     """Determine if the type datum is an alias."""
 *     return (datum.primary == 0 and datum.flavor == sepol.TYPE_TYPE) \             # <<<<<<<<<<<<<<
 *             or datum.flavor == sepol.TYPE_ALIAS
 * 
 */
  __pyx_t_2 = ((__pyx_v_datum->primary == 0) != 0);
  if (!__pyx_t_2) {
    goto __pyx_L4_next_or;
  } else {
  }
  __pyx_t_2 = ((__pyx_v_datum->flavor == TYPE_TYPE) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_L4_next_or:;

  /* "setools/policyrep/typeattr.pxi":204
 *     """Determine if the type datum is an alias."""
 *     return (datum.primary == 0 and datum.flavor == sepol.TYPE_TYPE) \
 *             or datum.flavor == sepol.TYPE_ALIAS             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = ((__pyx_v_datum->flavor == TYPE_ALIAS) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":201
 * # Hash Table Iterator Classes
 * #
 * cdef inline bint type_is_alias(sepol.type_datum_t *datum):             # <<<<<<<<<<<<<<
 *     """Determine if the type datum is an alias."""
 *     return (datum.primary == 0 and datum.flavor == sepol.TYPE_TYPE) \
 */

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

/* "setools/policyrep/typeattr.pxi":212
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = TypeHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_19TypeHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":214
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = TypeHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":215
 *         """Factory function for creating Role iterators."""
 *         i = TypeHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":216
 *         i = TypeHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/typeattr.pxi":217
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":218
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":212
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = TypeHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":220
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":222
 *     def __next__(self):
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()             # <<<<<<<<<<<<<<
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 222, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 222, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":224
 *         super().__next__()
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum             # <<<<<<<<<<<<<<
 *         while datum.flavor != sepol.TYPE_TYPE or type_is_alias(datum):
 *             super().__next__()
 */
  __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum);

  /* "setools/policyrep/typeattr.pxi":225
 * 
 *         datum = <sepol.type_datum_t *> self.curr.datum
 *         while datum.flavor != sepol.TYPE_TYPE or type_is_alias(datum):             # <<<<<<<<<<<<<<
 *             super().__next__()
 *             datum = <sepol.type_datum_t *> self.curr.datum
 */
  while (1) {
    __pyx_t_5 = ((__pyx_v_datum->flavor != TYPE_TYPE) != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_f_7setools_9policyrep_type_is_alias(__pyx_v_datum) != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_4) break;

    /* "setools/policyrep/typeattr.pxi":226
 *         datum = <sepol.type_datum_t *> self.curr.datum
 *         while datum.flavor != sepol.TYPE_TYPE or type_is_alias(datum):
 *             super().__next__()             # <<<<<<<<<<<<<<
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
    __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 226, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 226, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "setools/policyrep/typeattr.pxi":227
 *         while datum.flavor != sepol.TYPE_TYPE or type_is_alias(datum):
 *             super().__next__()
 *             datum = <sepol.type_datum_t *> self.curr.datum             # <<<<<<<<<<<<<<
 * 
 *         return Type.factory(self.policy, datum)
 */
    __pyx_v_datum = ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum);
  }

  /* "setools/policyrep/typeattr.pxi":229
 *             datum = <sepol.type_datum_t *> self.curr.datum
 * 
 *         return Type.factory(self.policy, datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_datum)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":220
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         super().__next__()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":231
 *         return Type.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  type_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/typeattr.pxi":234
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/typeattr.pxi":235
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/typeattr.pxi":237
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_1 = ((__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/typeattr.pxi":238
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/typeattr.pxi":239
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):
 */
    while (1) {
      __pyx_t_1 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/typeattr.pxi":240
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):
 *                     count += 1
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_2 = ((type_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/typeattr.pxi":241
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      __pyx_t_3 = ((__pyx_v_datum != NULL) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = ((__pyx_v_datum->flavor == TYPE_TYPE) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = ((!(__pyx_f_7setools_9policyrep_type_is_alias(__pyx_v_datum) != 0)) != 0);
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/typeattr.pxi":242
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/typeattr.pxi":241
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_TYPE and not type_is_alias(datum):             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      }

      /* "setools/policyrep/typeattr.pxi":244
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/typeattr.pxi":246
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/typeattr.pxi":248
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":231
 *         return Type.factory(self.policy, datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

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

/* "setools/policyrep/typeattr.pxi":250
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/typeattr.pxi":251
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 251, __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_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 251, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":254
 * 
 *         # advance over any attributes or aliases
 *         while (<sepol.type_datum_t *> self.node.datum).flavor != sepol.TYPE_TYPE:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  while (1) {
    __pyx_t_4 = ((((type_datum_t *)__pyx_v_self->__pyx_base.node->datum)->flavor != TYPE_TYPE) != 0);
    if (!__pyx_t_4) break;

    /* "setools/policyrep/typeattr.pxi":255
 *         # advance over any attributes or aliases
 *         while (<sepol.type_datum_t *> self.node.datum).flavor != sepol.TYPE_TYPE:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    ((struct __pyx_vtabstruct_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));
  }

  /* "setools/policyrep/typeattr.pxi":250
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__91, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_19TypeHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__92, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":263
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = TypeAttributeHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":265
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating Role iterators."""
 *         i = TypeAttributeHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":266
 *         """Factory function for creating Role iterators."""
 *         i = TypeAttributeHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":267
 *         i = TypeAttributeHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/typeattr.pxi":268
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":269
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":263
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Role iterators."""
 *         i = TypeAttributeHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":271
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":272
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:
 *             super().__next__()
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 272, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 272, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":273
 *     def __next__(self):
 *         super().__next__()
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *             super().__next__()
 * 
 */
  while (1) {
    __pyx_t_4 = ((((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum)->flavor != TYPE_ATTRIB) != 0);
    if (!__pyx_t_4) break;

    /* "setools/policyrep/typeattr.pxi":274
 *         super().__next__()
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:
 *             super().__next__()             # <<<<<<<<<<<<<<
 * 
 *         return TypeAttribute.factory(self.policy, <sepol.type_datum_t *> self.curr.datum)
 */
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
    __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 274, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 274, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "setools/policyrep/typeattr.pxi":276
 *             super().__next__()
 * 
 *         return TypeAttribute.factory(self.policy, <sepol.type_datum_t *> self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_13TypeAttribute_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((type_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":271
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         while (<sepol.type_datum_t *> self.curr.datum).flavor != sepol.TYPE_ATTRIB:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":278
 *         return TypeAttribute.factory(self.policy, <sepol.type_datum_t *> self.curr.datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_2__len__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self));

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

static Py_ssize_t __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_2__len__(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self) {
  type_datum_t *__pyx_v_datum;
  hashtab_node_t *__pyx_v_node;
  uint32_t __pyx_v_bucket;
  size_t __pyx_v_count;
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  type_datum_t *__pyx_t_2;
  int __pyx_t_3;
  struct hashtab_node *__pyx_t_4;
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "setools/policyrep/typeattr.pxi":281
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0             # <<<<<<<<<<<<<<
 *         cdef size_t count = 0
 * 
 */
  __pyx_v_bucket = 0;

  /* "setools/policyrep/typeattr.pxi":282
 *         cdef sepol.hashtab_node_t *node
 *         cdef uint32_t bucket = 0
 *         cdef size_t count = 0             # <<<<<<<<<<<<<<
 * 
 *         while bucket < self.table[0].size:
 */
  __pyx_v_count = 0;

  /* "setools/policyrep/typeattr.pxi":284
 *         cdef size_t count = 0
 * 
 *         while bucket < self.table[0].size:             # <<<<<<<<<<<<<<
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 */
  while (1) {
    __pyx_t_1 = ((__pyx_v_bucket < (__pyx_v_self->__pyx_base.table[0])->size) != 0);
    if (!__pyx_t_1) break;

    /* "setools/policyrep/typeattr.pxi":285
 * 
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]             # <<<<<<<<<<<<<<
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 */
    __pyx_v_node = ((__pyx_v_self->__pyx_base.table[0])->htable[__pyx_v_bucket]);

    /* "setools/policyrep/typeattr.pxi":286
 *         while bucket < self.table[0].size:
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:             # <<<<<<<<<<<<<<
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:
 */
    while (1) {
      __pyx_t_1 = ((__pyx_v_node != NULL) != 0);
      if (!__pyx_t_1) break;

      /* "setools/policyrep/typeattr.pxi":287
 *             node = self.table[0].htable[bucket]
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL             # <<<<<<<<<<<<<<
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:
 *                     count += 1
 */
      if ((__pyx_v_node != 0)) {
        __pyx_t_2 = ((type_datum_t *)__pyx_v_node->datum);
      } else {
        __pyx_t_2 = NULL;
      }
      __pyx_v_datum = __pyx_t_2;

      /* "setools/policyrep/typeattr.pxi":288
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      __pyx_t_3 = ((__pyx_v_datum != NULL) != 0);
      if (__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L8_bool_binop_done;
      }
      __pyx_t_3 = ((__pyx_v_datum->flavor == TYPE_ATTRIB) != 0);
      __pyx_t_1 = __pyx_t_3;
      __pyx_L8_bool_binop_done:;
      if (__pyx_t_1) {

        /* "setools/policyrep/typeattr.pxi":289
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:
 *                     count += 1             # <<<<<<<<<<<<<<
 * 
 *                 node = node.next
 */
        __pyx_v_count = (__pyx_v_count + 1);

        /* "setools/policyrep/typeattr.pxi":288
 *             while node != NULL:
 *                 datum = <sepol.type_datum_t *>node.datum if node else NULL
 *                 if datum != NULL and datum.flavor == sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *                     count += 1
 * 
 */
      }

      /* "setools/policyrep/typeattr.pxi":291
 *                     count += 1
 * 
 *                 node = node.next             # <<<<<<<<<<<<<<
 * 
 *             bucket += 1
 */
      __pyx_t_4 = __pyx_v_node->next;
      __pyx_v_node = __pyx_t_4;
    }

    /* "setools/policyrep/typeattr.pxi":293
 *                 node = node.next
 * 
 *             bucket += 1             # <<<<<<<<<<<<<<
 * 
 *         return count
 */
    __pyx_v_bucket = (__pyx_v_bucket + 1);
  }

  /* "setools/policyrep/typeattr.pxi":295
 *             bucket += 1
 * 
 *         return count             # <<<<<<<<<<<<<<
 * 
 *     def reset(self):
 */
  __pyx_r = __pyx_v_count;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":278
 *         return TypeAttribute.factory(self.policy, <sepol.type_datum_t *> self.curr.datum)
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         cdef sepol.type_datum_t *datum
 *         cdef sepol.hashtab_node_t *node
 */

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

/* "setools/policyrep/typeattr.pxi":297
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("reset (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_4reset(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_4reset(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("reset", 0);

  /* "setools/policyrep/typeattr.pxi":298
 * 
 *     def reset(self):
 *         super().reset()             # <<<<<<<<<<<<<<
 * 
 *         # advance over any attributes or aliases
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 298, __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_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 298, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":301
 * 
 *         # advance over any attributes or aliases
 *         while self.node != NULL and (<sepol.type_datum_t *> self.node.datum).flavor != sepol.TYPE_ATTRIB:             # <<<<<<<<<<<<<<
 *             self._next_node()
 * 
 */
  while (1) {
    __pyx_t_5 = ((__pyx_v_self->__pyx_base.node != NULL) != 0);
    if (__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_5 = ((((type_datum_t *)__pyx_v_self->__pyx_base.node->datum)->flavor != TYPE_ATTRIB) != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_4) break;

    /* "setools/policyrep/typeattr.pxi":302
 *         # advance over any attributes or aliases
 *         while self.node != NULL and (<sepol.type_datum_t *> self.node.datum).flavor != sepol.TYPE_ATTRIB:
 *             self._next_node()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    ((struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._next_node(((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)__pyx_v_self));
  }

  /* "setools/policyrep/typeattr.pxi":297
 *         return count
 * 
 *     def reset(self):             # <<<<<<<<<<<<<<
 *         super().reset()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_6__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__93, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_8__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeHashtabIterator_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__94, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":313
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeEbitmapIterator."""
 *         i = TypeEbitmapIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":315
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator."""
 *         i = TypeEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = symbol
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":316
 *         """Factory function for creating TypeEbitmapIterator."""
 *         i = TypeEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = symbol
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":317
 *         i = TypeEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = symbol             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.bmap = __pyx_v_symbol;

  /* "setools/policyrep/typeattr.pxi":318
 *         i.policy = policy
 *         i.bmap = symbol
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":319
 *         i.bmap = symbol
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":313
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeEbitmapIterator."""
 *         i = TypeEbitmapIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":322
 * 
 *     @staticmethod
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
 *         if symbol.flags:
 */

static PyObject *__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_set", 0);

  /* "setools/policyrep/typeattr.pxi":324
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 */
  __pyx_t_1 = (__pyx_v_symbol->flags != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":325
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 325, __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 && 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_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_u_or_in_the_type_set_this_is_not) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_or_in_the_type_set_this_is_not);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":324
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 */
  }

  /* "setools/policyrep/typeattr.pxi":326
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 */
  __pyx_t_1 = ((__pyx_v_symbol->negset.node != NULL) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":327
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 * 
 *         return TypeEbitmapIterator.factory(policy, &symbol.types)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_warn); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 327, __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 && 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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_u_Negations_in_the_type_set_this_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_Negations_in_the_type_set_this_i);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":326
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 */
  }

  /* "setools/policyrep/typeattr.pxi":329
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 *         return TypeEbitmapIterator.factory(policy, &symbol.types)             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":322
 * 
 *     @staticmethod
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeEbitmapIterator from a type set."""
 *         if symbol.flags:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.factory_from_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":331
 *         return TypeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Type.factory(self.policy, self.policy.type_value_to_datum(self.bit))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":332
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Type.factory(self.policy, self.policy.type_value_to_datum(self.bit))
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeEbitmapIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 332, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 332, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":333
 *     def __next__(self):
 *         super().__next__()
 *         return Type.factory(self.policy, self.policy.type_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4Type_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit))); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":331
 *         return TypeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Type.factory(self.policy, self.policy.type_value_to_datum(self.bit))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__95, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_19TypeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__96, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":341
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeAttributeEbitmapIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":343
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeAttributeEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":344
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeAttributeEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":345
 *         i = TypeAttributeEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/typeattr.pxi":346
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":347
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":341
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeAttributeEbitmapIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":350
 * 
 *     @staticmethod
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:
 */

static PyObject *__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_set", 0);

  /* "setools/policyrep/typeattr.pxi":352
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 */
  __pyx_t_1 = (__pyx_v_symbol->flags != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":353
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 353, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 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 && 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_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_u_or_in_the_type_set_this_is_not) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_or_in_the_type_set_this_is_not);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 353, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":352
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 */
  }

  /* "setools/policyrep/typeattr.pxi":354
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 */
  __pyx_t_1 = ((__pyx_v_symbol->negset.node != NULL) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":355
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 * 
 *         return TypeAttributeEbitmapIterator.factory(policy, &symbol.types)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 355, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_warn); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 355, __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 && 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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_u_Negations_in_the_type_set_this_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_Negations_in_the_type_set_this_i);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 355, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":354
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 */
  }

  /* "setools/policyrep/typeattr.pxi":357
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 *         return TypeAttributeEbitmapIterator.factory(policy, &symbol.types)             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":350
 * 
 *     @staticmethod
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.factory_from_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":359
 *         return TypeAttributeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":360
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return TypeAttribute.factory(self.policy,
 *                                      self.policy.type_value_to_datum(self.bit))
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 360, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 360, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":361
 *     def __next__(self):
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,             # <<<<<<<<<<<<<<
 *                                      self.policy.type_value_to_datum(self.bit))
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/typeattr.pxi":362
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,
 *                                      self.policy.type_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_13TypeAttribute_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit))); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":359
 *         return TypeAttributeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return TypeAttribute.factory(self.policy,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__97, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_28TypeAttributeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__98, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeAttributeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":370
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeOrAttributeEbitmapIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/typeattr.pxi":372
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeOrAttributeEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":373
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeOrAttributeEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/typeattr.pxi":374
 *         i = TypeOrAttributeEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/typeattr.pxi":375
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":376
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":370
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttributeEbitmapIterator."""
 *         i = TypeOrAttributeEbitmapIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":379
 * 
 *     @staticmethod
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:
 */

static PyObject *__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory_from_set(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, type_set_t *__pyx_v_symbol) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory_from_set", 0);

  /* "setools/policyrep/typeattr.pxi":381
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 */
  __pyx_t_1 = (__pyx_v_symbol->flags != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":382
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 382, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 382, __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 && 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_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_u_or_in_the_type_set_this_is_not) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_or_in_the_type_set_this_is_not);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 382, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":381
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:             # <<<<<<<<<<<<<<
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 */
  }

  /* "setools/policyrep/typeattr.pxi":383
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 */
  __pyx_t_1 = ((__pyx_v_symbol->negset.node != NULL) != 0);
  if (__pyx_t_1) {

    /* "setools/policyrep/typeattr.pxi":384
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")             # <<<<<<<<<<<<<<
 * 
 *         return TypeOrAttributeEbitmapIterator.factory(policy, &symbol.types)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_warn); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 384, __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 && 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_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_u_Negations_in_the_type_set_this_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_Negations_in_the_type_set_this_i);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "setools/policyrep/typeattr.pxi":383
 *         if symbol.flags:
 *             warnings.warn("* or ~ in the type set; this is not implemented in SETools.")
 *         if symbol.negset.node != NULL:             # <<<<<<<<<<<<<<
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 */
  }

  /* "setools/policyrep/typeattr.pxi":386
 *             warnings.warn("Negations in the type set; this is not implemented in SETools.")
 * 
 *         return TypeOrAttributeEbitmapIterator.factory(policy, &symbol.types)             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory(__pyx_v_policy, (&__pyx_v_symbol->types)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":379
 * 
 *     @staticmethod
 *     cdef factory_from_set(SELinuxPolicy policy, sepol.type_set_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating TypeAttributeEbitmapIterator from a type set."""
 *         if symbol.flags:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.factory_from_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/typeattr.pxi":388
 *         return TypeOrAttributeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/typeattr.pxi":389
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return type_or_attr_factory(self.policy,
 *                                     self.policy.type_value_to_datum(self.bit))
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 389, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 389, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/typeattr.pxi":390
 *     def __next__(self):
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,             # <<<<<<<<<<<<<<
 *                                     self.policy.type_value_to_datum(self.bit))
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);

  /* "setools/policyrep/typeattr.pxi":391
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,
 *                                     self.policy.type_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_type_or_attr_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit))); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/typeattr.pxi":388
 *         return TypeOrAttributeEbitmapIterator.factory(policy, &symbol.types)
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return type_or_attr_factory(self.policy,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__99, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__100, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.TypeOrAttributeEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_4User_7factory_2generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/user.pxi":50
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
 */

static PyObject *__pyx_pf_7setools_9policyrep_4User_7factory_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_49_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_49_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 50, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4User_7factory_2generator32, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_User_factory_locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 50, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.User.factory.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4User_7factory_2generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L7_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 50, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy)) { __Pyx_RaiseClosureNameError("policy"); __PYX_ERR(21, 50, __pyx_L1_error) }
  __pyx_t_1 = ((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), (&__pyx_cur_scope->__pyx_outer_scope->__pyx_v_symbol->roles.roles)); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 50, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 50, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(21, 50, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 50, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(21, 50, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 50, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      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(21, 50, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;

    /* "setools/policyrep/user.pxi":51
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)
 *                        if r != "object_r")             # <<<<<<<<<<<<<<
 * 
 *             if policy.mls:
 */
    __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_r, __pyx_n_u_object_r, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(21, 51, __pyx_L1_error)
    if (__pyx_t_5) {

      /* "setools/policyrep/user.pxi":50
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
 */
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_r);
      __pyx_r = __pyx_cur_scope->__pyx_v_r;
      __Pyx_XGIVEREF(__pyx_t_1);
      __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
      __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
      __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
      __Pyx_XGIVEREF(__pyx_r);
      __Pyx_RefNannyFinishContext();
      __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
      /* return from generator, yielding value */
      __pyx_generator->resume_label = 1;
      return __pyx_r;
      __pyx_L7_resume_from_yield:;
      __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
      __pyx_cur_scope->__pyx_t_0 = 0;
      __Pyx_XGOTREF(__pyx_t_1);
      __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
      __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
      if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 50, __pyx_L1_error)

      /* "setools/policyrep/user.pxi":51
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)
 *                        if r != "object_r")             # <<<<<<<<<<<<<<
 * 
 *             if policy.mls:
 */
    }

    /* "setools/policyrep/user.pxi":50
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":34
 * 
 *     @staticmethod
 *     cdef inline User factory(SELinuxPolicy policy, sepol.user_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for constructing User objects."""
 *         cdef User u
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_User *__pyx_f_7setools_9policyrep_4User_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, user_datum_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *__pyx_cur_scope;
  struct __pyx_obj_7setools_9policyrep_User *__pyx_v_u = 0;
  struct __pyx_obj_7setools_9policyrep_User *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_48_factory(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_48_factory, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 34, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_policy = __pyx_v_policy;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_policy);
  __pyx_cur_scope->__pyx_v_symbol = __pyx_v_symbol;

  /* "setools/policyrep/user.pxi":37
 *         """Factory function for constructing User objects."""
 *         cdef User u
 *         try:             # <<<<<<<<<<<<<<
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "setools/policyrep/user.pxi":38
 *         cdef User u
 *         try:
 *             return _user_cache[policy][<uintptr_t>symbol]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             u = User.__new__(User)
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__user_cache, ((PyObject *)__pyx_cur_scope->__pyx_v_policy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(21, 38, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, ((uintptr_t)__pyx_cur_scope->__pyx_v_symbol), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 38, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_7setools_9policyrep_User))))) __PYX_ERR(21, 38, __pyx_L3_error)
      __pyx_r = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_5);
      __pyx_t_5 = 0;
      goto __pyx_L7_try_return;

      /* "setools/policyrep/user.pxi":37
 *         """Factory function for constructing User objects."""
 *         cdef User u
 *         try:             # <<<<<<<<<<<<<<
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "setools/policyrep/user.pxi":39
 *         try:
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             u = User.__new__(User)
 *             _user_cache[policy][<uintptr_t>symbol] = u
 */
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
    if (__pyx_t_6) {
      __Pyx_AddTraceback("setools.policyrep.User.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(21, 39, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_7);

      /* "setools/policyrep/user.pxi":40
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 *             u = User.__new__(User)             # <<<<<<<<<<<<<<
 *             _user_cache[policy][<uintptr_t>symbol] = u
 *             u.policy = policy
 */
      __pyx_t_8 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_User(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_User), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 40, __pyx_L5_except_error)
      __Pyx_GOTREF(((PyObject *)__pyx_t_8));
      __pyx_v_u = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/user.pxi":41
 *         except KeyError:
 *             u = User.__new__(User)
 *             _user_cache[policy][<uintptr_t>symbol] = u             # <<<<<<<<<<<<<<
 *             u.policy = policy
 *             u.key = <uintptr_t>symbol
 */
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_7setools_9policyrep__user_cache, ((PyObject *)__pyx_cur_scope->__pyx_v_policy)); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 41, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_8, ((uintptr_t)__pyx_cur_scope->__pyx_v_symbol), ((PyObject *)__pyx_v_u), uintptr_t, 0, __Pyx_PyInt_FromSize_t, 0, 0, 1) < 0)) __PYX_ERR(21, 41, __pyx_L5_except_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "setools/policyrep/user.pxi":42
 *             u = User.__new__(User)
 *             _user_cache[policy][<uintptr_t>symbol] = u
 *             u.policy = policy             # <<<<<<<<<<<<<<
 *             u.key = <uintptr_t>symbol
 *             u.name = policy.user_value_to_name(symbol.s.value - 1)
 */
      __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_policy));
      __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_policy));
      __Pyx_GOTREF(__pyx_v_u->__pyx_base.__pyx_base.policy);
      __Pyx_DECREF(((PyObject *)__pyx_v_u->__pyx_base.__pyx_base.policy));
      __pyx_v_u->__pyx_base.__pyx_base.policy = __pyx_cur_scope->__pyx_v_policy;

      /* "setools/policyrep/user.pxi":43
 *             _user_cache[policy][<uintptr_t>symbol] = u
 *             u.policy = policy
 *             u.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *             u.name = policy.user_value_to_name(symbol.s.value - 1)
 * 
 */
      __pyx_v_u->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_cur_scope->__pyx_v_symbol);

      /* "setools/policyrep/user.pxi":44
 *             u.policy = policy
 *             u.key = <uintptr_t>symbol
 *             u.name = policy.user_value_to_name(symbol.s.value - 1)             # <<<<<<<<<<<<<<
 * 
 *             # object_r is implicitly added to all roles by the compiler.
 */
      __pyx_t_8 = __pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name(__pyx_cur_scope->__pyx_v_policy, (__pyx_cur_scope->__pyx_v_symbol->s.value - 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 44, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_v_u->__pyx_base.name);
      __Pyx_DECREF(__pyx_v_u->__pyx_base.name);
      __pyx_v_u->__pyx_base.name = ((PyObject*)__pyx_t_8);
      __pyx_t_8 = 0;

      /* "setools/policyrep/user.pxi":50
 *             # and analysts don't expect to see it in results, and it
 *             # will confuse, especially for role set equality user queries.
 *             u.roles = frozenset(r for r in RoleEbitmapIterator.factory(policy, &symbol.roles.roles)             # <<<<<<<<<<<<<<
 *                        if r != "object_r")
 * 
 */
      __pyx_t_8 = __pyx_pf_7setools_9policyrep_4User_7factory_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 50, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyFrozenSet_New(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 50, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GIVEREF(__pyx_t_9);
      __Pyx_GOTREF(__pyx_v_u->roles);
      __Pyx_DECREF(__pyx_v_u->roles);
      __pyx_v_u->roles = ((PyObject*)__pyx_t_9);
      __pyx_t_9 = 0;

      /* "setools/policyrep/user.pxi":53
 *                        if r != "object_r")
 * 
 *             if policy.mls:             # <<<<<<<<<<<<<<
 *                 u._level = Level.factory(policy, &symbol.exp_dfltlevel)
 *                 u._range = Range.factory(policy, &symbol.exp_range)
 */
      __pyx_t_10 = (__pyx_cur_scope->__pyx_v_policy->mls != 0);
      if (__pyx_t_10) {

        /* "setools/policyrep/user.pxi":54
 * 
 *             if policy.mls:
 *                 u._level = Level.factory(policy, &symbol.exp_dfltlevel)             # <<<<<<<<<<<<<<
 *                 u._range = Range.factory(policy, &symbol.exp_range)
 * 
 */
        __pyx_t_9 = ((PyObject *)__pyx_cur_scope->__pyx_v_policy);
        __Pyx_INCREF(__pyx_t_9);
        __pyx_t_8 = ((PyObject *)__pyx_f_7setools_9policyrep_5Level_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_9), (&__pyx_cur_scope->__pyx_v_symbol->exp_dfltlevel))); if (unlikely(!__pyx_t_8)) __PYX_ERR(21, 54, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GIVEREF(__pyx_t_8);
        __Pyx_GOTREF(__pyx_v_u->_level);
        __Pyx_DECREF(((PyObject *)__pyx_v_u->_level));
        __pyx_v_u->_level = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_8);
        __pyx_t_8 = 0;

        /* "setools/policyrep/user.pxi":55
 *             if policy.mls:
 *                 u._level = Level.factory(policy, &symbol.exp_dfltlevel)
 *                 u._range = Range.factory(policy, &symbol.exp_range)             # <<<<<<<<<<<<<<
 * 
 *             return u
 */
        __pyx_t_8 = ((PyObject *)__pyx_cur_scope->__pyx_v_policy);
        __Pyx_INCREF(__pyx_t_8);
        __pyx_t_9 = ((PyObject *)__pyx_f_7setools_9policyrep_5Range_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_8), (&__pyx_cur_scope->__pyx_v_symbol->exp_range))); if (unlikely(!__pyx_t_9)) __PYX_ERR(21, 55, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GIVEREF(__pyx_t_9);
        __Pyx_GOTREF(__pyx_v_u->_range);
        __Pyx_DECREF(((PyObject *)__pyx_v_u->_range));
        __pyx_v_u->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_9);
        __pyx_t_9 = 0;

        /* "setools/policyrep/user.pxi":53
 *                        if r != "object_r")
 * 
 *             if policy.mls:             # <<<<<<<<<<<<<<
 *                 u._level = Level.factory(policy, &symbol.exp_dfltlevel)
 *                 u._range = Range.factory(policy, &symbol.exp_range)
 */
      }

      /* "setools/policyrep/user.pxi":57
 *                 u._range = Range.factory(policy, &symbol.exp_range)
 * 
 *             return u             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
      __Pyx_XDECREF(((PyObject *)__pyx_r));
      __Pyx_INCREF(((PyObject *)__pyx_v_u));
      __pyx_r = __pyx_v_u;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "setools/policyrep/user.pxi":37
 *         """Factory function for constructing User objects."""
 *         cdef User u
 *         try:             # <<<<<<<<<<<<<<
 *             return _user_cache[policy][<uintptr_t>symbol]
 *         except KeyError:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "setools/policyrep/user.pxi":34
 * 
 *     @staticmethod
 *     cdef inline User factory(SELinuxPolicy policy, sepol.user_datum_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for constructing User objects."""
 *         cdef User u
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.User.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_u);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":60
 * 
 *     @property
 *     def mls_level(self):             # <<<<<<<<<<<<<<
 *         """The user's default MLS level."""
 *         if self._level:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_9mls_level_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_9mls_level_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_9mls_level___get__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4User_9mls_level___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/user.pxi":62
 *     def mls_level(self):
 *         """The user's default MLS level."""
 *         if self._level:             # <<<<<<<<<<<<<<
 *             return self._level
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_level)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(21, 62, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/user.pxi":63
 *         """The user's default MLS level."""
 *         if self._level:
 *             return self._level             # <<<<<<<<<<<<<<
 *         else:
 *             raise MLSDisabled
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject *)__pyx_v_self->_level));
    __pyx_r = ((PyObject *)__pyx_v_self->_level);
    goto __pyx_L0;

    /* "setools/policyrep/user.pxi":62
 *     def mls_level(self):
 *         """The user's default MLS level."""
 *         if self._level:             # <<<<<<<<<<<<<<
 *             return self._level
 *         else:
 */
  }

  /* "setools/policyrep/user.pxi":65
 *             return self._level
 *         else:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 65, __pyx_L1_error)
  }

  /* "setools/policyrep/user.pxi":60
 * 
 *     @property
 *     def mls_level(self):             # <<<<<<<<<<<<<<
 *         """The user's default MLS level."""
 *         if self._level:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.User.mls_level.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":68
 * 
 *     @property
 *     def mls_range(self):             # <<<<<<<<<<<<<<
 *         """The user's MLS range."""
 *         if self._range:
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_9mls_range_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_9mls_range_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_9mls_range___get__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4User_9mls_range___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "setools/policyrep/user.pxi":70
 *     def mls_range(self):
 *         """The user's MLS range."""
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return self._range
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_range)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(21, 70, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "setools/policyrep/user.pxi":71
 *         """The user's MLS range."""
 *         if self._range:
 *             return self._range             # <<<<<<<<<<<<<<
 *         else:
 *             raise MLSDisabled
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject *)__pyx_v_self->_range));
    __pyx_r = ((PyObject *)__pyx_v_self->_range);
    goto __pyx_L0;

    /* "setools/policyrep/user.pxi":70
 *     def mls_range(self):
 *         """The user's MLS range."""
 *         if self._range:             # <<<<<<<<<<<<<<
 *             return self._range
 *         else:
 */
  }

  /* "setools/policyrep/user.pxi":73
 *             return self._range
 *         else:
 *             raise MLSDisabled             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(21, 73, __pyx_L1_error)
  }

  /* "setools/policyrep/user.pxi":68
 * 
 *     @property
 *     def mls_range(self):             # <<<<<<<<<<<<<<
 *         """The user's MLS range."""
 *         if self._range:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.User.mls_range.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":75
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_statement(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_7setools_9policyrep_4User_9statement_2generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "setools/policyrep/user.pxi":77
 *     def statement(self):
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)             # <<<<<<<<<<<<<<
 *             str stmt = "user {0} roles ".format(self.name)
 *             size_t count = len(roles)
 */

static PyObject *__pyx_pf_7setools_9policyrep_4User_9statement_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_51_genexpr(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_51_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 77, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_7setools_9policyrep_4User_9statement_2generator33, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_statement_locals_genexpr, __pyx_n_s_setools_policyrep); if (unlikely(!gen)) __PYX_ERR(21, 77, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("setools.policyrep.User.statement.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_7setools_9policyrep_4User_9statement_2generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *__pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(21, 77, __pyx_L1_error)
  __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(21, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_r);
  __pyx_t_2 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(21, 77, __pyx_L1_error) }
  __pyx_t_5 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->roles, 0, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_5 = 0;
  while (1) {
    __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4);
    if (unlikely(__pyx_t_6 == 0)) break;
    if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(21, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_cur_scope->__pyx_v_r); if (unlikely(!__pyx_t_5)) __PYX_ERR(21, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_5))) __PYX_ERR(21, 77, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":75
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
 */

static PyObject *__pyx_pf_7setools_9policyrep_4User_statement(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *__pyx_cur_scope;
  PyObject *__pyx_v_roles = 0;
  PyObject *__pyx_v_stmt = 0;
  size_t __pyx_v_count;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);
  __pyx_cur_scope = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *)__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_50_statement(__pyx_ptype_7setools_9policyrep___pyx_scope_struct_50_statement, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(21, 75, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);

  /* "setools/policyrep/user.pxi":77
 *     def statement(self):
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)             # <<<<<<<<<<<<<<
 *             str stmt = "user {0} roles ".format(self.name)
 *             size_t count = len(roles)
 */
  __pyx_t_1 = __pyx_pf_7setools_9policyrep_4User_9statement_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_roles = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/user.pxi":78
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
 *             str stmt = "user {0} roles ".format(self.name)             # <<<<<<<<<<<<<<
 *             size_t count = len(roles)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_user_0_roles, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_cur_scope->__pyx_v_self->__pyx_base.name) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_cur_scope->__pyx_v_self->__pyx_base.name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(21, 78, __pyx_L1_error)
  __pyx_v_stmt = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/user.pxi":79
 *             list roles = list(str(r) for r in self.roles)
 *             str stmt = "user {0} roles ".format(self.name)
 *             size_t count = len(roles)             # <<<<<<<<<<<<<<
 * 
 *         if count == 1:
 */
  if (unlikely(__pyx_v_roles == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(21, 79, __pyx_L1_error)
  }
  __pyx_t_4 = PyList_GET_SIZE(__pyx_v_roles); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(21, 79, __pyx_L1_error)
  __pyx_v_count = __pyx_t_4;

  /* "setools/policyrep/user.pxi":81
 *             size_t count = len(roles)
 * 
 *         if count == 1:             # <<<<<<<<<<<<<<
 *             stmt += roles[0]
 *         else:
 */
  __pyx_t_5 = ((__pyx_v_count == 1) != 0);
  if (__pyx_t_5) {

    /* "setools/policyrep/user.pxi":82
 * 
 *         if count == 1:
 *             stmt += roles[0]             # <<<<<<<<<<<<<<
 *         else:
 *             stmt += "{{ {0} }}".format(' '.join(roles))
 */
    if (unlikely(__pyx_v_roles == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(21, 82, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_roles, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(21, 82, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/user.pxi":81
 *             size_t count = len(roles)
 * 
 *         if count == 1:             # <<<<<<<<<<<<<<
 *             stmt += roles[0]
 *         else:
 */
    goto __pyx_L3;
  }

  /* "setools/policyrep/user.pxi":84
 *             stmt += roles[0]
 *         else:
 *             stmt += "{{ {0} }}".format(' '.join(roles))             # <<<<<<<<<<<<<<
 * 
 *         if self._level:
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__3, __pyx_v_roles); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(21, 84, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "setools/policyrep/user.pxi":86
 *             stmt += "{{ {0} }}".format(' '.join(roles))
 * 
 *         if self._level:             # <<<<<<<<<<<<<<
 *             stmt += " level {0.mls_level} range {0.mls_range};".format(self)
 *         else:
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_cur_scope->__pyx_v_self->_level)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(21, 86, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "setools/policyrep/user.pxi":87
 * 
 *         if self._level:
 *             stmt += " level {0.mls_level} range {0.mls_range};".format(self)             # <<<<<<<<<<<<<<
 *         else:
 *             stmt += ";"
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_level_0_mls_level_range_0_mls_r, __pyx_n_s_format_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_self));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_stmt, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 87, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(21, 87, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "setools/policyrep/user.pxi":86
 *             stmt += "{{ {0} }}".format(' '.join(roles))
 * 
 *         if self._level:             # <<<<<<<<<<<<<<
 *             stmt += " level {0.mls_level} range {0.mls_range};".format(self)
 *         else:
 */
    goto __pyx_L4;
  }

  /* "setools/policyrep/user.pxi":89
 *             stmt += " level {0.mls_level} range {0.mls_range};".format(self)
 *         else:
 *             stmt += ";"             # <<<<<<<<<<<<<<
 * 
 *         return stmt
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_stmt, __pyx_kp_u__32); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 89, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_stmt, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;
  }
  __pyx_L4:;

  /* "setools/policyrep/user.pxi":91
 *             stmt += ";"
 * 
 *         return stmt             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_stmt);
  __pyx_r = __pyx_v_stmt;
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":75
 *             raise MLSDisabled
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             list roles = list(str(r) for r in self.roles)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.User.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_roles);
  __Pyx_XDECREF(__pyx_v_stmt);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":29
 * 
 *     cdef:
 *         readonly frozenset roles             # <<<<<<<<<<<<<<
 *         Level _level
 *         Range _range
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_5roles_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_5roles_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_5roles___get__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4User_5roles___get__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->roles);
  __pyx_r = __pyx_v_self->roles;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_4User_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self._level, self._range, self.key, self.name, self.policy, self.roles)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_level));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_level));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->_level));
  __Pyx_INCREF(((PyObject *)__pyx_v_self->_range));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_range));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->_range));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->__pyx_base.name);
  __Pyx_GIVEREF(__pyx_v_self->__pyx_base.name);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->__pyx_base.name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 4, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->roles);
  __Pyx_GIVEREF(__pyx_v_self->roles);
  PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_v_self->roles);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self._level, self._range, self.key, self.name, self.policy, self.roles)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self._level, self._range, self.key, self.name, self.policy, self.roles)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self._level, self._range, self.key, self.name, self.policy, self.roles)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->_level) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->_range) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->__pyx_base.name != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->roles != ((PyObject*)Py_None));
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None
 *     if use_setstate:
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_User); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_115261232);
    __Pyx_GIVEREF(__pyx_int_115261232);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_115261232);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self._level is not None or self._range is not None or self.name is not None or self.policy is not None or self.roles is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, None), state
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_User__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_User); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_115261232);
    __Pyx_GIVEREF(__pyx_int_115261232);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_115261232);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.User.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_User__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_4User_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_4User_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_4User_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_4User_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_User *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_User__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_User__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_User, (type(self), 0x6debf30, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_User__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.User.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":102
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating User iterators."""
 *         i = UserHashtabIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_19UserHashtabIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, hashtab_t *__pyx_v_table) {
  struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/user.pxi":104
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):
 *         """Factory function for creating User iterators."""
 *         i = UserHashtabIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.table = table
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_UserHashtabIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":105
 *         """Factory function for creating User iterators."""
 *         i = UserHashtabIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.table = table
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/user.pxi":106
 *         i = UserHashtabIterator()
 *         i.policy = policy
 *         i.table = table             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.table = __pyx_v_table;

  /* "setools/policyrep/user.pxi":107
 *         i.policy = policy
 *         i.table = table
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":108
 *         i.table = table
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":102
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.hashtab_t *table):             # <<<<<<<<<<<<<<
 *         """Factory function for creating User iterators."""
 *         i = UserHashtabIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":110
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return User.factory(self.policy, <sepol.user_datum_t *>self.curr.datum)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserHashtabIterator___next__(((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator___next__(struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/user.pxi":111
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return User.factory(self.policy, <sepol.user_datum_t *>self.curr.datum)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_UserHashtabIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_UserHashtabIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_UserHashtabIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 111, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 111, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":112
 *     def __next__(self):
 *         super().__next__()
 *         return User.factory(self.policy, <sepol.user_datum_t *>self.curr.datum)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4User_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), ((user_datum_t *)__pyx_v_self->__pyx_base.curr->datum))); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":110
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return User.factory(self.policy, <sepol.user_datum_t *>self.curr.datum)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserHashtabIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__101, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserHashtabIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_19UserHashtabIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__102, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.UserHashtabIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":120
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating User ebitmap iterators."""
 *         i = UserEbitmapIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_19UserEbitmapIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ebitmap_t *__pyx_v_bmap) {
  struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/user.pxi":122
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):
 *         """Factory function for creating User ebitmap iterators."""
 *         i = UserEbitmapIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.bmap = bmap
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_UserEbitmapIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":123
 *         """Factory function for creating User ebitmap iterators."""
 *         i = UserEbitmapIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.bmap = bmap
 *         i.reset()
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/user.pxi":124
 *         i = UserEbitmapIterator()
 *         i.policy = policy
 *         i.bmap = bmap             # <<<<<<<<<<<<<<
 *         i.reset()
 *         return i
 */
  __pyx_v_i->__pyx_base.bmap = __pyx_v_bmap;

  /* "setools/policyrep/user.pxi":125
 *         i.policy = policy
 *         i.bmap = bmap
 *         i.reset()             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i), __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":126
 *         i.bmap = bmap
 *         i.reset()
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":120
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ebitmap_t *bmap):             # <<<<<<<<<<<<<<
 *         """Factory function for creating User ebitmap iterators."""
 *         i = UserEbitmapIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/user.pxi":128
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return User.factory(self.policy, self.policy.user_value_to_datum(self.bit))
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserEbitmapIterator___next__(((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator___next__(struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/user.pxi":129
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return User.factory(self.policy, self.policy.user_value_to_datum(self.bit))
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_UserEbitmapIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_UserEbitmapIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_UserEbitmapIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(21, 129, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 129, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":130
 *     def __next__(self):
 *         super().__next__()
 *         return User.factory(self.policy, self.policy.user_value_to_datum(self.bit))             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_4User_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum(__pyx_v_self->__pyx_base.__pyx_base.policy, __pyx_v_self->__pyx_base.bit))); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/user.pxi":128
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return User.factory(self.policy, self.policy.user_value_to_datum(self.bit))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserEbitmapIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__103, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_19UserEbitmapIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_19UserEbitmapIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__104, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.UserEbitmapIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":35
 * 
 *     @staticmethod
 *     cdef inline Devicetreecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Devicetreecon objects."""
 *         cdef Devicetreecon d = Devicetreecon.__new__(Devicetreecon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_f_7setools_9policyrep_13Devicetreecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_d = 0;
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":37
 *     cdef inline Devicetreecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Devicetreecon objects."""
 *         cdef Devicetreecon d = Devicetreecon.__new__(Devicetreecon)             # <<<<<<<<<<<<<<
 *         d.policy = policy
 *         d.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Devicetreecon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Devicetreecon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 37, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_d = ((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":38
 *         """Factory function for creating Devicetreecon objects."""
 *         cdef Devicetreecon d = Devicetreecon.__new__(Devicetreecon)
 *         d.policy = policy             # <<<<<<<<<<<<<<
 *         d.key = <uintptr_t>symbol
 *         d.path = intern(symbol.u.name)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_d->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_d->__pyx_base.__pyx_base.policy));
  __pyx_v_d->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":39
 *         cdef Devicetreecon d = Devicetreecon.__new__(Devicetreecon)
 *         d.policy = policy
 *         d.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         d.path = intern(symbol.u.name)
 *         d.context = Context.factory(policy, symbol.context)
 */
  __pyx_v_d->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":40
 *         d.policy = policy
 *         d.key = <uintptr_t>symbol
 *         d.path = intern(symbol.u.name)             # <<<<<<<<<<<<<<
 *         d.context = Context.factory(policy, symbol.context)
 *         return d
 */
  __pyx_t_1 = __Pyx_PyStr_FromString(__pyx_v_symbol->u.name); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Intern(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(22, 40, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_d->path);
  __Pyx_DECREF(__pyx_v_d->path);
  __pyx_v_d->path = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/xencontext.pxi":41
 *         d.key = <uintptr_t>symbol
 *         d.path = intern(symbol.u.name)
 *         d.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return d
 * 
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF(__pyx_v_d->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_d->__pyx_base.context));
  __pyx_v_d->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/xencontext.pxi":42
 *         d.path = intern(symbol.u.name)
 *         d.context = Context.factory(policy, symbol.context)
 *         return d             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_d));
  __pyx_r = __pyx_v_d;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":35
 * 
 *     @staticmethod
 *     cdef inline Devicetreecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Devicetreecon objects."""
 *         cdef Devicetreecon d = Devicetreecon.__new__(Devicetreecon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_d);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":44
 *         return d
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "devicetreecon {0.path} {0.context}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Devicetreecon_statement(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_statement(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":45
 * 
 *     def statement(self):
 *         return "devicetreecon {0.path} {0.context}".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_devicetreecon_0_path_0_context, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":44
 *         return d
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "devicetreecon {0.path} {0.context}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":32
 *     """A devicetreecon statement."""
 * 
 *     cdef readonly str path             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_4path_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_4path_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Devicetreecon_4path___get__(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_4path___get__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->path);
  __pyx_r = __pyx_v_self->path;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Devicetreecon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.path, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->path);
  __Pyx_GIVEREF(__pyx_v_self->path);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->path);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.path, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.path, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.path, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->path != ((PyObject*)Py_None));
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Devicetreecon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_266321039);
    __Pyx_GIVEREF(__pyx_int_266321039);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_266321039);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.path is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, None), state
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Devicetreecon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_266321039);
    __Pyx_GIVEREF(__pyx_int_266321039);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_266321039);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_13Devicetreecon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_13Devicetreecon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_13Devicetreecon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Devicetreecon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Devicetreecon, (type(self), 0xfdfbc8f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Devicetreecon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Devicetreecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":55
 * 
 *     @staticmethod
 *     cdef inline Iomemcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Iomemcon objects."""
 *         cdef Iomemcon i = Iomemcon.__new__(Iomemcon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_f_7setools_9policyrep_8Iomemcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_i = 0;
  struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":57
 *     cdef inline Iomemcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Iomemcon objects."""
 *         cdef Iomemcon i = Iomemcon.__new__(Iomemcon)             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Iomemcon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Iomemcon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 57, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":58
 *         """Factory function for creating Iomemcon objects."""
 *         cdef Iomemcon i = Iomemcon.__new__(Iomemcon)
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":59
 *         cdef Iomemcon i = Iomemcon.__new__(Iomemcon)
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)
 *         i.context = Context.factory(policy, symbol.context)
 */
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":60
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 *         return i
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IomemconRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_uint64_t(__pyx_v_symbol->u.iomem.low_iomem); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_uint64_t(__pyx_v_symbol->u.iomem.high_iomem); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(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_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 60, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __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_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 60, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->addr);
  __Pyx_DECREF(__pyx_v_i->addr);
  __pyx_v_i->addr = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":61
 *         i.key = <uintptr_t>symbol
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.context));
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":62
 *         i.addr = IomemconRange(symbol.u.iomem.low_iomem, symbol.u.iomem.high_iomem)
 *         i.context = Context.factory(policy, symbol.context)
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":55
 * 
 *     @staticmethod
 *     cdef inline Iomemcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Iomemcon objects."""
 *         cdef Iomemcon i = Iomemcon.__new__(Iomemcon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":64
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         low, high = self.addr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Iomemcon_statement(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_statement(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self) {
  PyObject *__pyx_v_low = NULL;
  PyObject *__pyx_v_high = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":65
 * 
 *     def statement(self):
 *         low, high = self.addr             # <<<<<<<<<<<<<<
 * 
 *         if low == high:
 */
  __pyx_t_1 = __pyx_v_self->addr;
  __Pyx_INCREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(22, 65, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(22, 65, __pyx_L1_error)
    __pyx_t_5 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(22, 65, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_low = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_high = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "setools/policyrep/xencontext.pxi":67
 *         low, high = self.addr
 * 
 *         if low == high:             # <<<<<<<<<<<<<<
 *             return "iomemcon {0} {1}".format(low, self.context)
 *         else:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_low, __pyx_v_high, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 67, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(22, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "setools/policyrep/xencontext.pxi":68
 * 
 *         if low == high:
 *             return "iomemcon {0} {1}".format(low, self.context)             # <<<<<<<<<<<<<<
 *         else:
 *             return "iomemcon {0}-{1} {2}".format(low, high, self.context)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_iomemcon_0_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 68, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = NULL;
    __pyx_t_7 = 0;
    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_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_low, ((PyObject *)__pyx_v_self->__pyx_base.context)};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 68, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_low, ((PyObject *)__pyx_v_self->__pyx_base.context)};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 68, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 68, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(__pyx_v_low);
      __Pyx_GIVEREF(__pyx_v_low);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_v_low);
      __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, ((PyObject *)__pyx_v_self->__pyx_base.context));
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 68, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/xencontext.pxi":67
 *         low, high = self.addr
 * 
 *         if low == high:             # <<<<<<<<<<<<<<
 *             return "iomemcon {0} {1}".format(low, self.context)
 *         else:
 */
  }

  /* "setools/policyrep/xencontext.pxi":70
 *             return "iomemcon {0} {1}".format(low, self.context)
 *         else:
 *             return "iomemcon {0}-{1} {2}".format(low, high, self.context)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_iomemcon_0_1_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    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_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_low, __pyx_v_high, ((PyObject *)__pyx_v_self->__pyx_base.context)};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 70, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_low, __pyx_v_high, ((PyObject *)__pyx_v_self->__pyx_base.context)};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 70, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 70, __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_v_low);
      __Pyx_GIVEREF(__pyx_v_low);
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_v_low);
      __Pyx_INCREF(__pyx_v_high);
      __Pyx_GIVEREF(__pyx_v_high);
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_v_high);
      __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
      PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_7, ((PyObject *)__pyx_v_self->__pyx_base.context));
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/xencontext.pxi":64
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         low, high = self.addr
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_low);
  __Pyx_XDECREF(__pyx_v_high);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":52
 *     """A iomemcon statement."""
 * 
 *     cdef readonly object addr             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_4addr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_4addr_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Iomemcon_4addr___get__(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_4addr___get__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->addr);
  __pyx_r = __pyx_v_self->addr;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Iomemcon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.addr, self.context, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->addr);
  __Pyx_GIVEREF(__pyx_v_self->addr);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->addr);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.addr, self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.addr, self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.addr, self.context, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, None), state
 */
  /*else*/ {
    __pyx_t_3 = (__pyx_v_self->addr != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Iomemcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_73097080);
    __Pyx_GIVEREF(__pyx_int_73097080);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_73097080);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.addr is not None or self.context is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, None), state
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Iomemcon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_73097080);
    __Pyx_GIVEREF(__pyx_int_73097080);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_73097080);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_8Iomemcon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_8Iomemcon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_8Iomemcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Iomemcon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Iomemcon, (type(self), 0x45b5f78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Iomemcon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Iomemcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":80
 * 
 *     @staticmethod
 *     cdef inline Ioportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ioportcon objects."""
 *         cdef Ioportcon i = Ioportcon.__new__(Ioportcon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_f_7setools_9policyrep_9Ioportcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_i = 0;
  struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":82
 *     cdef inline Ioportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Ioportcon objects."""
 *         cdef Ioportcon i = Ioportcon.__new__(Ioportcon)             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Ioportcon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Ioportcon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 82, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":83
 *         """Factory function for creating Ioportcon objects."""
 *         cdef Ioportcon i = Ioportcon.__new__(Ioportcon)
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.key = <uintptr_t>symbol
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":84
 *         cdef Ioportcon i = Ioportcon.__new__(Ioportcon)
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)
 *         i.context = Context.factory(policy, symbol.context)
 */
  __pyx_v_i->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":85
 *         i.policy = policy
 *         i.key = <uintptr_t>symbol
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)             # <<<<<<<<<<<<<<
 *         i.context = Context.factory(policy, symbol.context)
 *         return i
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IoportconRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_uint32_t(__pyx_v_symbol->u.ioport.low_ioport); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_uint32_t(__pyx_v_symbol->u.ioport.high_ioport); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(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_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 85, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __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_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 85, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->ports);
  __Pyx_DECREF(__pyx_v_i->ports);
  __pyx_v_i->ports = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":86
 *         i.key = <uintptr_t>symbol
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)
 *         i.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.context));
  __pyx_v_i->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":87
 *         i.ports = IoportconRange(symbol.u.ioport.low_ioport, symbol.u.ioport.high_ioport)
 *         i.context = Context.factory(policy, symbol.context)
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = __pyx_v_i;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":80
 * 
 *     @staticmethod
 *     cdef inline Ioportcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ioportcon objects."""
 *         cdef Ioportcon i = Ioportcon.__new__(Ioportcon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":89
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         low, high = self.ports
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ioportcon_statement(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_statement(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self) {
  PyObject *__pyx_v_low = NULL;
  PyObject *__pyx_v_high = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *(*__pyx_t_5)(PyObject *);
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":90
 * 
 *     def statement(self):
 *         low, high = self.ports             # <<<<<<<<<<<<<<
 * 
 *         if low == high:
 */
  __pyx_t_1 = __pyx_v_self->ports;
  __Pyx_INCREF(__pyx_t_1);
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(22, 90, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(22, 90, __pyx_L1_error)
    __pyx_t_5 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(22, 90, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_v_low = __pyx_t_2;
  __pyx_t_2 = 0;
  __pyx_v_high = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "setools/policyrep/xencontext.pxi":92
 *         low, high = self.ports
 * 
 *         if low == high:             # <<<<<<<<<<<<<<
 *             return "ioportcon {0} {1}".format(low, self.context)
 *         else:
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_low, __pyx_v_high, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 92, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(22, 92, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "setools/policyrep/xencontext.pxi":93
 * 
 *         if low == high:
 *             return "ioportcon {0} {1}".format(low, self.context)             # <<<<<<<<<<<<<<
 *         else:
 *             return "ioportcon {0}-{1} {2}".format(low, high, self.context)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_ioportcon_0_1, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 93, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = NULL;
    __pyx_t_7 = 0;
    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_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_low, ((PyObject *)__pyx_v_self->__pyx_base.context)};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 93, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_low, ((PyObject *)__pyx_v_self->__pyx_base.context)};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 93, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 93, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(__pyx_v_low);
      __Pyx_GIVEREF(__pyx_v_low);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_v_low);
      __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, ((PyObject *)__pyx_v_self->__pyx_base.context));
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 93, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "setools/policyrep/xencontext.pxi":92
 *         low, high = self.ports
 * 
 *         if low == high:             # <<<<<<<<<<<<<<
 *             return "ioportcon {0} {1}".format(low, self.context)
 *         else:
 */
  }

  /* "setools/policyrep/xencontext.pxi":95
 *             return "ioportcon {0} {1}".format(low, self.context)
 *         else:
 *             return "ioportcon {0}-{1} {2}".format(low, high, self.context)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_ioportcon_0_1_2, __pyx_n_s_format_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    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_7 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_low, __pyx_v_high, ((PyObject *)__pyx_v_self->__pyx_base.context)};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 95, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_low, __pyx_v_high, ((PyObject *)__pyx_v_self->__pyx_base.context)};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 95, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 95, __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_v_low);
      __Pyx_GIVEREF(__pyx_v_low);
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_v_low);
      __Pyx_INCREF(__pyx_v_high);
      __Pyx_GIVEREF(__pyx_v_high);
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_v_high);
      __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
      PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_7, ((PyObject *)__pyx_v_self->__pyx_base.context));
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 95, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "setools/policyrep/xencontext.pxi":89
 *         return i
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         low, high = self.ports
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_low);
  __Pyx_XDECREF(__pyx_v_high);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":77
 *     """A ioportcon statement."""
 * 
 *     cdef readonly object ports             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_5ports_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_5ports_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ioportcon_5ports___get__(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_5ports___get__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->ports);
  __pyx_r = __pyx_v_self->ports;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ioportcon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy, self.ports)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_INCREF(__pyx_v_self->ports);
  __Pyx_GIVEREF(__pyx_v_self->ports);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_self->ports);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.key, self.policy, self.ports)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy, self.ports)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.key, self.policy, self.ports)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (__pyx_v_self->ports != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Ioportcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_211503955);
    __Pyx_GIVEREF(__pyx_int_211503955);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_211503955);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.policy is not None or self.ports is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, None), state
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Ioportcon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_211503955);
    __Pyx_GIVEREF(__pyx_int_211503955);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_211503955);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_9Ioportcon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_9Ioportcon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_9Ioportcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ioportcon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ioportcon, (type(self), 0xc9b4b53, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ioportcon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Ioportcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":105
 * 
 *     @staticmethod
 *     cdef inline Pcidevicecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Pcidevicecon objects."""
 *         cdef Pcidevicecon p = Pcidevicecon.__new__(Pcidevicecon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_f_7setools_9policyrep_12Pcidevicecon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_p = 0;
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":107
 *     cdef inline Pcidevicecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Pcidevicecon objects."""
 *         cdef Pcidevicecon p = Pcidevicecon.__new__(Pcidevicecon)             # <<<<<<<<<<<<<<
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Pcidevicecon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Pcidevicecon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 107, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_p = ((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":108
 *         """Factory function for creating Pcidevicecon objects."""
 *         cdef Pcidevicecon p = Pcidevicecon.__new__(Pcidevicecon)
 *         p.policy = policy             # <<<<<<<<<<<<<<
 *         p.key = <uintptr_t>symbol
 *         p.device = symbol.u.device
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_p->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy));
  __pyx_v_p->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":109
 *         cdef Pcidevicecon p = Pcidevicecon.__new__(Pcidevicecon)
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         p.device = symbol.u.device
 *         p.context = Context.factory(policy, symbol.context)
 */
  __pyx_v_p->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":110
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 *         p.device = symbol.u.device             # <<<<<<<<<<<<<<
 *         p.context = Context.factory(policy, symbol.context)
 *         return p
 */
  __pyx_t_1 = __Pyx_PyInt_From_uint32_t(__pyx_v_symbol->u.device); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->device);
  __Pyx_DECREF(__pyx_v_p->device);
  __pyx_v_p->device = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":111
 *         p.key = <uintptr_t>symbol
 *         p.device = symbol.u.device
 *         p.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return p
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.context));
  __pyx_v_p->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":112
 *         p.device = symbol.u.device
 *         p.context = Context.factory(policy, symbol.context)
 *         return p             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_p));
  __pyx_r = __pyx_v_p;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":105
 * 
 *     @staticmethod
 *     cdef inline Pcidevicecon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Pcidevicecon objects."""
 *         cdef Pcidevicecon p = Pcidevicecon.__new__(Pcidevicecon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_p);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":114
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "pcidevicecon {0.device} {0.context}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Pcidevicecon_statement(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_statement(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":115
 * 
 *     def statement(self):
 *         return "pcidevicecon {0.device} {0.context}".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_pcidevicecon_0_device_0_context, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":114
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "pcidevicecon {0.device} {0.context}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":102
 *     """A pcidevicecon statement."""
 * 
 *     cdef readonly object device             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_6device_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_6device_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Pcidevicecon_6device___get__(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_6device___get__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->device);
  __pyx_r = __pyx_v_self->device;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Pcidevicecon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.device, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_INCREF(__pyx_v_self->device);
  __Pyx_GIVEREF(__pyx_v_self->device);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->device);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.device, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.device, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.device, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->device != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Pcidevicecon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_108357528);
    __Pyx_GIVEREF(__pyx_int_108357528);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_108357528);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.device is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, None), state
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Pcidevicecon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_108357528);
    __Pyx_GIVEREF(__pyx_int_108357528);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_108357528);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_12Pcidevicecon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_12Pcidevicecon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Pcidevicecon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pcidevicecon, (type(self), 0x6756798, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pcidevicecon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Pcidevicecon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":125
 * 
 *     @staticmethod
 *     cdef inline Pirqcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Pirqcon objects."""
 *         cdef Pirqcon p = Pirqcon.__new__(Pirqcon)
 */

static CYTHON_INLINE struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_f_7setools_9policyrep_7Pirqcon_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_symbol) {
  struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_p = 0;
  struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":127
 *     cdef inline Pirqcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):
 *         """Factory function for creating Pirqcon objects."""
 *         cdef Pirqcon p = Pirqcon.__new__(Pirqcon)             # <<<<<<<<<<<<<<
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 */
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7setools_9policyrep_Pirqcon(((PyTypeObject *)__pyx_ptype_7setools_9policyrep_Pirqcon), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 127, __pyx_L1_error)
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_v_p = ((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":128
 *         """Factory function for creating Pirqcon objects."""
 *         cdef Pirqcon p = Pirqcon.__new__(Pirqcon)
 *         p.policy = policy             # <<<<<<<<<<<<<<
 *         p.key = <uintptr_t>symbol
 *         p.irq = symbol.u.pirq
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_p->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.__pyx_base.policy));
  __pyx_v_p->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":129
 *         cdef Pirqcon p = Pirqcon.__new__(Pirqcon)
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol             # <<<<<<<<<<<<<<
 *         p.irq = symbol.u.pirq
 *         p.context = Context.factory(policy, symbol.context)
 */
  __pyx_v_p->__pyx_base.__pyx_base.key = ((uintptr_t)__pyx_v_symbol);

  /* "setools/policyrep/xencontext.pxi":130
 *         p.policy = policy
 *         p.key = <uintptr_t>symbol
 *         p.irq = symbol.u.pirq             # <<<<<<<<<<<<<<
 *         p.context = Context.factory(policy, symbol.context)
 *         return p
 */
  __pyx_t_1 = __Pyx_PyInt_From_uint16_t(__pyx_v_symbol->u.pirq); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->irq);
  __Pyx_DECREF(__pyx_v_p->irq);
  __pyx_v_p->irq = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":131
 *         p.key = <uintptr_t>symbol
 *         p.irq = symbol.u.pirq
 *         p.context = Context.factory(policy, symbol.context)             # <<<<<<<<<<<<<<
 *         return p
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_f_7setools_9policyrep_7Context_factory(__pyx_v_policy, __pyx_v_symbol->context)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_p->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v_p->__pyx_base.context));
  __pyx_v_p->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":132
 *         p.irq = symbol.u.pirq
 *         p.context = Context.factory(policy, symbol.context)
 *         return p             # <<<<<<<<<<<<<<
 * 
 *     def statement(self):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_p));
  __pyx_r = __pyx_v_p;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":125
 * 
 *     @staticmethod
 *     cdef inline Pirqcon factory(SELinuxPolicy policy, sepol.ocontext_t *symbol):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Pirqcon objects."""
 *         cdef Pirqcon p = Pirqcon.__new__(Pirqcon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_p);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":134
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "pirqcon {0.irq} {0.context}".format(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_1statement(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("statement (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Pirqcon_statement(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_statement(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("statement", 0);

  /* "setools/policyrep/xencontext.pxi":135
 * 
 *     def statement(self):
 *         return "pirqcon {0.irq} {0.context}".format(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_pirqcon_0_irq_0_context, __pyx_n_s_format_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":134
 *         return p
 * 
 *     def statement(self):             # <<<<<<<<<<<<<<
 *         return "pirqcon {0.irq} {0.context}".format(self)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.statement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":122
 *     """A pirqcon statement."""
 * 
 *     cdef readonly object irq             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_3irq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_3irq_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Pirqcon_3irq___get__(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_3irq___get__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->irq);
  __pyx_r = __pyx_v_self->irq;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Pirqcon_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_2__reduce_cython__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.context, self.irq, self.key, self.policy)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->__pyx_base.__pyx_base.key); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.context));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.context));
  __Pyx_INCREF(__pyx_v_self->irq);
  __Pyx_GIVEREF(__pyx_v_self->irq);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->irq);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  PyTuple_SET_ITEM(__pyx_t_2, 3, ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy));
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.context, self.irq, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.context, self.irq, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.context, self.irq, self.key, self.policy)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.context) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = (__pyx_v_self->irq != Py_None);
    __pyx_t_3 = (__pyx_t_5 != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_4 = __pyx_t_3;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy) != Py_None);
    __pyx_t_5 = (__pyx_t_3 != 0);
    __pyx_t_4 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, None), state
 *     else:
 */
  __pyx_t_4 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_4) {

    /* "(tree fragment)":13
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Pirqcon); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_193457800);
    __Pyx_GIVEREF(__pyx_int_193457800);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_193457800);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.context is not None or self.irq is not None or self.policy is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, None), state
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Pirqcon); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_193457800);
    __Pyx_GIVEREF(__pyx_int_193457800);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_193457800);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_7Pirqcon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_7Pirqcon_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_7Pirqcon_4__setstate_cython__(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7setools_9policyrep___pyx_unpickle_Pirqcon__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Pirqcon, (type(self), 0xb87ee88, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Pirqcon__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.Pirqcon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":146
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Devicetreecon iterators."""
 *         i = DevicetreeconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_21DevicetreeconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":148
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Devicetreecon iterators."""
 *         i = DevicetreeconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_DevicetreeconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":149
 *         """Factory function for creating Devicetreecon iterators."""
 *         i = DevicetreeconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":150
 *         i = DevicetreeconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":151
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":146
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Devicetreecon iterators."""
 *         i = DevicetreeconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":153
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Devicetreecon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21DevicetreeconIterator___next__(((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator___next__(struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":154
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Devicetreecon.factory(self.policy, self.ocon)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_DevicetreeconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_DevicetreeconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_DevicetreeconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 154, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 154, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":155
 *     def __next__(self):
 *         super().__next__()
 *         return Devicetreecon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_13Devicetreecon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":153
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Devicetreecon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21DevicetreeconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__105, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_21DevicetreeconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_21DevicetreeconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__106, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.DevicetreeconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":163
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Iomemcon iterators."""
 *         i = IomemconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_16IomemconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":165
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Iomemcon iterators."""
 *         i = IomemconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_IomemconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":166
 *         """Factory function for creating Iomemcon iterators."""
 *         i = IomemconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":167
 *         i = IomemconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":168
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":163
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Iomemcon iterators."""
 *         i = IomemconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":170
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Iomemcon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16IomemconIterator___next__(((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator___next__(struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":171
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Iomemcon.factory(self.policy, self.ocon)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IomemconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IomemconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_IomemconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 171, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 171, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":172
 *     def __next__(self):
 *         super().__next__()
 *         return Iomemcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_8Iomemcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":170
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Iomemcon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16IomemconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__107, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_16IomemconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_16IomemconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_16IomemconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IomemconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__108, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IomemconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":180
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ioportcon iterators."""
 *         i = IoportconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_17IoportconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":182
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Ioportcon iterators."""
 *         i = IoportconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_IoportconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":183
 *         """Factory function for creating Ioportcon iterators."""
 *         i = IoportconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":184
 *         i = IoportconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":185
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":180
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Ioportcon iterators."""
 *         i = IoportconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":187
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ioportcon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17IoportconIterator___next__(((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator___next__(struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":188
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Ioportcon.factory(self.policy, self.ocon)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IoportconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_IoportconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_IoportconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 188, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 188, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":189
 *     def __next__(self):
 *         super().__next__()
 *         return Ioportcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_9Ioportcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 189, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":187
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Ioportcon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17IoportconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__109, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_17IoportconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_17IoportconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_17IoportconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_IoportconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__110, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.IoportconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":197
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Pcidevicecon iterators."""
 *         i = PcideviceconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_20PcideviceconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":199
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Pcidevicecon iterators."""
 *         i = PcideviceconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_PcideviceconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":200
 *         """Factory function for creating Pcidevicecon iterators."""
 *         i = PcideviceconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":201
 *         i = PcideviceconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":202
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":197
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Pcidevicecon iterators."""
 *         i = PcideviceconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":204
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Pcidevicecon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20PcideviceconIterator___next__(((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator___next__(struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":205
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Pcidevicecon.factory(self.policy, self.ocon)
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_PcideviceconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_PcideviceconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_PcideviceconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 205, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 205, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":206
 *     def __next__(self):
 *         super().__next__()
 *         return Pcidevicecon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_12Pcidevicecon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":204
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Pcidevicecon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20PcideviceconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__111, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_20PcideviceconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_20PcideviceconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__112, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PcideviceconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":214
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Pirqcon iterators."""
 *         i = PirqconIterator()
 */

static PyObject *__pyx_f_7setools_9policyrep_15PirqconIterator_factory(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *__pyx_v_policy, ocontext_t *__pyx_v_head) {
  struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("factory", 0);

  /* "setools/policyrep/xencontext.pxi":216
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):
 *         """Factory function for creating Pirqcon iterators."""
 *         i = PirqconIterator()             # <<<<<<<<<<<<<<
 *         i.policy = policy
 *         i.head = i.curr = head
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_7setools_9policyrep_PirqconIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_i = ((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":217
 *         """Factory function for creating Pirqcon iterators."""
 *         i = PirqconIterator()
 *         i.policy = policy             # <<<<<<<<<<<<<<
 *         i.head = i.curr = head
 *         return i
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_policy));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_policy));
  __Pyx_GOTREF(__pyx_v_i->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v_i->__pyx_base.__pyx_base.policy));
  __pyx_v_i->__pyx_base.__pyx_base.policy = __pyx_v_policy;

  /* "setools/policyrep/xencontext.pxi":218
 *         i = PirqconIterator()
 *         i.policy = policy
 *         i.head = i.curr = head             # <<<<<<<<<<<<<<
 *         return i
 * 
 */
  __pyx_v_i->__pyx_base.head = __pyx_v_head;
  __pyx_v_i->__pyx_base.curr = __pyx_v_head;

  /* "setools/policyrep/xencontext.pxi":219
 *         i.policy = policy
 *         i.head = i.curr = head
 *         return i             # <<<<<<<<<<<<<<
 * 
 *     def __next__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_i));
  __pyx_r = ((PyObject *)__pyx_v_i);
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":214
 * 
 *     @staticmethod
 *     cdef factory(SELinuxPolicy policy, sepol.ocontext_t *head):             # <<<<<<<<<<<<<<
 *         """Factory function for creating Pirqcon iterators."""
 *         i = PirqconIterator()
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.factory", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "setools/policyrep/xencontext.pxi":221
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Pirqcon.factory(self.policy, self.ocon)
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15PirqconIterator___next__(((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator___next__(struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__next__", 0);

  /* "setools/policyrep/xencontext.pxi":222
 * 
 *     def __next__(self):
 *         super().__next__()             # <<<<<<<<<<<<<<
 *         return Pirqcon.factory(self.policy, self.ocon)
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_PirqconIterator));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_PirqconIterator));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_PirqconIterator));
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 222, __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_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 222, __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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/xencontext.pxi":223
 *     def __next__(self):
 *         super().__next__()
 *         return Pirqcon.factory(self.policy, self.ocon)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.policy);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_f_7setools_9policyrep_7Pirqcon_factory(((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1), __pyx_v_self->__pyx_base.ocon)); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "setools/policyrep/xencontext.pxi":221
 *         return i
 * 
 *     def __next__(self):             # <<<<<<<<<<<<<<
 *         super().__next__()
 *         return Pirqcon.factory(self.policy, self.ocon)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15PirqconIterator_2__reduce_cython__(((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)__pyx_v_self));

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

static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__113, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_7setools_9policyrep_15PirqconIterator_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_7setools_9policyrep_15PirqconIterator_4__setstate_cython__(((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_7setools_9policyrep_15PirqconIterator_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7setools_9policyrep_PirqconIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__114, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(6, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("setools.policyrep.PirqconIterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Boolean(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_3__pyx_unpickle_Boolean(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_3__pyx_unpickle_Boolean = {"__pyx_unpickle_Boolean", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_3__pyx_unpickle_Boolean, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_3__pyx_unpickle_Boolean(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Boolean (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Boolean", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Boolean", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Boolean") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Boolean", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_2__pyx_unpickle_Boolean(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_2__pyx_unpickle_Boolean(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Boolean", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x64345df:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x64345df = (key, name, policy, state))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x64345df) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x64345df:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x64345df = (key, name, policy, state))" % __pyx_checksum)
 *     __pyx_result = Boolean.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x64345df:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x64345df = (key, name, policy, state))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Boolean.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x64, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x64345df:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x64345df = (key, name, policy, state))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x64345df = (key, name, policy, state))" % __pyx_checksum)
 *     __pyx_result = Boolean.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Boolean), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x64345df = (key, name, policy, state))" % __pyx_checksum)
 *     __pyx_result = Boolean.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Boolean.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Boolean__set_state(((struct __pyx_obj_7setools_9policyrep_Boolean *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x64345df = (key, name, policy, state))" % __pyx_checksum)
 *     __pyx_result = Boolean.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Boolean(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Boolean__set_state(struct __pyx_obj_7setools_9policyrep_Boolean *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Boolean__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->state = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Boolean__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Conditional(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_5__pyx_unpickle_Conditional(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_5__pyx_unpickle_Conditional = {"__pyx_unpickle_Conditional", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_5__pyx_unpickle_Conditional, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_5__pyx_unpickle_Conditional(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Conditional (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Conditional", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Conditional", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Conditional") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Conditional", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Conditional", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_4__pyx_unpickle_Conditional(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_4__pyx_unpickle_Conditional(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Conditional", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2cdc21b:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2cdc21b = (_postfix_expression, booleans, key, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x2cdc21b) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2cdc21b:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2cdc21b = (_postfix_expression, booleans, key, policy))" % __pyx_checksum)
 *     __pyx_result = Conditional.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x2cdc21b:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2cdc21b = (_postfix_expression, booleans, key, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Conditional.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x2c, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2cdc21b:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2cdc21b = (_postfix_expression, booleans, key, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2cdc21b = (_postfix_expression, booleans, key, policy))" % __pyx_checksum)
 *     __pyx_result = Conditional.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Conditional), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2cdc21b = (_postfix_expression, booleans, key, policy))" % __pyx_checksum)
 *     __pyx_result = Conditional.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Conditional.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Conditional__set_state(((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2cdc21b = (_postfix_expression, booleans, key, policy))" % __pyx_checksum)
 *     __pyx_result = Conditional.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, tuple __pyx_state):
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Conditional(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Conditional", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Conditional__set_state(struct __pyx_obj_7setools_9policyrep_Conditional *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Conditional__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, tuple __pyx_state):
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_postfix_expression);
  __Pyx_DECREF(__pyx_v___pyx_result->_postfix_expression);
  __pyx_v___pyx_result->_postfix_expression = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->booleans);
  __Pyx_DECREF(__pyx_v___pyx_result->booleans);
  __pyx_v___pyx_result->booleans = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, tuple __pyx_state):
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, tuple __pyx_state):
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Conditional__set_state(<Conditional> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Conditional__set_state(Conditional __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._postfix_expression = __pyx_state[0]; __pyx_result.booleans = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Conditional__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_ConditionalOperator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator = {"__pyx_unpickle_ConditionalOperator", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConditionalOperator (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConditionalOperator", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConditionalOperator", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_ConditionalOperator") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConditionalOperator", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConditionalOperator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_6__pyx_unpickle_ConditionalOperator(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_6__pyx_unpickle_ConditionalOperator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConditionalOperator", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xeda7b2a:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xeda7b2a = (evaluate, key, policy, precedence, text, unary))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xeda7b2a) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xeda7b2a:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xeda7b2a = (evaluate, key, policy, precedence, text, unary))" % __pyx_checksum)
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xeda7b2a:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xeda7b2a = (evaluate, key, policy, precedence, text, unary))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xed, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xeda7b2a:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xeda7b2a = (evaluate, key, policy, precedence, text, unary))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xeda7b2a = (evaluate, key, policy, precedence, text, unary))" % __pyx_checksum)
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_ConditionalOperator), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xeda7b2a = (evaluate, key, policy, precedence, text, unary))" % __pyx_checksum)
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConditionalOperator__set_state(((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xeda7b2a = (evaluate, key, policy, precedence, text, unary))" % __pyx_checksum)
 *     __pyx_result = ConditionalOperator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, tuple __pyx_state):
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ConditionalOperator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConditionalOperator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConditionalOperator__set_state(struct __pyx_obj_7setools_9policyrep_ConditionalOperator *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConditionalOperator__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, tuple __pyx_state):
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->evaluate);
  __Pyx_DECREF(__pyx_v___pyx_result->evaluate);
  __pyx_v___pyx_result->evaluate = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->precedence = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->text);
  __Pyx_DECREF(__pyx_v___pyx_result->text);
  __pyx_v___pyx_result->text = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->unary = __pyx_t_4;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, tuple __pyx_state):
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 6) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, tuple __pyx_state):
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConditionalOperator__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Bounds(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_9__pyx_unpickle_Bounds(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_9__pyx_unpickle_Bounds = {"__pyx_unpickle_Bounds", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_9__pyx_unpickle_Bounds, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_9__pyx_unpickle_Bounds(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bounds (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Bounds", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Bounds", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Bounds") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Bounds", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Bounds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_8__pyx_unpickle_Bounds(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_8__pyx_unpickle_Bounds(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bounds", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x181e932:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x181e932 = (child, key, parent, policy, ruletype))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x181e932) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x181e932:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x181e932 = (child, key, parent, policy, ruletype))" % __pyx_checksum)
 *     __pyx_result = Bounds.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x181e932:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x181e932 = (child, key, parent, policy, ruletype))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Bounds.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x18, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x181e932:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x181e932 = (child, key, parent, policy, ruletype))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x181e932 = (child, key, parent, policy, ruletype))" % __pyx_checksum)
 *     __pyx_result = Bounds.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Bounds), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x181e932 = (child, key, parent, policy, ruletype))" % __pyx_checksum)
 *     __pyx_result = Bounds.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Bounds.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Bounds__set_state(((struct __pyx_obj_7setools_9policyrep_Bounds *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x181e932 = (child, key, parent, policy, ruletype))" % __pyx_checksum)
 *     __pyx_result = Bounds.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, tuple __pyx_state):
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Bounds(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Bounds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Bounds__set_state(struct __pyx_obj_7setools_9policyrep_Bounds *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bounds__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, tuple __pyx_state):
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->child);
  __Pyx_DECREF(__pyx_v___pyx_result->child);
  __pyx_v___pyx_result->child = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->parent);
  __Pyx_DECREF(__pyx_v___pyx_result->parent);
  __pyx_v___pyx_result->parent = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, tuple __pyx_state):
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, tuple __pyx_state):
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Bounds__set_state(<Bounds> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Bounds__set_state(Bounds __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.child = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.parent = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Bounds__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_BaseConstraint(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_11__pyx_unpickle_BaseConstraint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_11__pyx_unpickle_BaseConstraint = {"__pyx_unpickle_BaseConstraint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_11__pyx_unpickle_BaseConstraint, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_11__pyx_unpickle_BaseConstraint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseConstraint (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseConstraint", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseConstraint", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_BaseConstraint") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseConstraint", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_10__pyx_unpickle_BaseConstraint(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_10__pyx_unpickle_BaseConstraint(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseConstraint", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa61ac84:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xa61ac84) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa61ac84:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xa61ac84:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xa6, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa61ac84:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_BaseConstraint), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseConstraint__set_state(((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = BaseConstraint.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BaseConstraint(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseConstraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseConstraint__set_state(struct __pyx_obj_7setools_9policyrep_BaseConstraint *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseConstraint__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ConstraintExpression))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->expression);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->expression));
  __pyx_v___pyx_result->expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->tclass);
  __Pyx_DECREF(__pyx_v___pyx_result->tclass);
  __pyx_v___pyx_result->tclass = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseConstraint__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Constraint(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_13__pyx_unpickle_Constraint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_13__pyx_unpickle_Constraint = {"__pyx_unpickle_Constraint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_13__pyx_unpickle_Constraint, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_13__pyx_unpickle_Constraint(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Constraint (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Constraint", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Constraint", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Constraint") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Constraint", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Constraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_12__pyx_unpickle_Constraint(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_12__pyx_unpickle_Constraint(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Constraint", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x3815b7b:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x3815b7b = (expression, key, perms, policy, ruletype, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x3815b7b) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x3815b7b:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x3815b7b = (expression, key, perms, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Constraint.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x3815b7b:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x3815b7b = (expression, key, perms, policy, ruletype, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Constraint.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x38, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x3815b7b:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x3815b7b = (expression, key, perms, policy, ruletype, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x3815b7b = (expression, key, perms, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Constraint.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Constraint), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x3815b7b = (expression, key, perms, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Constraint.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Constraint.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Constraint__set_state(((struct __pyx_obj_7setools_9policyrep_Constraint *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x3815b7b = (expression, key, perms, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Constraint.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Constraint(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Constraint", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Constraint__set_state(struct __pyx_obj_7setools_9policyrep_Constraint *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Constraint__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ConstraintExpression))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.expression);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.expression));
  __pyx_v___pyx_result->__pyx_base.expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 6) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Constraint__set_state(<Constraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Constraint__set_state(Constraint __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.perms = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Constraint__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Validatetrans(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_15__pyx_unpickle_Validatetrans(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_15__pyx_unpickle_Validatetrans = {"__pyx_unpickle_Validatetrans", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_15__pyx_unpickle_Validatetrans, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_15__pyx_unpickle_Validatetrans(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Validatetrans (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Validatetrans", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Validatetrans", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Validatetrans") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Validatetrans", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Validatetrans", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_14__pyx_unpickle_Validatetrans(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_14__pyx_unpickle_Validatetrans(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Validatetrans", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa61ac84:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xa61ac84) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa61ac84:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xa61ac84:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xa6, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa61ac84:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Validatetrans.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Validatetrans), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Validatetrans__set_state(((struct __pyx_obj_7setools_9policyrep_Validatetrans *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa61ac84 = (expression, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Validatetrans.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Validatetrans(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Validatetrans", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Validatetrans__set_state(struct __pyx_obj_7setools_9policyrep_Validatetrans *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Validatetrans__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ConstraintExpression))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.expression);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.expression));
  __pyx_v___pyx_result->__pyx_base.expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __pyx_v___pyx_result->__pyx_base.tclass = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, tuple __pyx_state):
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Validatetrans__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_ConstraintExpression(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression = {"__pyx_unpickle_ConstraintExpression", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExpression (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExpression", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExpression", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_ConstraintExpression") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExpression", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExpression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_16__pyx_unpickle_ConstraintExpression(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_16__pyx_unpickle_ConstraintExpression(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExpression", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x399ea0b:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x399ea0b = (_infix, _postfix, key, mls, policy, roles, types, users))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x399ea0b) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x399ea0b:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x399ea0b = (_infix, _postfix, key, mls, policy, roles, types, users))" % __pyx_checksum)
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x399ea0b:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x399ea0b = (_infix, _postfix, key, mls, policy, roles, types, users))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x39, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x399ea0b:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x399ea0b = (_infix, _postfix, key, mls, policy, roles, types, users))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x399ea0b = (_infix, _postfix, key, mls, policy, roles, types, users))" % __pyx_checksum)
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExpression), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x399ea0b = (_infix, _postfix, key, mls, policy, roles, types, users))" % __pyx_checksum)
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExpression__set_state(((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x399ea0b = (_infix, _postfix, key, mls, policy, roles, types, users))" % __pyx_checksum)
 *     __pyx_result = ConstraintExpression.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, tuple __pyx_state):
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ConstraintExpression(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExpression", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExpression__set_state(struct __pyx_obj_7setools_9policyrep_ConstraintExpression *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExpression__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, tuple __pyx_state):
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_infix);
  __Pyx_DECREF(__pyx_v___pyx_result->_infix);
  __pyx_v___pyx_result->_infix = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_postfix);
  __Pyx_DECREF(__pyx_v___pyx_result->_postfix);
  __pyx_v___pyx_result->_postfix = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->mls = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->roles);
  __Pyx_DECREF(__pyx_v___pyx_result->roles);
  __pyx_v___pyx_result->roles = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->types);
  __Pyx_DECREF(__pyx_v___pyx_result->types);
  __pyx_v___pyx_result->types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->users);
  __Pyx_DECREF(__pyx_v___pyx_result->users);
  __pyx_v___pyx_result->users = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, tuple __pyx_state):
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 8) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, tuple __pyx_state):
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExpression__set_state(<ConstraintExpression> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExpression__set_state(ConstraintExpression __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._infix = __pyx_state[0]; __pyx_result._postfix = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.mls = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]; __pyx_result.types = __pyx_state[6]; __pyx_result.users = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExpression__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_ConstraintExprNode(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode = {"__pyx_unpickle_ConstraintExprNode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExprNode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExprNode", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExprNode", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_ConstraintExprNode") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ConstraintExprNode", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExprNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_18__pyx_unpickle_ConstraintExprNode(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_18__pyx_unpickle_ConstraintExprNode(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExprNode", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x786ca01:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x786ca01 = (_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x786ca01) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x786ca01:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x786ca01 = (_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users))" % __pyx_checksum)
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x786ca01:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x786ca01 = (_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x78, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x786ca01:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x786ca01 = (_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x786ca01 = (_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users))" % __pyx_checksum)
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprNode), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x786ca01 = (_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users))" % __pyx_checksum)
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExprNode__set_state(((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x786ca01 = (_expression, _names, _symbol_type, expression_type, key, mls, operator, policy, roles, types, users))" % __pyx_checksum)
 *     __pyx_result = ConstraintExprNode.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, tuple __pyx_state):
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ConstraintExprNode(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExprNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ConstraintExprNode__set_state(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ConstraintExprNode__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, tuple __pyx_state):
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[11])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_expression);
  __Pyx_DECREF(__pyx_v___pyx_result->_expression);
  __pyx_v___pyx_result->_expression = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_names);
  __Pyx_DECREF(__pyx_v___pyx_result->_names);
  __pyx_v___pyx_result->_names = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_symbol_type = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->expression_type = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->mls = __pyx_t_4;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->operator = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->roles = __pyx_t_4;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->types = __pyx_t_4;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->users = __pyx_t_4;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, tuple __pyx_state):
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[11])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 11) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[11])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, tuple __pyx_state):
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[11])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ConstraintExprNode__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Context(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_21__pyx_unpickle_Context(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_21__pyx_unpickle_Context = {"__pyx_unpickle_Context", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_21__pyx_unpickle_Context, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_21__pyx_unpickle_Context(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Context (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Context", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Context", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Context") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Context", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_20__pyx_unpickle_Context(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_20__pyx_unpickle_Context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Context", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf33319d:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf33319d = (_range, key, policy, role, type_, user))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xf33319d) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf33319d:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf33319d = (_range, key, policy, role, type_, user))" % __pyx_checksum)
 *     __pyx_result = Context.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xf33319d:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf33319d = (_range, key, policy, role, type_, user))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Context.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xf3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf33319d:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf33319d = (_range, key, policy, role, type_, user))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf33319d = (_range, key, policy, role, type_, user))" % __pyx_checksum)
 *     __pyx_result = Context.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Context), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf33319d = (_range, key, policy, role, type_, user))" % __pyx_checksum)
 *     __pyx_result = Context.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Context.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Context__set_state(((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf33319d = (_range, key, policy, role, type_, user))" % __pyx_checksum)
 *     __pyx_result = Context.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, tuple __pyx_state):
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Context(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Context__set_state(struct __pyx_obj_7setools_9policyrep_Context *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Context__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, tuple __pyx_state):
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Range))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_range);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->_range));
  __pyx_v___pyx_result->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Role))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->role);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->role));
  __pyx_v___pyx_result->role = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->type_);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->type_));
  __pyx_v___pyx_result->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_User))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->user);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->user));
  __pyx_v___pyx_result->user = ((struct __pyx_obj_7setools_9policyrep_User *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, tuple __pyx_state):
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 6) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, tuple __pyx_state):
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Context__set_state(<Context> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Context__set_state(Context __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._range = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.role = __pyx_state[3]; __pyx_result.type_ = __pyx_state[4]; __pyx_result.user = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Context__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Default(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_23__pyx_unpickle_Default(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_23__pyx_unpickle_Default = {"__pyx_unpickle_Default", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_23__pyx_unpickle_Default, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_23__pyx_unpickle_Default(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Default (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Default", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Default", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Default") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Default", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Default", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_22__pyx_unpickle_Default(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_22__pyx_unpickle_Default(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Default", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55c637:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55c637 = (_default, key, policy, ruletype, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xa55c637) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55c637:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55c637 = (_default, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Default.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xa55c637:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55c637 = (_default, key, policy, ruletype, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Default.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xa5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55c637:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55c637 = (_default, key, policy, ruletype, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55c637 = (_default, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Default.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Default), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55c637 = (_default, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Default.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Default.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Default__set_state(((struct __pyx_obj_7setools_9policyrep_Default *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55c637 = (_default, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = Default.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, tuple __pyx_state):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Default(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Default", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Default__set_state(struct __pyx_obj_7setools_9policyrep_Default *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Default__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, tuple __pyx_state):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_default);
  __Pyx_DECREF(__pyx_v___pyx_result->_default);
  __pyx_v___pyx_result->_default = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->tclass));
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, tuple __pyx_state):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, tuple __pyx_state):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Default__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_DefaultRange(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_25__pyx_unpickle_DefaultRange(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_25__pyx_unpickle_DefaultRange = {"__pyx_unpickle_DefaultRange", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_25__pyx_unpickle_DefaultRange, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_25__pyx_unpickle_DefaultRange(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_DefaultRange (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_DefaultRange", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_DefaultRange", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_DefaultRange") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_DefaultRange", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_DefaultRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_24__pyx_unpickle_DefaultRange(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_24__pyx_unpickle_DefaultRange(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_DefaultRange", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xaab4df4:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xaab4df4 = (_default, default_range, key, policy, ruletype, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xaab4df4) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xaab4df4:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xaab4df4 = (_default, default_range, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xaab4df4:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xaab4df4 = (_default, default_range, key, policy, ruletype, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xaa, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xaab4df4:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xaab4df4 = (_default, default_range, key, policy, ruletype, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xaab4df4 = (_default, default_range, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = DefaultRange.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_DefaultRange), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xaab4df4 = (_default, default_range, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_DefaultRange__set_state(((struct __pyx_obj_7setools_9policyrep_DefaultRange *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xaab4df4 = (_default, default_range, key, policy, ruletype, tclass))" % __pyx_checksum)
 *     __pyx_result = DefaultRange.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, tuple __pyx_state):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_DefaultRange(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_DefaultRange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_DefaultRange__set_state(struct __pyx_obj_7setools_9policyrep_DefaultRange *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_DefaultRange__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, tuple __pyx_state):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._default);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._default);
  __pyx_v___pyx_result->__pyx_base._default = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->default_range);
  __Pyx_DECREF(__pyx_v___pyx_result->default_range);
  __pyx_v___pyx_result->default_range = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass));
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, tuple __pyx_state):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 6) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, tuple __pyx_state):
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_DefaultRange__set_state(<DefaultRange> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_DefaultRange__set_state(DefaultRange __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.default_range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.tclass = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_DefaultRange__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_FSUse(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_27__pyx_unpickle_FSUse(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_27__pyx_unpickle_FSUse = {"__pyx_unpickle_FSUse", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_27__pyx_unpickle_FSUse, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_27__pyx_unpickle_FSUse(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_FSUse (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FSUse", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FSUse", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_FSUse") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FSUse", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FSUse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_26__pyx_unpickle_FSUse(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_26__pyx_unpickle_FSUse(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FSUse", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdc51194:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdc51194 = (context, fs, key, policy, ruletype))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xdc51194) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdc51194:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdc51194 = (context, fs, key, policy, ruletype))" % __pyx_checksum)
 *     __pyx_result = FSUse.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xdc51194:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdc51194 = (context, fs, key, policy, ruletype))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = FSUse.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xdc, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdc51194:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdc51194 = (context, fs, key, policy, ruletype))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdc51194 = (context, fs, key, policy, ruletype))" % __pyx_checksum)
 *     __pyx_result = FSUse.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_FSUse), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdc51194 = (context, fs, key, policy, ruletype))" % __pyx_checksum)
 *     __pyx_result = FSUse.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = FSUse.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_FSUse__set_state(((struct __pyx_obj_7setools_9policyrep_FSUse *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdc51194 = (context, fs, key, policy, ruletype))" % __pyx_checksum)
 *     __pyx_result = FSUse.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_FSUse(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FSUse", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_FSUse__set_state(struct __pyx_obj_7setools_9policyrep_FSUse *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FSUse__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->fs);
  __Pyx_DECREF(__pyx_v___pyx_result->fs);
  __pyx_v___pyx_result->fs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FSUse__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_GenfsFiletype(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype = {"__pyx_unpickle_GenfsFiletype", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_GenfsFiletype (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GenfsFiletype", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GenfsFiletype", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_GenfsFiletype") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GenfsFiletype", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_GenfsFiletype", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_28__pyx_unpickle_GenfsFiletype(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_28__pyx_unpickle_GenfsFiletype(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_GenfsFiletype", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xd41d8cd) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xd41d8cd:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xd4, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsFiletype), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_GenfsFiletype__set_state(((struct __pyx_obj_7setools_9policyrep_GenfsFiletype *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = GenfsFiletype.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_GenfsFiletype(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_GenfsFiletype", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_GenfsFiletype__set_state(struct __pyx_obj_7setools_9policyrep_GenfsFiletype *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_GenfsFiletype__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_2 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(6, 12, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_2 > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(6, 12, __pyx_L1_error)
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 13, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_GenfsFiletype__set_state(<GenfsFiletype> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GenfsFiletype__set_state(GenfsFiletype __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_GenfsFiletype__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Genfscon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_31__pyx_unpickle_Genfscon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_31__pyx_unpickle_Genfscon = {"__pyx_unpickle_Genfscon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_31__pyx_unpickle_Genfscon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_31__pyx_unpickle_Genfscon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Genfscon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Genfscon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Genfscon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Genfscon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Genfscon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Genfscon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_30__pyx_unpickle_Genfscon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_30__pyx_unpickle_Genfscon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Genfscon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfef56cc:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfef56cc = (context, filetype, fs, key, path, policy, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xfef56cc) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfef56cc:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfef56cc = (context, filetype, fs, key, path, policy, tclass))" % __pyx_checksum)
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xfef56cc:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfef56cc = (context, filetype, fs, key, path, policy, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xfe, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfef56cc:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfef56cc = (context, filetype, fs, key, path, policy, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfef56cc = (context, filetype, fs, key, path, policy, tclass))" % __pyx_checksum)
 *     __pyx_result = Genfscon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Genfscon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfef56cc = (context, filetype, fs, key, path, policy, tclass))" % __pyx_checksum)
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Genfscon__set_state(((struct __pyx_obj_7setools_9policyrep_Genfscon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfef56cc = (context, filetype, fs, key, path, policy, tclass))" % __pyx_checksum)
 *     __pyx_result = Genfscon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Genfscon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Genfscon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Genfscon__set_state(struct __pyx_obj_7setools_9policyrep_Genfscon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Genfscon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->filetype);
  __Pyx_DECREF(__pyx_v___pyx_result->filetype);
  __pyx_v___pyx_result->filetype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->fs);
  __Pyx_DECREF(__pyx_v___pyx_result->fs);
  __pyx_v___pyx_result->fs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->path);
  __Pyx_DECREF(__pyx_v___pyx_result->path);
  __pyx_v___pyx_result->path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->tclass));
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 7) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Genfscon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_InitialSID(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_33__pyx_unpickle_InitialSID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_33__pyx_unpickle_InitialSID = {"__pyx_unpickle_InitialSID", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_33__pyx_unpickle_InitialSID, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_33__pyx_unpickle_InitialSID(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_InitialSID (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InitialSID", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InitialSID", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_InitialSID") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_InitialSID", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_InitialSID", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_32__pyx_unpickle_InitialSID(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_32__pyx_unpickle_InitialSID(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_InitialSID", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd045ac9:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd045ac9 = (context, key, name, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xd045ac9) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd045ac9:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd045ac9 = (context, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xd045ac9:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd045ac9 = (context, key, name, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xd0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd045ac9:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd045ac9 = (context, key, name, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd045ac9 = (context, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = InitialSID.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_InitialSID), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd045ac9 = (context, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_InitialSID__set_state(((struct __pyx_obj_7setools_9policyrep_InitialSID *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd045ac9 = (context, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = InitialSID.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_InitialSID(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_InitialSID", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_InitialSID__set_state(struct __pyx_obj_7setools_9policyrep_InitialSID *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_InitialSID__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_InitialSID__set_state(<InitialSID> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_InitialSID__set_state(InitialSID __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_InitialSID__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Category(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_35__pyx_unpickle_Category(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_35__pyx_unpickle_Category = {"__pyx_unpickle_Category", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_35__pyx_unpickle_Category, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_35__pyx_unpickle_Category(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Category (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Category", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Category", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Category") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Category", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Category", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_34__pyx_unpickle_Category(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_34__pyx_unpickle_Category(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Category", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x7c1bbae:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x7c1bbae = (_aliases, _value, key, name, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x7c1bbae) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x7c1bbae:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x7c1bbae = (_aliases, _value, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Category.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x7c1bbae:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x7c1bbae = (_aliases, _value, key, name, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Category.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x7c, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x7c1bbae:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x7c1bbae = (_aliases, _value, key, name, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x7c1bbae = (_aliases, _value, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Category.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Category), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x7c1bbae = (_aliases, _value, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Category.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Category.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Category__set_state(((struct __pyx_obj_7setools_9policyrep_Category *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x7c1bbae = (_aliases, _value, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Category.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Category(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Category", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Category__set_state(struct __pyx_obj_7setools_9policyrep_Category *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Category__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_aliases);
  __Pyx_DECREF(__pyx_v___pyx_result->_aliases);
  __pyx_v___pyx_result->_aliases = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_value = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 5) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Category__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Sensitivity(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_37__pyx_unpickle_Sensitivity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_37__pyx_unpickle_Sensitivity = {"__pyx_unpickle_Sensitivity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_37__pyx_unpickle_Sensitivity, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_37__pyx_unpickle_Sensitivity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Sensitivity (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Sensitivity", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Sensitivity", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Sensitivity") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Sensitivity", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Sensitivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_36__pyx_unpickle_Sensitivity(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_36__pyx_unpickle_Sensitivity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Sensitivity", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb00469d:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb00469d = (_aliases, _leveldecl, _value, key, name, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb00469d) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb00469d:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb00469d = (_aliases, _leveldecl, _value, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xb00469d:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb00469d = (_aliases, _leveldecl, _value, key, name, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb00469d:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb00469d = (_aliases, _leveldecl, _value, key, name, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb00469d = (_aliases, _leveldecl, _value, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Sensitivity.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Sensitivity), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb00469d = (_aliases, _leveldecl, _value, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Sensitivity__set_state(((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb00469d = (_aliases, _leveldecl, _value, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Sensitivity.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Sensitivity(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Sensitivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Sensitivity__set_state(struct __pyx_obj_7setools_9policyrep_Sensitivity *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  uintptr_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Sensitivity__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_aliases);
  __Pyx_DECREF(__pyx_v___pyx_result->_aliases);
  __pyx_v___pyx_result->_aliases = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_LevelDecl))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_leveldecl);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->_leveldecl));
  __pyx_v___pyx_result->_leveldecl = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_value = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 6) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Sensitivity__set_state(<Sensitivity> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Sensitivity__set_state(Sensitivity __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._leveldecl = __pyx_state[1]; __pyx_result._value = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Sensitivity__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_BaseMLSLevel(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel = {"__pyx_unpickle_BaseMLSLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseMLSLevel (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseMLSLevel", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseMLSLevel", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_BaseMLSLevel") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseMLSLevel", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseMLSLevel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_38__pyx_unpickle_BaseMLSLevel(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

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

static PyObject *__pyx_pf_7setools_9policyrep_38__pyx_unpickle_BaseMLSLevel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseMLSLevel", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x97e1db4) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x97e1db4:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x97, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_BaseMLSLevel), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseMLSLevel__set_state(((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = BaseMLSLevel.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BaseMLSLevel(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseMLSLevel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseMLSLevel__set_state(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseMLSLevel__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PySet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_categories);
  __Pyx_DECREF(__pyx_v___pyx_result->_categories);
  __pyx_v___pyx_result->_categories = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->sensitivity);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->sensitivity));
  __pyx_v___pyx_result->sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseMLSLevel__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_LevelDecl(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_41__pyx_unpickle_LevelDecl(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_41__pyx_unpickle_LevelDecl = {"__pyx_unpickle_LevelDecl", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_41__pyx_unpickle_LevelDecl, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_41__pyx_unpickle_LevelDecl(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_LevelDecl (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_LevelDecl", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_LevelDecl", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_LevelDecl") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_LevelDecl", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_LevelDecl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_40__pyx_unpickle_LevelDecl(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_40__pyx_unpickle_LevelDecl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_LevelDecl", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x97e1db4) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x97e1db4:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x97, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = LevelDecl.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_LevelDecl), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_LevelDecl__set_state(((struct __pyx_obj_7setools_9policyrep_LevelDecl *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = LevelDecl.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_LevelDecl(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_LevelDecl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_LevelDecl__set_state(struct __pyx_obj_7setools_9policyrep_LevelDecl *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_LevelDecl__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PySet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._categories);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._categories);
  __pyx_v___pyx_result->__pyx_base._categories = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.sensitivity);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.sensitivity));
  __pyx_v___pyx_result->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_LevelDecl__set_state(<LevelDecl> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_LevelDecl__set_state(LevelDecl __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_LevelDecl__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Level(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_43__pyx_unpickle_Level(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_43__pyx_unpickle_Level = {"__pyx_unpickle_Level", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_43__pyx_unpickle_Level, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_43__pyx_unpickle_Level(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Level (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Level", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Level", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Level") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Level", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_42__pyx_unpickle_Level(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_42__pyx_unpickle_Level(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Level", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x97e1db4) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = Level.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x97e1db4:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Level.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x97, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x97e1db4:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = Level.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Level), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = Level.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Level.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Level__set_state(((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x97e1db4 = (_categories, key, policy, sensitivity))" % __pyx_checksum)
 *     __pyx_result = Level.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Level(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Level__set_state(struct __pyx_obj_7setools_9policyrep_Level *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Level__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PySet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._categories);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base._categories);
  __pyx_v___pyx_result->__pyx_base._categories = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Sensitivity))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.sensitivity);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.sensitivity));
  __pyx_v___pyx_result->__pyx_base.sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, tuple __pyx_state):
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Level__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Range(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_45__pyx_unpickle_Range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_45__pyx_unpickle_Range = {"__pyx_unpickle_Range", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_45__pyx_unpickle_Range, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_45__pyx_unpickle_Range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Range (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Range", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Range", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Range") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Range", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_44__pyx_unpickle_Range(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_44__pyx_unpickle_Range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Range", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xe9a2003:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xe9a2003 = (high, key, low, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xe9a2003) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xe9a2003:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xe9a2003 = (high, key, low, policy))" % __pyx_checksum)
 *     __pyx_result = Range.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xe9a2003:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xe9a2003 = (high, key, low, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Range.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xe9, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xe9a2003:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xe9a2003 = (high, key, low, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xe9a2003 = (high, key, low, policy))" % __pyx_checksum)
 *     __pyx_result = Range.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Range), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xe9a2003 = (high, key, low, policy))" % __pyx_checksum)
 *     __pyx_result = Range.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Range.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Range__set_state(((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xe9a2003 = (high, key, low, policy))" % __pyx_checksum)
 *     __pyx_result = Range.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, tuple __pyx_state):
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Range(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Range__set_state(struct __pyx_obj_7setools_9policyrep_Range *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Range__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, tuple __pyx_state):
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Level))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->high);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->high));
  __pyx_v___pyx_result->high = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Level))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->low);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->low));
  __pyx_v___pyx_result->low = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, tuple __pyx_state):
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, tuple __pyx_state):
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Range__set_state(<Range> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Range__set_state(Range __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.high = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.low = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Range__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_MLSRule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_47__pyx_unpickle_MLSRule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_47__pyx_unpickle_MLSRule = {"__pyx_unpickle_MLSRule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_47__pyx_unpickle_MLSRule, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_47__pyx_unpickle_MLSRule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_MLSRule (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MLSRule", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MLSRule", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_MLSRule") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MLSRule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_MLSRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_46__pyx_unpickle_MLSRule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_46__pyx_unpickle_MLSRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MLSRule", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2be8a15:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2be8a15 = (extended, key, origin, policy, rng, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x2be8a15) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2be8a15:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2be8a15 = (extended, key, origin, policy, rng, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x2be8a15:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2be8a15 = (extended, key, origin, policy, rng, ruletype, source, target, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x2b, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2be8a15:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2be8a15 = (extended, key, origin, policy, rng, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2be8a15 = (extended, key, origin, policy, rng, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = MLSRule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_MLSRule), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2be8a15 = (extended, key, origin, policy, rng, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_MLSRule__set_state(((struct __pyx_obj_7setools_9policyrep_MLSRule *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2be8a15 = (extended, key, origin, policy, rng, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = MLSRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MLSRule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_MLSRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_MLSRule__set_state(struct __pyx_obj_7setools_9policyrep_MLSRule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MLSRule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->rng);
  __Pyx_DECREF(__pyx_v___pyx_result->rng);
  __pyx_v___pyx_result->rng = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->tclass));
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 9) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[9])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_MLSRule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Ibendportcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_49__pyx_unpickle_Ibendportcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_49__pyx_unpickle_Ibendportcon = {"__pyx_unpickle_Ibendportcon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_49__pyx_unpickle_Ibendportcon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_49__pyx_unpickle_Ibendportcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibendportcon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibendportcon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibendportcon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Ibendportcon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibendportcon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibendportcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_48__pyx_unpickle_Ibendportcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_48__pyx_unpickle_Ibendportcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibendportcon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd15903e:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd15903e = (context, key, name, policy, port))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xd15903e) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd15903e:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd15903e = (context, key, name, policy, port))" % __pyx_checksum)
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xd15903e:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd15903e = (context, key, name, policy, port))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xd1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd15903e:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd15903e = (context, key, name, policy, port))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd15903e = (context, key, name, policy, port))" % __pyx_checksum)
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Ibendportcon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd15903e = (context, key, name, policy, port))" % __pyx_checksum)
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ibendportcon__set_state(((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd15903e = (context, key, name, policy, port))" % __pyx_checksum)
 *     __pyx_result = Ibendportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ibendportcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibendportcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ibendportcon__set_state(struct __pyx_obj_7setools_9policyrep_Ibendportcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  unsigned int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibendportcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_unsigned_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->port = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 5) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ibendportcon__set_state(<Ibendportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibendportcon__set_state(Ibendportcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.port = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibendportcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Ibpkeycon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon = {"__pyx_unpickle_Ibpkeycon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibpkeycon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibpkeycon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibpkeycon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Ibpkeycon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ibpkeycon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibpkeycon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_50__pyx_unpickle_Ibpkeycon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_50__pyx_unpickle_Ibpkeycon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibpkeycon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2dd8c44:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2dd8c44 = (context, key, pkeys, policy, subnet_prefix))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x2dd8c44) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2dd8c44:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2dd8c44 = (context, key, pkeys, policy, subnet_prefix))" % __pyx_checksum)
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x2dd8c44:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2dd8c44 = (context, key, pkeys, policy, subnet_prefix))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x2d, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x2dd8c44:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2dd8c44 = (context, key, pkeys, policy, subnet_prefix))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2dd8c44 = (context, key, pkeys, policy, subnet_prefix))" % __pyx_checksum)
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Ibpkeycon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2dd8c44 = (context, key, pkeys, policy, subnet_prefix))" % __pyx_checksum)
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ibpkeycon__set_state(((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x2dd8c44 = (context, key, pkeys, policy, subnet_prefix))" % __pyx_checksum)
 *     __pyx_result = Ibpkeycon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ibpkeycon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibpkeycon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ibpkeycon__set_state(struct __pyx_obj_7setools_9policyrep_Ibpkeycon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ibpkeycon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->pkeys);
  __Pyx_DECREF(__pyx_v___pyx_result->pkeys);
  __pyx_v___pyx_result->pkeys = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->subnet_prefix);
  __Pyx_DECREF(__pyx_v___pyx_result->subnet_prefix);
  __pyx_v___pyx_result->subnet_prefix = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ibpkeycon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Netifcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_53__pyx_unpickle_Netifcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_53__pyx_unpickle_Netifcon = {"__pyx_unpickle_Netifcon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_53__pyx_unpickle_Netifcon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_53__pyx_unpickle_Netifcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Netifcon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Netifcon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Netifcon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Netifcon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Netifcon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Netifcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_52__pyx_unpickle_Netifcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_52__pyx_unpickle_Netifcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Netifcon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa9f2ad7:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa9f2ad7 = (context, key, netif, packet, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xa9f2ad7) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa9f2ad7:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa9f2ad7 = (context, key, netif, packet, policy))" % __pyx_checksum)
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xa9f2ad7:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa9f2ad7 = (context, key, netif, packet, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xa9, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa9f2ad7:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa9f2ad7 = (context, key, netif, packet, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa9f2ad7 = (context, key, netif, packet, policy))" % __pyx_checksum)
 *     __pyx_result = Netifcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Netifcon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa9f2ad7 = (context, key, netif, packet, policy))" % __pyx_checksum)
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Netifcon__set_state(((struct __pyx_obj_7setools_9policyrep_Netifcon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa9f2ad7 = (context, key, netif, packet, policy))" % __pyx_checksum)
 *     __pyx_result = Netifcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Netifcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Netifcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Netifcon__set_state(struct __pyx_obj_7setools_9policyrep_Netifcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Netifcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->netif);
  __Pyx_DECREF(__pyx_v___pyx_result->netif);
  __pyx_v___pyx_result->netif = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->packet);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->packet));
  __pyx_v___pyx_result->packet = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Netifcon__set_state(<Netifcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Netifcon__set_state(Netifcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.netif = __pyx_state[2]; __pyx_result.packet = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Netifcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nodecon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_55__pyx_unpickle_Nodecon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_55__pyx_unpickle_Nodecon = {"__pyx_unpickle_Nodecon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_55__pyx_unpickle_Nodecon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_55__pyx_unpickle_Nodecon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nodecon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nodecon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nodecon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Nodecon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nodecon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Nodecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_54__pyx_unpickle_Nodecon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_54__pyx_unpickle_Nodecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nodecon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd59413d:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd59413d = (context, ip_version, key, network, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xd59413d) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd59413d:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd59413d = (context, ip_version, key, network, policy))" % __pyx_checksum)
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xd59413d:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd59413d = (context, ip_version, key, network, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xd5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd59413d:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd59413d = (context, ip_version, key, network, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd59413d = (context, ip_version, key, network, policy))" % __pyx_checksum)
 *     __pyx_result = Nodecon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Nodecon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd59413d = (context, ip_version, key, network, policy))" % __pyx_checksum)
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Nodecon__set_state(((struct __pyx_obj_7setools_9policyrep_Nodecon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd59413d = (context, ip_version, key, network, policy))" % __pyx_checksum)
 *     __pyx_result = Nodecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nodecon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Nodecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Nodecon__set_state(struct __pyx_obj_7setools_9policyrep_Nodecon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nodecon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ip_version);
  __Pyx_DECREF(__pyx_v___pyx_result->ip_version);
  __pyx_v___pyx_result->ip_version = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->network);
  __Pyx_DECREF(__pyx_v___pyx_result->network);
  __pyx_v___pyx_result->network = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Nodecon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Portcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_57__pyx_unpickle_Portcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_57__pyx_unpickle_Portcon = {"__pyx_unpickle_Portcon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_57__pyx_unpickle_Portcon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_57__pyx_unpickle_Portcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Portcon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Portcon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Portcon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Portcon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Portcon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Portcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_56__pyx_unpickle_Portcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_56__pyx_unpickle_Portcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Portcon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdb6ffdd:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdb6ffdd = (context, key, policy, ports, protocol))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xdb6ffdd) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdb6ffdd:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdb6ffdd = (context, key, policy, ports, protocol))" % __pyx_checksum)
 *     __pyx_result = Portcon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xdb6ffdd:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdb6ffdd = (context, key, policy, ports, protocol))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Portcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xdb, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdb6ffdd:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdb6ffdd = (context, key, policy, ports, protocol))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdb6ffdd = (context, key, policy, ports, protocol))" % __pyx_checksum)
 *     __pyx_result = Portcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Portcon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdb6ffdd = (context, key, policy, ports, protocol))" % __pyx_checksum)
 *     __pyx_result = Portcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Portcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Portcon__set_state(((struct __pyx_obj_7setools_9policyrep_Portcon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdb6ffdd = (context, key, policy, ports, protocol))" % __pyx_checksum)
 *     __pyx_result = Portcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Portcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Portcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Portcon__set_state(struct __pyx_obj_7setools_9policyrep_Portcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Portcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ports);
  __Pyx_DECREF(__pyx_v___pyx_result->ports);
  __pyx_v___pyx_result->ports = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->protocol);
  __Pyx_DECREF(__pyx_v___pyx_result->protocol);
  __pyx_v___pyx_result->protocol = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Portcon__set_state(<Portcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Portcon__set_state(Portcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]; __pyx_result.protocol = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Portcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Common(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_59__pyx_unpickle_Common(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_59__pyx_unpickle_Common = {"__pyx_unpickle_Common", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_59__pyx_unpickle_Common, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_59__pyx_unpickle_Common(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Common (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Common", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Common", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Common") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Common", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Common", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_58__pyx_unpickle_Common(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_58__pyx_unpickle_Common(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Common", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb48e627:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb48e627 = (_perm_table, key, name, perms, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb48e627) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb48e627:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb48e627 = (_perm_table, key, name, perms, policy))" % __pyx_checksum)
 *     __pyx_result = Common.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xb48e627:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb48e627 = (_perm_table, key, name, perms, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Common.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb4, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb48e627:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb48e627 = (_perm_table, key, name, perms, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb48e627 = (_perm_table, key, name, perms, policy))" % __pyx_checksum)
 *     __pyx_result = Common.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Common), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb48e627 = (_perm_table, key, name, perms, policy))" % __pyx_checksum)
 *     __pyx_result = Common.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Common.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Common__set_state(((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb48e627 = (_perm_table, key, name, perms, policy))" % __pyx_checksum)
 *     __pyx_result = Common.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, tuple __pyx_state):
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Common(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Common", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Common__set_state(struct __pyx_obj_7setools_9policyrep_Common *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Common__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, tuple __pyx_state):
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_perm_table);
  __Pyx_DECREF(__pyx_v___pyx_result->_perm_table);
  __pyx_v___pyx_result->_perm_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, tuple __pyx_state):
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, tuple __pyx_state):
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Common__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_ObjClass(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_61__pyx_unpickle_ObjClass(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_61__pyx_unpickle_ObjClass = {"__pyx_unpickle_ObjClass", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_61__pyx_unpickle_ObjClass, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_61__pyx_unpickle_ObjClass(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ObjClass (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ObjClass", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ObjClass", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_ObjClass") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ObjClass", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ObjClass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_60__pyx_unpickle_ObjClass(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_60__pyx_unpickle_ObjClass(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ObjClass", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x676792c:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x676792c = (_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x676792c) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x676792c:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x676792c = (_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy))" % __pyx_checksum)
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x676792c:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x676792c = (_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x67, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x676792c:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x676792c = (_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x676792c = (_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy))" % __pyx_checksum)
 *     __pyx_result = ObjClass.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_ObjClass), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x676792c = (_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy))" % __pyx_checksum)
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_ObjClass__set_state(((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x676792c = (_common, _constraints, _defaults, _perm_table, _validatetrans, key, name, nprim, perms, policy))" % __pyx_checksum)
 *     __pyx_result = ObjClass.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, tuple __pyx_state):
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ObjClass(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ObjClass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_ObjClass__set_state(struct __pyx_obj_7setools_9policyrep_ObjClass *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  uint32_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ObjClass__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, tuple __pyx_state):
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Common))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_common);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->_common));
  __pyx_v___pyx_result->_common = ((struct __pyx_obj_7setools_9policyrep_Common *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_constraints);
  __Pyx_DECREF(__pyx_v___pyx_result->_constraints);
  __pyx_v___pyx_result->_constraints = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_defaults);
  __Pyx_DECREF(__pyx_v___pyx_result->_defaults);
  __pyx_v___pyx_result->_defaults = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_perm_table);
  __Pyx_DECREF(__pyx_v___pyx_result->_perm_table);
  __pyx_v___pyx_result->_perm_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_validatetrans);
  __Pyx_DECREF(__pyx_v___pyx_result->_validatetrans);
  __pyx_v___pyx_result->_validatetrans = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->nprim = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, tuple __pyx_state):
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 10) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[10])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, tuple __pyx_state):
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_ObjClass__set_state(<ObjClass> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ObjClass__set_state(ObjClass __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._common = __pyx_state[0]; __pyx_result._constraints = __pyx_state[1]; __pyx_result._defaults = __pyx_state[2]; __pyx_result._perm_table = __pyx_state[3]; __pyx_result._validatetrans = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.name = __pyx_state[6]; __pyx_result.nprim = __pyx_state[7]; __pyx_result.perms = __pyx_state[8]; __pyx_result.policy = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_ObjClass__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PermissionVectorIterator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator = {"__pyx_unpickle_PermissionVectorIterator", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PermissionVectorIterator (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PermissionVectorIterator", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PermissionVectorIterator", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PermissionVectorIterator") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PermissionVectorIterator", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PermissionVectorIterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_62__pyx_unpickle_PermissionVectorIterator(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_62__pyx_unpickle_PermissionVectorIterator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PermissionVectorIterator", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xc82ae23:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc82ae23 = (curr, perm_max, perm_table, policy, vector))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xc82ae23) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xc82ae23:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc82ae23 = (curr, perm_max, perm_table, policy, vector))" % __pyx_checksum)
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xc82ae23:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc82ae23 = (curr, perm_max, perm_table, policy, vector))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xc8, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xc82ae23:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc82ae23 = (curr, perm_max, perm_table, policy, vector))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc82ae23 = (curr, perm_max, perm_table, policy, vector))" % __pyx_checksum)
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_PermissionVectorIterator), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc82ae23 = (curr, perm_max, perm_table, policy, vector))" % __pyx_checksum)
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_PermissionVectorIterator__set_state(((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc82ae23 = (curr, perm_max, perm_table, policy, vector))" % __pyx_checksum)
 *     __pyx_result = PermissionVectorIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, tuple __pyx_state):
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PermissionVectorIterator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PermissionVectorIterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PermissionVectorIterator__set_state(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uint32_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PermissionVectorIterator__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, tuple __pyx_state):
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->curr = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->perm_max = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perm_table);
  __Pyx_DECREF(__pyx_v___pyx_result->perm_table);
  __pyx_v___pyx_result->perm_table = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->vector = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, tuple __pyx_state):
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 5) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, tuple __pyx_state):
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PermissionVectorIterator__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PolicyObject(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_65__pyx_unpickle_PolicyObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_65__pyx_unpickle_PolicyObject = {"__pyx_unpickle_PolicyObject", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_65__pyx_unpickle_PolicyObject, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_65__pyx_unpickle_PolicyObject(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyObject (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyObject", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyObject", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PolicyObject") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyObject", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_64__pyx_unpickle_PolicyObject(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_64__pyx_unpickle_PolicyObject(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyObject", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x5db971a:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x5db971a = (key, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x5db971a) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x5db971a:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x5db971a = (key, policy))" % __pyx_checksum)
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x5db971a:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x5db971a = (key, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x5d, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x5db971a:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x5db971a = (key, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x5db971a = (key, policy))" % __pyx_checksum)
 *     __pyx_result = PolicyObject.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_PolicyObject), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x5db971a = (key, policy))" % __pyx_checksum)
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyObject__set_state(((struct __pyx_obj_7setools_9policyrep_PolicyObject *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x5db971a = (key, policy))" % __pyx_checksum)
 *     __pyx_result = PolicyObject.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PolicyObject(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyObject__set_state(struct __pyx_obj_7setools_9policyrep_PolicyObject *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyObject__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->policy));
  __pyx_v___pyx_result->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 2) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyObject__set_state(<PolicyObject> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyObject__set_state(PolicyObject __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.policy = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyObject__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PolicySymbol(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_67__pyx_unpickle_PolicySymbol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_67__pyx_unpickle_PolicySymbol = {"__pyx_unpickle_PolicySymbol", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_67__pyx_unpickle_PolicySymbol, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_67__pyx_unpickle_PolicySymbol(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicySymbol (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicySymbol", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicySymbol", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PolicySymbol") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicySymbol", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicySymbol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_66__pyx_unpickle_PolicySymbol(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_66__pyx_unpickle_PolicySymbol(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicySymbol", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x93ad430) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x93ad430:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x93, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_PolicySymbol), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicySymbol__set_state(((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = PolicySymbol.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PolicySymbol(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicySymbol", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicySymbol__set_state(struct __pyx_obj_7setools_9policyrep_PolicySymbol *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicySymbol__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->name);
  __Pyx_DECREF(__pyx_v___pyx_result->name);
  __pyx_v___pyx_result->name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 3) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicySymbol__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Ocontext(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_69__pyx_unpickle_Ocontext(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_69__pyx_unpickle_Ocontext = {"__pyx_unpickle_Ocontext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_69__pyx_unpickle_Ocontext, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_69__pyx_unpickle_Ocontext(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ocontext (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ocontext", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ocontext", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Ocontext") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ocontext", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ocontext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_68__pyx_unpickle_Ocontext(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_68__pyx_unpickle_Ocontext(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ocontext", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x4a7f087:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4a7f087 = (context, key, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x4a7f087) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x4a7f087:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4a7f087 = (context, key, policy))" % __pyx_checksum)
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x4a7f087:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4a7f087 = (context, key, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x4a, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x4a7f087:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4a7f087 = (context, key, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4a7f087 = (context, key, policy))" % __pyx_checksum)
 *     __pyx_result = Ocontext.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Ocontext), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4a7f087 = (context, key, policy))" % __pyx_checksum)
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ocontext__set_state(((struct __pyx_obj_7setools_9policyrep_Ocontext *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4a7f087 = (context, key, policy))" % __pyx_checksum)
 *     __pyx_result = Ocontext.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ocontext(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ocontext", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ocontext__set_state(struct __pyx_obj_7setools_9policyrep_Ocontext *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ocontext__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->context));
  __pyx_v___pyx_result->context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 3) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ocontext__set_state(<Ocontext> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ocontext__set_state(Ocontext __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ocontext__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PolicyIterator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_71__pyx_unpickle_PolicyIterator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_71__pyx_unpickle_PolicyIterator = {"__pyx_unpickle_PolicyIterator", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_71__pyx_unpickle_PolicyIterator, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_71__pyx_unpickle_PolicyIterator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyIterator (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyIterator", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyIterator", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PolicyIterator") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyIterator", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyIterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_70__pyx_unpickle_PolicyIterator(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_70__pyx_unpickle_PolicyIterator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyIterator", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf4af8b5:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf4af8b5 = (policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xf4af8b5) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf4af8b5:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf4af8b5 = (policy))" % __pyx_checksum)
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xf4af8b5:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf4af8b5 = (policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xf4, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf4af8b5:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf4af8b5 = (policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf4af8b5 = (policy))" % __pyx_checksum)
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_PolicyIterator), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf4af8b5 = (policy))" % __pyx_checksum)
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyIterator__set_state(((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf4af8b5 = (policy))" % __pyx_checksum)
 *     __pyx_result = PolicyIterator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, tuple __pyx_state):
 *     __pyx_result.policy = __pyx_state[0]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PolicyIterator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyIterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.policy = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyIterator__set_state(struct __pyx_obj_7setools_9policyrep_PolicyIterator *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyIterator__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, tuple __pyx_state):
 *     __pyx_result.policy = __pyx_state[0]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[1])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->policy));
  __pyx_v___pyx_result->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, tuple __pyx_state):
 *     __pyx_result.policy = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[1])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_4 = ((__pyx_t_3 > 1) != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result.policy = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[1])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, tuple __pyx_state):
 *     __pyx_result.policy = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[1])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.policy = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyIterator__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PolicyCapability(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_73__pyx_unpickle_PolicyCapability(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_73__pyx_unpickle_PolicyCapability = {"__pyx_unpickle_PolicyCapability", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_73__pyx_unpickle_PolicyCapability, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_73__pyx_unpickle_PolicyCapability(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyCapability (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyCapability", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyCapability", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PolicyCapability") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyCapability", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyCapability", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_72__pyx_unpickle_PolicyCapability(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_72__pyx_unpickle_PolicyCapability(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyCapability", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x93ad430) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x93ad430:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x93, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_PolicyCapability), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyCapability__set_state(((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = PolicyCapability.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PolicyCapability(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyCapability", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyCapability__set_state(struct __pyx_obj_7setools_9policyrep_PolicyCapability *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyCapability__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 3) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyCapability__set_state(<PolicyCapability> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyCapability__set_state(PolicyCapability __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyCapability__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_RoleAllow(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_75__pyx_unpickle_RoleAllow(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_75__pyx_unpickle_RoleAllow = {"__pyx_unpickle_RoleAllow", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_75__pyx_unpickle_RoleAllow, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_75__pyx_unpickle_RoleAllow(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleAllow (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleAllow", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleAllow", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_RoleAllow") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleAllow", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleAllow", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_74__pyx_unpickle_RoleAllow(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_74__pyx_unpickle_RoleAllow(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleAllow", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55d28c:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xa55d28c) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55d28c:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xa55d28c:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xa5_2, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55d28c:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 *     __pyx_result = RoleAllow.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleAllow), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_RoleAllow__set_state(((struct __pyx_obj_7setools_9policyrep_RoleAllow *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 *     __pyx_result = RoleAllow.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_RoleAllow(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleAllow", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_RoleAllow__set_state(struct __pyx_obj_7setools_9policyrep_RoleAllow *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleAllow__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 7) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleAllow__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_RoleTransition(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_77__pyx_unpickle_RoleTransition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_77__pyx_unpickle_RoleTransition = {"__pyx_unpickle_RoleTransition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_77__pyx_unpickle_RoleTransition, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_77__pyx_unpickle_RoleTransition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleTransition (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleTransition", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleTransition", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_RoleTransition") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoleTransition", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleTransition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_76__pyx_unpickle_RoleTransition(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_76__pyx_unpickle_RoleTransition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleTransition", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6a498fa:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6a498fa = (dft, extended, key, origin, policy, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x6a498fa) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6a498fa:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6a498fa = (dft, extended, key, origin, policy, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x6a498fa:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6a498fa = (dft, extended, key, origin, policy, ruletype, source, target, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x6a, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6a498fa:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6a498fa = (dft, extended, key, origin, policy, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6a498fa = (dft, extended, key, origin, policy, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = RoleTransition.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleTransition), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6a498fa = (dft, extended, key, origin, policy, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_RoleTransition__set_state(((struct __pyx_obj_7setools_9policyrep_RoleTransition *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6a498fa = (dft, extended, key, origin, policy, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = RoleTransition.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, tuple __pyx_state):
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_RoleTransition(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleTransition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_RoleTransition__set_state(struct __pyx_obj_7setools_9policyrep_RoleTransition *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoleTransition__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, tuple __pyx_state):
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Role))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->dft);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->dft));
  __pyx_v___pyx_result->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->tclass));
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, tuple __pyx_state):
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 9) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[9])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, tuple __pyx_state):
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_RoleTransition__set_state(<RoleTransition> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleTransition__set_state(RoleTransition __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.dft = __pyx_state[0]; __pyx_result.extended = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.origin = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_RoleTransition__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Role(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_79__pyx_unpickle_Role(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_79__pyx_unpickle_Role = {"__pyx_unpickle_Role", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_79__pyx_unpickle_Role, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_79__pyx_unpickle_Role(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Role (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Role", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Role", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Role") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Role", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Role", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_78__pyx_unpickle_Role(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_78__pyx_unpickle_Role(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Role", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x9a90b19:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x9a90b19) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x9a90b19:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Role.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x9a90b19:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Role.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x9a, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x9a90b19:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Role.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Role), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Role.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Role.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Role__set_state(((struct __pyx_obj_7setools_9policyrep_Role *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = Role.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, tuple __pyx_state):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Role(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Role", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Role__set_state(struct __pyx_obj_7setools_9policyrep_Role *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Role__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, tuple __pyx_state):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_types);
  __Pyx_DECREF(__pyx_v___pyx_result->_types);
  __pyx_v___pyx_result->_types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, tuple __pyx_state):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, tuple __pyx_state):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Role__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PolicyRule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_81__pyx_unpickle_PolicyRule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_81__pyx_unpickle_PolicyRule = {"__pyx_unpickle_PolicyRule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_81__pyx_unpickle_PolicyRule, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_81__pyx_unpickle_PolicyRule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyRule (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyRule", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyRule", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PolicyRule") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PolicyRule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_80__pyx_unpickle_PolicyRule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_80__pyx_unpickle_PolicyRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyRule", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55d28c:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xa55d28c) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55d28c:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xa55d28c:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xa5_2, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55d28c:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 *     __pyx_result = PolicyRule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_PolicyRule), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_PolicyRule__set_state(((struct __pyx_obj_7setools_9policyrep_PolicyRule *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55d28c = (extended, key, origin, policy, ruletype, source, target))" % __pyx_checksum)
 *     __pyx_result = PolicyRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PolicyRule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_PolicyRule__set_state(struct __pyx_obj_7setools_9policyrep_PolicyRule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PolicyRule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->origin);
  __Pyx_DECREF(__pyx_v___pyx_result->origin);
  __pyx_v___pyx_result->origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->ruletype);
  __pyx_v___pyx_result->ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->source);
  __Pyx_DECREF(__pyx_v___pyx_result->source);
  __pyx_v___pyx_result->source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->target);
  __Pyx_DECREF(__pyx_v___pyx_result->target);
  __pyx_v___pyx_result->target = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 7) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, tuple __pyx_state):
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyRule__set_state(<PolicyRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyRule__set_state(PolicyRule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_PolicyRule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_BaseTERule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_83__pyx_unpickle_BaseTERule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_83__pyx_unpickle_BaseTERule = {"__pyx_unpickle_BaseTERule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_83__pyx_unpickle_BaseTERule, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_83__pyx_unpickle_BaseTERule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseTERule (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseTERule", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseTERule", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_BaseTERule") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseTERule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseTERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_82__pyx_unpickle_BaseTERule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_82__pyx_unpickle_BaseTERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseTERule", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x4f19a8e:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4f19a8e = (_conditional, _conditional_block, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x4f19a8e) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x4f19a8e:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4f19a8e = (_conditional, _conditional_block, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x4f19a8e:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4f19a8e = (_conditional, _conditional_block, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x4f, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x4f19a8e:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4f19a8e = (_conditional, _conditional_block, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4f19a8e = (_conditional, _conditional_block, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = BaseTERule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_BaseTERule), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4f19a8e = (_conditional, _conditional_block, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseTERule__set_state(((struct __pyx_obj_7setools_9policyrep_BaseTERule *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x4f19a8e = (_conditional, _conditional_block, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = BaseTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.rule_string = __pyx_state[6]; __pyx_result.ruletype = __pyx_state[7]; __pyx_result.source = __pyx_state[8]; __pyx_result.target = __pyx_state[9]; __pyx_result.tclass = __pyx_state[10]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BaseTERule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseTERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.rule_string = __pyx_state[6]; __pyx_result.ruletype = __pyx_state[7]; __pyx_result.source = __pyx_state[8]; __pyx_result.target = __pyx_state[9]; __pyx_result.tclass = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseTERule__set_state(struct __pyx_obj_7setools_9policyrep_BaseTERule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseTERule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.rule_string = __pyx_state[6]; __pyx_result.ruletype = __pyx_state[7]; __pyx_result.source = __pyx_state[8]; __pyx_result.target = __pyx_state[9]; __pyx_result.tclass = __pyx_state[10]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[11])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_conditional);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->_conditional));
  __pyx_v___pyx_result->_conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->_conditional_block = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->rule_string);
  __pyx_v___pyx_result->rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->tclass));
  __pyx_v___pyx_result->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.rule_string = __pyx_state[6]; __pyx_result.ruletype = __pyx_state[7]; __pyx_result.source = __pyx_state[8]; __pyx_result.target = __pyx_state[9]; __pyx_result.tclass = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[11])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 11) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.rule_string = __pyx_state[6]; __pyx_result.ruletype = __pyx_state[7]; __pyx_result.source = __pyx_state[8]; __pyx_result.target = __pyx_state[9]; __pyx_result.tclass = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[11])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.rule_string = __pyx_state[6]; __pyx_result.ruletype = __pyx_state[7]; __pyx_result.source = __pyx_state[8]; __pyx_result.target = __pyx_state[9]; __pyx_result.tclass = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[11])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.rule_string = __pyx_state[6]; __pyx_result.ruletype = __pyx_state[7]; __pyx_result.source = __pyx_state[8]; __pyx_result.target = __pyx_state[9]; __pyx_result.tclass = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseTERule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_AVRule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_85__pyx_unpickle_AVRule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_85__pyx_unpickle_AVRule = {"__pyx_unpickle_AVRule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_85__pyx_unpickle_AVRule, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_85__pyx_unpickle_AVRule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRule (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRule", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRule", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_AVRule") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_84__pyx_unpickle_AVRule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_84__pyx_unpickle_AVRule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRule", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xbc66965:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xbc66965 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xbc66965) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xbc66965:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xbc66965 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = AVRule.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xbc66965:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xbc66965 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = AVRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xbc, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xbc66965:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xbc66965 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xbc66965 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = AVRule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_AVRule), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xbc66965 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = AVRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = AVRule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_AVRule__set_state(((struct __pyx_obj_7setools_9policyrep_AVRule *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xbc66965 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = AVRule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AVRule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_AVRule__set_state(struct __pyx_obj_7setools_9policyrep_AVRule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._conditional);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional));
  __pyx_v___pyx_result->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base._conditional_block = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(__pyx_v___pyx_result->perms);
  __pyx_v___pyx_result->perms = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __pyx_v___pyx_result->__pyx_base.rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass));
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 12) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[12])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_AVRule__set_state(<AVRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRule__set_state(AVRule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_IoctlSet(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_87__pyx_unpickle_IoctlSet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_87__pyx_unpickle_IoctlSet = {"__pyx_unpickle_IoctlSet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_87__pyx_unpickle_IoctlSet, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_87__pyx_unpickle_IoctlSet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_IoctlSet (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_IoctlSet", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_IoctlSet", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_IoctlSet") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_IoctlSet", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_IoctlSet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_86__pyx_unpickle_IoctlSet(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_86__pyx_unpickle_IoctlSet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_IoctlSet", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xd41d8cd) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xd41d8cd:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xd4, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xd41d8cd:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = IoctlSet.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_IoctlSet), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_IoctlSet__set_state(((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xd41d8cd = ())" % __pyx_checksum)
 *     __pyx_result = IoctlSet.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_IoctlSet(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_IoctlSet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_IoctlSet__set_state(struct __pyx_obj_7setools_9policyrep_IoctlSet *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_IoctlSet__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_2 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(6, 12, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_2 > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(6, 12, __pyx_L1_error)
  __pyx_t_4 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 13, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_IoctlSet__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_AVRuleXperm(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_89__pyx_unpickle_AVRuleXperm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_89__pyx_unpickle_AVRuleXperm = {"__pyx_unpickle_AVRuleXperm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_89__pyx_unpickle_AVRuleXperm, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_89__pyx_unpickle_AVRuleXperm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRuleXperm (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRuleXperm", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRuleXperm", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_AVRuleXperm") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AVRuleXperm", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRuleXperm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_88__pyx_unpickle_AVRuleXperm(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_88__pyx_unpickle_AVRuleXperm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRuleXperm", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf920da8:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf920da8 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass, xperm_type))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xf920da8) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf920da8:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf920da8 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass, xperm_type))" % __pyx_checksum)
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xf920da8:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf920da8 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass, xperm_type))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xf9, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xf920da8:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf920da8 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass, xperm_type))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf920da8 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass, xperm_type))" % __pyx_checksum)
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_AVRuleXperm), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf920da8 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass, xperm_type))" % __pyx_checksum)
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_AVRuleXperm__set_state(((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xf920da8 = (_conditional, _conditional_block, extended, key, origin, perms, policy, rule_string, ruletype, source, target, tclass, xperm_type))" % __pyx_checksum)
 *     __pyx_result = AVRuleXperm.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]; __pyx_result.xperm_type = __pyx_state[12]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AVRuleXperm(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRuleXperm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]; __pyx_result.xperm_type = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_AVRuleXperm__set_state(struct __pyx_obj_7setools_9policyrep_AVRuleXperm *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AVRuleXperm__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]; __pyx_result.xperm_type = __pyx_state[12]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[13])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._conditional);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional));
  __pyx_v___pyx_result->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base._conditional_block = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_IoctlSet))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->perms);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->perms));
  __pyx_v___pyx_result->perms = ((struct __pyx_obj_7setools_9policyrep_IoctlSet *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __pyx_v___pyx_result->__pyx_base.rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass));
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->xperm_type);
  __Pyx_DECREF(__pyx_v___pyx_result->xperm_type);
  __pyx_v___pyx_result->xperm_type = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]; __pyx_result.xperm_type = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[13])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 13) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]; __pyx_result.xperm_type = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[13])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 13, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]; __pyx_result.xperm_type = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[13])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_AVRuleXperm__set_state(<AVRuleXperm> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AVRuleXperm__set_state(AVRuleXperm __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.perms = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]; __pyx_result.xperm_type = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_AVRuleXperm__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_TERule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_91__pyx_unpickle_TERule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_91__pyx_unpickle_TERule = {"__pyx_unpickle_TERule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_91__pyx_unpickle_TERule, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_91__pyx_unpickle_TERule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_TERule (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TERule", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TERule", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_TERule") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TERule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_90__pyx_unpickle_TERule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_90__pyx_unpickle_TERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TERule", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x660366f:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x660366f = (_conditional, _conditional_block, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x660366f) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x660366f:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x660366f = (_conditional, _conditional_block, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = TERule.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x660366f:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x660366f = (_conditional, _conditional_block, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = TERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x66, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x660366f:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x660366f = (_conditional, _conditional_block, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x660366f = (_conditional, _conditional_block, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = TERule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_TERule), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x660366f = (_conditional, _conditional_block, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = TERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = TERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_TERule__set_state(((struct __pyx_obj_7setools_9policyrep_TERule *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x660366f = (_conditional, _conditional_block, dft, extended, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = TERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_TERule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_TERule__set_state(struct __pyx_obj_7setools_9policyrep_TERule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TERule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._conditional);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional));
  __pyx_v___pyx_result->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base._conditional_block = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->dft);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->dft));
  __pyx_v___pyx_result->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __pyx_v___pyx_result->__pyx_base.rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass));
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 12) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[12])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[12])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TERule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_FileNameTERule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_93__pyx_unpickle_FileNameTERule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_93__pyx_unpickle_FileNameTERule = {"__pyx_unpickle_FileNameTERule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_93__pyx_unpickle_FileNameTERule, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_93__pyx_unpickle_FileNameTERule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_FileNameTERule (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FileNameTERule", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FileNameTERule", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_FileNameTERule") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_FileNameTERule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FileNameTERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_92__pyx_unpickle_FileNameTERule(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_92__pyx_unpickle_FileNameTERule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FileNameTERule", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdf30388:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdf30388 = (_conditional, _conditional_block, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xdf30388) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdf30388:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdf30388 = (_conditional, _conditional_block, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xdf30388:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdf30388 = (_conditional, _conditional_block, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xdf, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xdf30388:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdf30388 = (_conditional, _conditional_block, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdf30388 = (_conditional, _conditional_block, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_FileNameTERule), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdf30388 = (_conditional, _conditional_block, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_FileNameTERule__set_state(((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xdf30388 = (_conditional, _conditional_block, dft, extended, filename, key, origin, policy, rule_string, ruletype, source, target, tclass))" % __pyx_checksum)
 *     __pyx_result = FileNameTERule.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.filename = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_FileNameTERule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FileNameTERule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.filename = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_FileNameTERule__set_state(struct __pyx_obj_7setools_9policyrep_FileNameTERule *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  uintptr_t __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_FileNameTERule__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.filename = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[13])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Conditional))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base._conditional);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base._conditional));
  __pyx_v___pyx_result->__pyx_base._conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base._conditional_block = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Type))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->dft);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->dft));
  __pyx_v___pyx_result->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.extended = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->filename);
  __Pyx_DECREF(__pyx_v___pyx_result->filename);
  __pyx_v___pyx_result->filename = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.origin);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.origin = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.rule_string);
  __pyx_v___pyx_result->__pyx_base.rule_string = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.ruletype = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.source);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.source = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.target);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.target = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_ObjClass))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.tclass);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.tclass));
  __pyx_v___pyx_result->__pyx_base.tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.filename = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[13])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 13) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_2 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_2 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":14
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.filename = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[13])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 13, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, tuple __pyx_state):
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.filename = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[13])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_FileNameTERule__set_state(<FileNameTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FileNameTERule__set_state(FileNameTERule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.filename = __pyx_state[4]; __pyx_result.key = __pyx_state[5]; __pyx_result.origin = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.rule_string = __pyx_state[8]; __pyx_result.ruletype = __pyx_state[9]; __pyx_result.source = __pyx_state[10]; __pyx_result.target = __pyx_state[11]; __pyx_result.tclass = __pyx_state[12]
 *     if len(__pyx_state) > 13 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_FileNameTERule__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_BaseType(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_95__pyx_unpickle_BaseType(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_95__pyx_unpickle_BaseType = {"__pyx_unpickle_BaseType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_95__pyx_unpickle_BaseType, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_95__pyx_unpickle_BaseType(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseType (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseType", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseType", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_BaseType") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BaseType", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseType", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_94__pyx_unpickle_BaseType(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_94__pyx_unpickle_BaseType(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseType", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x93ad430) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = BaseType.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x93ad430:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = BaseType.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x93, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x93ad430:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = BaseType.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_BaseType), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = BaseType.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = BaseType.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_BaseType__set_state(((struct __pyx_obj_7setools_9policyrep_BaseType *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x93ad430 = (key, name, policy))" % __pyx_checksum)
 *     __pyx_result = BaseType.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BaseType(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseType", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_BaseType__set_state(struct __pyx_obj_7setools_9policyrep_BaseType *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BaseType__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 3) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, tuple __pyx_state):
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_BaseType__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Type(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_97__pyx_unpickle_Type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_97__pyx_unpickle_Type = {"__pyx_unpickle_Type", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_97__pyx_unpickle_Type, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_97__pyx_unpickle_Type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Type (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Type", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Type", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Type") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Type", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_96__pyx_unpickle_Type(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_96__pyx_unpickle_Type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Type", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x18d2e7e:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x18d2e7e = (_aliases, _attrs, ispermissive, key, name, policy, value))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x18d2e7e) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x18d2e7e:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x18d2e7e = (_aliases, _attrs, ispermissive, key, name, policy, value))" % __pyx_checksum)
 *     __pyx_result = Type.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x18d2e7e:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x18d2e7e = (_aliases, _attrs, ispermissive, key, name, policy, value))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Type.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x18_2, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x18d2e7e:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x18d2e7e = (_aliases, _attrs, ispermissive, key, name, policy, value))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x18d2e7e = (_aliases, _attrs, ispermissive, key, name, policy, value))" % __pyx_checksum)
 *     __pyx_result = Type.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Type), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x18d2e7e = (_aliases, _attrs, ispermissive, key, name, policy, value))" % __pyx_checksum)
 *     __pyx_result = Type.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Type.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Type__set_state(((struct __pyx_obj_7setools_9policyrep_Type *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x18d2e7e = (_aliases, _attrs, ispermissive, key, name, policy, value))" % __pyx_checksum)
 *     __pyx_result = Type.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Type(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Type__set_state(struct __pyx_obj_7setools_9policyrep_Type *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  uint32_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Type__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_aliases);
  __Pyx_DECREF(__pyx_v___pyx_result->_aliases);
  __pyx_v___pyx_result->_aliases = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_attrs);
  __Pyx_DECREF(__pyx_v___pyx_result->_attrs);
  __pyx_v___pyx_result->_attrs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ispermissive);
  __Pyx_DECREF(__pyx_v___pyx_result->ispermissive);
  __pyx_v___pyx_result->ispermissive = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_uint32_t(__pyx_t_1); if (unlikely((__pyx_t_3 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->value = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 7) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, tuple __pyx_state):
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Type__set_state(<Type> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Type__set_state(Type __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._attrs = __pyx_state[1]; __pyx_result.ispermissive = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.name = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.value = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Type__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_TypeAttribute(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_99__pyx_unpickle_TypeAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_99__pyx_unpickle_TypeAttribute = {"__pyx_unpickle_TypeAttribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_99__pyx_unpickle_TypeAttribute, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_99__pyx_unpickle_TypeAttribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_TypeAttribute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TypeAttribute", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TypeAttribute", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_TypeAttribute") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_TypeAttribute", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TypeAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_98__pyx_unpickle_TypeAttribute(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_98__pyx_unpickle_TypeAttribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TypeAttribute", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x9a90b19:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x9a90b19) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x9a90b19:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x9a90b19:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x9a, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x9a90b19:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_TypeAttribute), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_TypeAttribute__set_state(((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x9a90b19 = (_types, key, name, policy))" % __pyx_checksum)
 *     __pyx_result = TypeAttribute.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, tuple __pyx_state):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_TypeAttribute(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TypeAttribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_TypeAttribute__set_state(struct __pyx_obj_7setools_9policyrep_TypeAttribute *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_TypeAttribute__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, tuple __pyx_state):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_types);
  __Pyx_DECREF(__pyx_v___pyx_result->_types);
  __pyx_v___pyx_result->_types = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, tuple __pyx_state):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, tuple __pyx_state):
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_TypeAttribute__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_User(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_101__pyx_unpickle_User(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_101__pyx_unpickle_User = {"__pyx_unpickle_User", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_101__pyx_unpickle_User, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_101__pyx_unpickle_User(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_User (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_User", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_User", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_User") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_User", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_User", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_100__pyx_unpickle_User(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_100__pyx_unpickle_User(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_User", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6debf30:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6debf30 = (_level, _range, key, name, policy, roles))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x6debf30) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6debf30:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6debf30 = (_level, _range, key, name, policy, roles))" % __pyx_checksum)
 *     __pyx_result = User.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x6debf30:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6debf30 = (_level, _range, key, name, policy, roles))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = User.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x6d, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6debf30:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6debf30 = (_level, _range, key, name, policy, roles))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6debf30 = (_level, _range, key, name, policy, roles))" % __pyx_checksum)
 *     __pyx_result = User.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_User), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6debf30 = (_level, _range, key, name, policy, roles))" % __pyx_checksum)
 *     __pyx_result = User.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = User.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_User__set_state(((struct __pyx_obj_7setools_9policyrep_User *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6debf30 = (_level, _range, key, name, policy, roles))" % __pyx_checksum)
 *     __pyx_result = User.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, tuple __pyx_state):
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_User(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_User", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_User__set_state(struct __pyx_obj_7setools_9policyrep_User *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_User__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, tuple __pyx_state):
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Level))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_level);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->_level));
  __pyx_v___pyx_result->_level = ((struct __pyx_obj_7setools_9policyrep_Level *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Range))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->_range);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->_range));
  __pyx_v___pyx_result->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.name);
  __Pyx_DECREF(__pyx_v___pyx_result->__pyx_base.name);
  __pyx_v___pyx_result->__pyx_base.name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyFrozenSet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "frozenset", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->roles);
  __Pyx_DECREF(__pyx_v___pyx_result->roles);
  __pyx_v___pyx_result->roles = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, tuple __pyx_state):
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 6) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, tuple __pyx_state):
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_User__set_state(<User> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_User__set_state(User __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._level = __pyx_state[0]; __pyx_result._range = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]; __pyx_result.roles = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_User__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Devicetreecon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_103__pyx_unpickle_Devicetreecon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_103__pyx_unpickle_Devicetreecon = {"__pyx_unpickle_Devicetreecon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_103__pyx_unpickle_Devicetreecon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_103__pyx_unpickle_Devicetreecon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Devicetreecon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Devicetreecon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Devicetreecon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Devicetreecon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Devicetreecon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Devicetreecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_102__pyx_unpickle_Devicetreecon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_102__pyx_unpickle_Devicetreecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Devicetreecon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfdfbc8f:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfdfbc8f = (context, key, path, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xfdfbc8f) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfdfbc8f:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfdfbc8f = (context, key, path, policy))" % __pyx_checksum)
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xfdfbc8f:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfdfbc8f = (context, key, path, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xfd, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfdfbc8f:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfdfbc8f = (context, key, path, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfdfbc8f = (context, key, path, policy))" % __pyx_checksum)
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Devicetreecon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfdfbc8f = (context, key, path, policy))" % __pyx_checksum)
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Devicetreecon__set_state(((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfdfbc8f = (context, key, path, policy))" % __pyx_checksum)
 *     __pyx_result = Devicetreecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Devicetreecon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Devicetreecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Devicetreecon__set_state(struct __pyx_obj_7setools_9policyrep_Devicetreecon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Devicetreecon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->path);
  __Pyx_DECREF(__pyx_v___pyx_result->path);
  __pyx_v___pyx_result->path = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Devicetreecon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Iomemcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_105__pyx_unpickle_Iomemcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_105__pyx_unpickle_Iomemcon = {"__pyx_unpickle_Iomemcon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_105__pyx_unpickle_Iomemcon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_105__pyx_unpickle_Iomemcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Iomemcon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Iomemcon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Iomemcon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Iomemcon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Iomemcon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Iomemcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_104__pyx_unpickle_Iomemcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_104__pyx_unpickle_Iomemcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Iomemcon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x45b5f78:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x45b5f78 = (addr, context, key, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x45b5f78) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x45b5f78:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x45b5f78 = (addr, context, key, policy))" % __pyx_checksum)
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x45b5f78:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x45b5f78 = (addr, context, key, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x45, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x45b5f78:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x45b5f78 = (addr, context, key, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x45b5f78 = (addr, context, key, policy))" % __pyx_checksum)
 *     __pyx_result = Iomemcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Iomemcon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x45b5f78 = (addr, context, key, policy))" % __pyx_checksum)
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Iomemcon__set_state(((struct __pyx_obj_7setools_9policyrep_Iomemcon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x45b5f78 = (addr, context, key, policy))" % __pyx_checksum)
 *     __pyx_result = Iomemcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Iomemcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Iomemcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Iomemcon__set_state(struct __pyx_obj_7setools_9policyrep_Iomemcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Iomemcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->addr);
  __Pyx_DECREF(__pyx_v___pyx_result->addr);
  __pyx_v___pyx_result->addr = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Iomemcon__set_state(<Iomemcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Iomemcon__set_state(Iomemcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.addr = __pyx_state[0]; __pyx_result.context = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Iomemcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Ioportcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_107__pyx_unpickle_Ioportcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_107__pyx_unpickle_Ioportcon = {"__pyx_unpickle_Ioportcon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_107__pyx_unpickle_Ioportcon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_107__pyx_unpickle_Ioportcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ioportcon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ioportcon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ioportcon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Ioportcon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ioportcon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ioportcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_106__pyx_unpickle_Ioportcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_106__pyx_unpickle_Ioportcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ioportcon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xc9b4b53:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc9b4b53 = (context, key, policy, ports))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xc9b4b53) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xc9b4b53:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc9b4b53 = (context, key, policy, ports))" % __pyx_checksum)
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xc9b4b53:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc9b4b53 = (context, key, policy, ports))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xc9, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xc9b4b53:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc9b4b53 = (context, key, policy, ports))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc9b4b53 = (context, key, policy, ports))" % __pyx_checksum)
 *     __pyx_result = Ioportcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Ioportcon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc9b4b53 = (context, key, policy, ports))" % __pyx_checksum)
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Ioportcon__set_state(((struct __pyx_obj_7setools_9policyrep_Ioportcon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xc9b4b53 = (context, key, policy, ports))" % __pyx_checksum)
 *     __pyx_result = Ioportcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ioportcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ioportcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Ioportcon__set_state(struct __pyx_obj_7setools_9policyrep_Ioportcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ioportcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->ports);
  __Pyx_DECREF(__pyx_v___pyx_result->ports);
  __pyx_v___pyx_result->ports = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Ioportcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Pcidevicecon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_109__pyx_unpickle_Pcidevicecon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_109__pyx_unpickle_Pcidevicecon = {"__pyx_unpickle_Pcidevicecon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_109__pyx_unpickle_Pcidevicecon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_109__pyx_unpickle_Pcidevicecon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pcidevicecon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pcidevicecon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pcidevicecon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Pcidevicecon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pcidevicecon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pcidevicecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_108__pyx_unpickle_Pcidevicecon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_108__pyx_unpickle_Pcidevicecon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pcidevicecon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6756798:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6756798 = (context, device, key, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x6756798) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6756798:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6756798 = (context, device, key, policy))" % __pyx_checksum)
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0x6756798:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6756798 = (context, device, key, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x67_2, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x6756798:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6756798 = (context, device, key, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6756798 = (context, device, key, policy))" % __pyx_checksum)
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Pcidevicecon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6756798 = (context, device, key, policy))" % __pyx_checksum)
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Pcidevicecon__set_state(((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x6756798 = (context, device, key, policy))" % __pyx_checksum)
 *     __pyx_result = Pcidevicecon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Pcidevicecon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pcidevicecon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Pcidevicecon__set_state(struct __pyx_obj_7setools_9policyrep_Pcidevicecon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pcidevicecon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->device);
  __Pyx_DECREF(__pyx_v___pyx_result->device);
  __pyx_v___pyx_result->device = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Pcidevicecon__set_state(<Pcidevicecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Pcidevicecon__set_state(Pcidevicecon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.device = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pcidevicecon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Pirqcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_7setools_9policyrep_111__pyx_unpickle_Pirqcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_7setools_9policyrep_111__pyx_unpickle_Pirqcon = {"__pyx_unpickle_Pirqcon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_111__pyx_unpickle_Pirqcon, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_7setools_9policyrep_111__pyx_unpickle_Pirqcon(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pirqcon (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    PyObject* values[3] = {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  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_pyx_type)) != 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_pyx_checksum)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pirqcon", 1, 3, 3, 1); __PYX_ERR(6, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pirqcon", 1, 3, 3, 2); __PYX_ERR(6, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Pirqcon") < 0)) __PYX_ERR(6, 1, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      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);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(6, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Pirqcon", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pirqcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7setools_9policyrep_110__pyx_unpickle_Pirqcon(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7setools_9policyrep_110__pyx_unpickle_Pirqcon(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pirqcon", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb87ee88:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb87ee88 = (context, irq, key, policy))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb87ee88) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb87ee88:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb87ee88 = (context, irq, key, policy))" % __pyx_checksum)
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_2);
    __pyx_v___pyx_PickleError = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum != 0xb87ee88:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb87ee88 = (context, irq, key, policy))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb8, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_v___pyx_PickleError);
    __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(6, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb87ee88:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb87ee88 = (context, irq, key, policy))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb87ee88 = (context, irq, key, policy))" % __pyx_checksum)
 *     __pyx_result = Pirqcon.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_7setools_9policyrep_Pirqcon), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __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_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v___pyx_result = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb87ee88 = (context, irq, key, policy))" % __pyx_checksum)
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_1 = (__pyx_v___pyx_state != Py_None);
  __pyx_t_6 = (__pyx_t_1 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":9
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(6, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7setools_9policyrep___pyx_unpickle_Pirqcon__set_state(((struct __pyx_obj_7setools_9policyrep_Pirqcon *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb87ee88 = (context, irq, key, policy))" % __pyx_checksum)
 *     __pyx_result = Pirqcon.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Pirqcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pirqcon", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_7setools_9policyrep___pyx_unpickle_Pirqcon__set_state(struct __pyx_obj_7setools_9policyrep_Pirqcon *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  uintptr_t __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Pirqcon__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_Context))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.context);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.context));
  __pyx_v___pyx_result->__pyx_base.context = ((struct __pyx_obj_7setools_9policyrep_Context *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->irq);
  __Pyx_DECREF(__pyx_v___pyx_result->irq);
  __pyx_v___pyx_result->irq = __pyx_t_1;
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_2 == ((uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.__pyx_base.key = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(6, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_7setools_9policyrep_SELinuxPolicy))))) __PYX_ERR(6, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->__pyx_base.__pyx_base.policy);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->__pyx_base.__pyx_base.policy));
  __pyx_v___pyx_result->__pyx_base.__pyx_base.policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(6, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 4) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(6, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(6, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, tuple __pyx_state):
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Pirqcon__set_state(<Pirqcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Pirqcon__set_state(Pirqcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.irq = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("setools.policyrep.__pyx_unpickle_Pirqcon__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject __pyx_vtable_7setools_9policyrep_PolicyObject;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyObject(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyObject *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyObject *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PolicyObject;
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PolicyObject *p = (struct __pyx_obj_7setools_9policyrep_PolicyObject *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->policy);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_PolicyObject(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_PolicyObject *p = (struct __pyx_obj_7setools_9policyrep_PolicyObject *)o;
  if (p->policy) {
    e = (*v)(((PyObject *)p->policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_PolicyObject(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_PolicyObject *p = (struct __pyx_obj_7setools_9policyrep_PolicyObject *)o;
  tmp = ((PyObject*)p->policy);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_PolicyObject(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_12PolicyObject_policy(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12PolicyObject_6policy_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyObject[] = {
  {"__copy__", (PyCFunction)__pyx_pw_7setools_9policyrep_12PolicyObject_3__copy__, METH_NOARGS, 0},
  {"__deepcopy__", (PyCFunction)__pyx_pw_7setools_9policyrep_12PolicyObject_5__deepcopy__, METH_O, 0},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_12PolicyObject_17statement, METH_NOARGS, __pyx_doc_7setools_9policyrep_12PolicyObject_16statement},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12PolicyObject_19__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12PolicyObject_21__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_PolicyObject[] = {
  {(char *)"policy", __pyx_getprop_7setools_9policyrep_12PolicyObject_policy, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyObject = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PolicyObject", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyObject), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_12PolicyObject_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "This is a base class for all policy objects.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_PolicyObject, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyObject, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_PolicyObject, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyObject, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicySymbol __pyx_vtable_7setools_9policyrep_PolicySymbol;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicySymbol(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicySymbol *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PolicySymbol *p = (struct __pyx_obj_7setools_9policyrep_PolicySymbol *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->name);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_12PolicySymbol_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12PolicySymbol_4name_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicySymbol[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12PolicySymbol_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12PolicySymbol_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_PolicySymbol[] = {
  {(char *)"name", __pyx_getprop_7setools_9policyrep_12PolicySymbol_name, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_PolicySymbol = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PolicySymbol", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicySymbol), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Base class for policy symbols (declared objects: types, users, etc.)", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicySymbol, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_PolicySymbol, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicySymbol, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Boolean __pyx_vtable_7setools_9policyrep_Boolean;

static PyObject *__pyx_tp_new_7setools_9policyrep_Boolean(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Boolean *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Boolean *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Boolean;
  return o;
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Boolean_state(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Boolean_5state_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Boolean[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_7Boolean_1statement, METH_NOARGS, __pyx_doc_7setools_9policyrep_7Boolean_statement},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Boolean_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Boolean_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Boolean[] = {
  {(char *)"state", __pyx_getprop_7setools_9policyrep_7Boolean_state, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Boolean = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Boolean", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Boolean), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A Boolean.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Boolean, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Boolean, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Boolean, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Conditional __pyx_vtable_7setools_9policyrep_Conditional;

static PyObject *__pyx_tp_new_7setools_9policyrep_Conditional(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Conditional *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Conditional *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Conditional;
  p->_postfix_expression = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->booleans = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Conditional(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Conditional *p = (struct __pyx_obj_7setools_9policyrep_Conditional *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_postfix_expression);
  Py_CLEAR(p->booleans);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Conditional(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Conditional *p = (struct __pyx_obj_7setools_9policyrep_Conditional *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_postfix_expression) {
    e = (*v)(p->_postfix_expression, a); if (e) return e;
  }
  if (p->booleans) {
    e = (*v)(p->booleans, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Conditional(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Conditional *p = (struct __pyx_obj_7setools_9policyrep_Conditional *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_postfix_expression);
  p->_postfix_expression = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->booleans);
  p->booleans = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Conditional(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_11Conditional_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_11Conditional_booleans(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11Conditional_8booleans_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Conditional[] = {
  {"evaluate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_11Conditional_9evaluate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_11Conditional_8evaluate},
  {"expression", (PyCFunction)__pyx_pw_7setools_9policyrep_11Conditional_11expression, METH_NOARGS, __pyx_doc_7setools_9policyrep_11Conditional_10expression},
  {"false_rules", (PyCFunction)__pyx_pw_7setools_9policyrep_11Conditional_13false_rules, METH_NOARGS, __pyx_doc_7setools_9policyrep_11Conditional_12false_rules},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_11Conditional_15statement, METH_NOARGS, 0},
  {"true_rules", (PyCFunction)__pyx_pw_7setools_9policyrep_11Conditional_17true_rules, METH_NOARGS, __pyx_doc_7setools_9policyrep_11Conditional_16true_rules},
  {"truth_table", (PyCFunction)__pyx_pw_7setools_9policyrep_11Conditional_19truth_table, METH_NOARGS, __pyx_doc_7setools_9policyrep_11Conditional_18truth_table},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_11Conditional_21__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_11Conditional_23__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Conditional[] = {
  {(char *)"booleans", __pyx_getprop_7setools_9policyrep_11Conditional_booleans, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_Conditional = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_11Conditional_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_Conditional = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Conditional", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Conditional), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Conditional, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_Conditional, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_11Conditional_5__hash__, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_11Conditional_3__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A conditional policy block.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Conditional, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Conditional, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Conditional, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Conditional, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Conditional, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Conditional, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalOperator __pyx_vtable_7setools_9policyrep_ConditionalOperator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalOperator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_ConditionalOperator;
  p->text = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->evaluate = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConditionalOperator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->text);
  Py_CLEAR(p->evaluate);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConditionalOperator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->evaluate) {
    e = (*v)(p->evaluate, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConditionalOperator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConditionalOperator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalOperator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->evaluate);
  p->evaluate = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_19ConditionalOperator_precedence(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_19ConditionalOperator_10precedence_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_19ConditionalOperator_unary(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_19ConditionalOperator_5unary_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_19ConditionalOperator_evaluate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_19ConditionalOperator_8evaluate_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConditionalOperator[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_19ConditionalOperator_3statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19ConditionalOperator_11__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19ConditionalOperator_13__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_ConditionalOperator[] = {
  {(char *)"precedence", __pyx_getprop_7setools_9policyrep_19ConditionalOperator_precedence, 0, (char *)0, 0},
  {(char *)"unary", __pyx_getprop_7setools_9policyrep_19ConditionalOperator_unary, 0, (char *)0, 0},
  {(char *)"evaluate", __pyx_getprop_7setools_9policyrep_19ConditionalOperator_evaluate, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConditionalOperator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ConditionalOperator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalOperator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConditionalOperator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_19ConditionalOperator_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A conditional expression operator", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConditionalOperator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConditionalOperator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConditionalOperator, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_ConditionalOperator, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConditionalOperator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyIterator *)o);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PolicyIterator *p = (struct __pyx_obj_7setools_9policyrep_PolicyIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->policy);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_PolicyIterator *p = (struct __pyx_obj_7setools_9policyrep_PolicyIterator *)o;
  if (p->policy) {
    e = (*v)(((PyObject *)p->policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_PolicyIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_PolicyIterator *p = (struct __pyx_obj_7setools_9policyrep_PolicyIterator *)o;
  tmp = ((PyObject*)p->policy);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_14PolicyIterator_7reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_14PolicyIterator_6reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14PolicyIterator_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14PolicyIterator_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_PolicyIterator = {
  __pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_PolicyIterator = {
  __pyx_pw_7setools_9policyrep_14PolicyIterator_5__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PolicyIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_PolicyIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_PolicyIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Base class for all policy object iterators.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  __pyx_pw_7setools_9policyrep_14PolicyIterator_3__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator __pyx_vtable_7setools_9policyrep_HashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_HashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_HashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_HashtabIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_HashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_15HashtabIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_15HashtabIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15HashtabIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15HashtabIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_HashtabIterator = {
  __pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_HashtabIterator = {
  __pyx_pw_7setools_9policyrep_15HashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_HashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.HashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_HashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_HashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_HashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Base class for iterators over hash tables.\n\n    Sublcasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.curr.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.curr)\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15HashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_HashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_HashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_BooleanHashtabIterator __pyx_vtable_7setools_9policyrep_BooleanHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_BooleanHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_BooleanHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_BooleanHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_BooleanHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.BooleanHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BooleanHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over Booleans in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_22BooleanHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BooleanHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BooleanHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalIterator __pyx_vtable_7setools_9policyrep_ConditionalIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConditionalIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConditionalIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConditionalIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConditionalIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_19ConditionalIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_19ConditionalIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19ConditionalIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19ConditionalIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_ConditionalIterator = {
  __pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConditionalIterator = {
  __pyx_pw_7setools_9policyrep_19ConditionalIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConditionalIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ConditionalIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConditionalIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConditionalIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Conditionals iterator.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19ConditionalIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConditionalIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConditionalIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalExprIterator __pyx_vtable_7setools_9policyrep_ConditionalExprIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalExprIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConditionalExprIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConditionalExprIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_23ConditionalExprIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_23ConditionalExprIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_ConditionalExprIterator = {
  __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConditionalExprIterator = {
  __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConditionalExprIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ConditionalExprIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalExprIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConditionalExprIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConditionalExprIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Conditional expression iterator.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_23ConditionalExprIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConditionalExprIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConditionalExprIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Bounds __pyx_vtable_7setools_9policyrep_Bounds;

static PyObject *__pyx_tp_new_7setools_9policyrep_Bounds(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Bounds *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Bounds *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Bounds;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->parent = Py_None; Py_INCREF(Py_None);
  p->child = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Bounds(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Bounds *p = (struct __pyx_obj_7setools_9policyrep_Bounds *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->parent);
  Py_CLEAR(p->child);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Bounds(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Bounds *p = (struct __pyx_obj_7setools_9policyrep_Bounds *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  if (p->parent) {
    e = (*v)(p->parent, a); if (e) return e;
  }
  if (p->child) {
    e = (*v)(p->child, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Bounds(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Bounds *p = (struct __pyx_obj_7setools_9policyrep_Bounds *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->parent);
  p->parent = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->child);
  p->child = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Bounds(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_6Bounds_3__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_6Bounds_5__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_6Bounds_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6Bounds_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_6Bounds_parent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6Bounds_6parent_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_6Bounds_child(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6Bounds_5child_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Bounds[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_6Bounds_7statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_6Bounds_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_6Bounds_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Bounds[] = {
  {(char *)"ruletype", __pyx_getprop_7setools_9policyrep_6Bounds_ruletype, 0, (char *)0, 0},
  {(char *)"parent", __pyx_getprop_7setools_9policyrep_6Bounds_parent, 0, (char *)0, 0},
  {(char *)"child", __pyx_getprop_7setools_9policyrep_6Bounds_child, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Bounds = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Bounds", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Bounds), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Bounds, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_6Bounds_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A bounds statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Bounds, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Bounds, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Bounds, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Bounds, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Bounds, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Bounds, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeboundsIterator __pyx_vtable_7setools_9policyrep_TypeboundsIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeboundsIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeboundsIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_TypeboundsIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeboundsIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_5reset, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_18TypeboundsIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_TypeboundsIterator = {
  __pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TypeboundsIterator = {
  __pyx_pw_7setools_9policyrep_18TypeboundsIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeboundsIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TypeboundsIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeboundsIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TypeboundsIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TypeboundsIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over typebounds rules in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_18TypeboundsIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeboundsIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeboundsIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseConstraint __pyx_vtable_7setools_9policyrep_BaseConstraint;

static PyObject *__pyx_tp_new_7setools_9policyrep_BaseConstraint(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BaseConstraint *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BaseConstraint *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_BaseConstraint;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->tclass = Py_None; Py_INCREF(Py_None);
  p->expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_BaseConstraint *p = (struct __pyx_obj_7setools_9policyrep_BaseConstraint *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->expression);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_BaseConstraint(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_BaseConstraint *p = (struct __pyx_obj_7setools_9policyrep_BaseConstraint *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  if (p->tclass) {
    e = (*v)(p->tclass, a); if (e) return e;
  }
  if (p->expression) {
    e = (*v)(((PyObject *)p->expression), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_BaseConstraint(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_BaseConstraint *p = (struct __pyx_obj_7setools_9policyrep_BaseConstraint *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->tclass);
  p->tclass = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->expression);
  p->expression = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_14BaseConstraint_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14BaseConstraint_5perms_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14BaseConstraint_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14BaseConstraint_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14BaseConstraint_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14BaseConstraint_6tclass_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14BaseConstraint_expression(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14BaseConstraint_10expression_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BaseConstraint[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14BaseConstraint_1__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14BaseConstraint_3__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_BaseConstraint[] = {
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_14BaseConstraint_perms, 0, (char *)0, 0},
  {(char *)"ruletype", __pyx_getprop_7setools_9policyrep_14BaseConstraint_ruletype, 0, (char *)0, 0},
  {(char *)"tclass", __pyx_getprop_7setools_9policyrep_14BaseConstraint_tclass, 0, (char *)0, 0},
  {(char *)"expression", __pyx_getprop_7setools_9policyrep_14BaseConstraint_expression, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_BaseConstraint = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.BaseConstraint", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseConstraint), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Base class for constraint rules.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseConstraint, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseConstraint, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BaseConstraint, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_BaseConstraint, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BaseConstraint, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Constraint __pyx_vtable_7setools_9policyrep_Constraint;

static PyObject *__pyx_tp_new_7setools_9policyrep_Constraint(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Constraint *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseConstraint(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Constraint *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Constraint;
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Constraint(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Constraint *p = (struct __pyx_obj_7setools_9policyrep_Constraint *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Constraint(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Constraint *p = (struct __pyx_obj_7setools_9policyrep_Constraint *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseConstraint(o, v, a); if (e) return e;
  if (p->perms) {
    e = (*v)(p->perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Constraint(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Constraint *p = (struct __pyx_obj_7setools_9policyrep_Constraint *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseConstraint(o);
  tmp = ((PyObject*)p->perms);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_10Constraint_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10Constraint_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Constraint[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_10Constraint_1statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_10Constraint_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_10Constraint_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Constraint[] = {
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_10Constraint_perms, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Constraint = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Constraint", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Constraint), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Constraint, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A constraint rule (constrain/mlsconstrain).", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Constraint, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Constraint, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Constraint, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Constraint, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Constraint, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Validatetrans __pyx_vtable_7setools_9policyrep_Validatetrans;

static PyObject *__pyx_tp_new_7setools_9policyrep_Validatetrans(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Validatetrans *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseConstraint(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Validatetrans *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Validatetrans;
  return o;
}

static PyObject *__pyx_getprop_7setools_9policyrep_13Validatetrans_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13Validatetrans_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Validatetrans[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_13Validatetrans_1statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13Validatetrans_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13Validatetrans_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Validatetrans[] = {
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_13Validatetrans_perms, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Validatetrans = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Validatetrans", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Validatetrans), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseConstraint, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A validatetrans rule (validatetrans/mlsvalidatetrans).", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseConstraint, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseConstraint, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Validatetrans, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Validatetrans, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Validatetrans, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExpression __pyx_vtable_7setools_9policyrep_ConstraintExpression;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExpression(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_ConstraintExpression;
  p->_infix = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_postfix = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->users = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->roles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConstraintExpression(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_infix);
  Py_CLEAR(p->_postfix);
  Py_CLEAR(p->users);
  Py_CLEAR(p->roles);
  Py_CLEAR(p->types);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConstraintExpression(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_infix) {
    e = (*v)(p->_infix, a); if (e) return e;
  }
  if (p->_postfix) {
    e = (*v)(p->_postfix, a); if (e) return e;
  }
  if (p->users) {
    e = (*v)(p->users, a); if (e) return e;
  }
  if (p->roles) {
    e = (*v)(p->roles, a); if (e) return e;
  }
  if (p->types) {
    e = (*v)(p->types, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConstraintExpression(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConstraintExpression *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExpression *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_infix);
  p->_infix = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_postfix);
  p->_postfix = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->users);
  p->users = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->roles);
  p->roles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->types);
  p->types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
static PyObject *__pyx_sq_item_7setools_9policyrep_ConstraintExpression(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  Py_DECREF(x);
  return r;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_ConstraintExpression(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_20ConstraintExpression_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_20ConstraintExpression_mls(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_20ConstraintExpression_3mls_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_20ConstraintExpression_users(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_20ConstraintExpression_5users_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_20ConstraintExpression_roles(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_20ConstraintExpression_5roles_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_20ConstraintExpression_types(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_20ConstraintExpression_5types_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConstraintExpression[] = {
  {"infix", (PyCFunction)__pyx_pw_7setools_9policyrep_20ConstraintExpression_9infix, METH_NOARGS, __pyx_doc_7setools_9policyrep_20ConstraintExpression_8infix},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_20ConstraintExpression_11statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_20ConstraintExpression_13__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_20ConstraintExpression_15__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_ConstraintExpression[] = {
  {(char *)"mls", __pyx_getprop_7setools_9policyrep_20ConstraintExpression_mls, 0, (char *)0, 0},
  {(char *)"users", __pyx_getprop_7setools_9policyrep_20ConstraintExpression_users, 0, (char *)0, 0},
  {(char *)"roles", __pyx_getprop_7setools_9policyrep_20ConstraintExpression_roles, 0, (char *)0, 0},
  {(char *)"types", __pyx_getprop_7setools_9policyrep_20ConstraintExpression_types, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_ConstraintExpression = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_7setools_9policyrep_ConstraintExpression, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConstraintExpression = {
  0, /*mp_length*/
  __pyx_pw_7setools_9policyrep_20ConstraintExpression_3__getitem__, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConstraintExpression = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ConstraintExpression", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExpression), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConstraintExpression, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConstraintExpression, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConstraintExpression, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_20ConstraintExpression_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    A a list-like object representing a constraint's expression.\n\n    The expression is in postfix notation, as that is how it is stored in the policy.\n    The string representation, however, is in infix notation, as that is how it\n    is written by policy writers.\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConstraintExpression, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConstraintExpression, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_ConstraintExpression, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_20ConstraintExpression_5__iter__, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConstraintExpression, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_ConstraintExpression, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConstraintExpression, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprNode __pyx_vtable_7setools_9policyrep_ConstraintExprNode;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExprNode(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_ConstraintExprNode;
  p->_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_expression = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConstraintExprNode(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_names);
  Py_CLEAR(p->_expression);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConstraintExprNode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_names) {
    e = (*v)(p->_names, a); if (e) return e;
  }
  if (p->_expression) {
    e = (*v)(p->_expression, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConstraintExprNode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *p = (struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_names);
  p->_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_expression);
  p->_expression = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
static PyObject *__pyx_sq_item_7setools_9policyrep_ConstraintExprNode(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  Py_DECREF(x);
  return r;
}

static PyObject *__pyx_getprop_7setools_9policyrep_18ConstraintExprNode_names(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5names_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_18ConstraintExprNode_symbol_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_18ConstraintExprNode_11symbol_type_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConstraintExprNode[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_9statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_11__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_18ConstraintExprNode_13__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_ConstraintExprNode[] = {
  {(char *)"names", __pyx_getprop_7setools_9policyrep_18ConstraintExprNode_names, 0, (char *)0, 0},
  {(char *)"symbol_type", __pyx_getprop_7setools_9policyrep_18ConstraintExprNode_symbol_type, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_ConstraintExprNode = {
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_7setools_9policyrep_ConstraintExprNode, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_3__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConstraintExprNode = {
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_5__len__, /*mp_length*/
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_7__getitem__, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConstraintExprNode = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ConstraintExprNode", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExprNode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConstraintExprNode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConstraintExprNode, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConstraintExprNode, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    A node of the low-level constraint expression.\n\n    This is an immutable list-like object that contains one node\n    of a constraint in postfix notation, e.g.:\n\n    [\"u1\", \"u2\", \"==\"]\n\n    This is only used for initializing a ConstraintExpression\n    object.\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConstraintExprNode, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConstraintExprNode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_18ConstraintExprNode_1__iter__, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConstraintExprNode, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_ConstraintExprNode, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConstraintExprNode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator __pyx_vtable_7setools_9policyrep_ConstraintIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConstraintIterator;
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *p = (struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tclass);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConstraintIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *p = (struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConstraintIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConstraintIterator *p = (struct __pyx_obj_7setools_9policyrep_ConstraintIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConstraintIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_18ConstraintIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_18ConstraintIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_18ConstraintIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_18ConstraintIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_ConstraintIterator = {
  __pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConstraintIterator = {
  __pyx_pw_7setools_9policyrep_18ConstraintIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConstraintIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ConstraintIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConstraintIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConstraintIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Constraint iterator.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConstraintIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConstraintIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_18ConstraintIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConstraintIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConstraintIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ValidatetransIterator __pyx_vtable_7setools_9policyrep_ValidatetransIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ValidatetransIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_ConstraintIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ValidatetransIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_ConstraintIterator*)__pyx_vtabptr_7setools_9policyrep_ValidatetransIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_ValidatetransIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_21ValidatetransIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_21ValidatetransIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_ValidatetransIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ValidatetransIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ValidatetransIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConstraintIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Validatetrans iterator.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConstraintIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConstraintIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_21ValidatetransIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ValidatetransIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ValidatetransIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConstraintExprIterator __pyx_vtable_7setools_9policyrep_ConstraintExprIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConstraintExprIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConstraintExprIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConstraintExprIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_22ConstraintExprIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_22ConstraintExprIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_ConstraintExprIterator = {
  __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConstraintExprIterator = {
  __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConstraintExprIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ConstraintExprIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConstraintExprIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConstraintExprIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConstraintExprIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Constraint low-level expression iterator.\n\n    This is only used for initializing a ConstraintExpression\n    object.\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_22ConstraintExprIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConstraintExprIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConstraintExprIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Context __pyx_vtable_7setools_9policyrep_Context;

static PyObject *__pyx_tp_new_7setools_9policyrep_Context(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Context *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Context *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Context;
  p->user = ((struct __pyx_obj_7setools_9policyrep_User *)Py_None); Py_INCREF(Py_None);
  p->role = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  p->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  p->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Context(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Context *p = (struct __pyx_obj_7setools_9policyrep_Context *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->user);
  Py_CLEAR(p->role);
  Py_CLEAR(p->type_);
  Py_CLEAR(p->_range);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Context(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Context *p = (struct __pyx_obj_7setools_9policyrep_Context *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->user) {
    e = (*v)(((PyObject *)p->user), a); if (e) return e;
  }
  if (p->role) {
    e = (*v)(((PyObject *)p->role), a); if (e) return e;
  }
  if (p->type_) {
    e = (*v)(((PyObject *)p->type_), a); if (e) return e;
  }
  if (p->_range) {
    e = (*v)(((PyObject *)p->_range), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Context(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Context *p = (struct __pyx_obj_7setools_9policyrep_Context *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->user);
  p->user = ((struct __pyx_obj_7setools_9policyrep_User *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->role);
  p->role = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->type_);
  p->type_ = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_range);
  p->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Context_range_(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Context_6range__1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Context_user(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Context_4user_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Context_role(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Context_4role_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Context_type_(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Context_5type__1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Context[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_7Context_3statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Context_5__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Context_7__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Context[] = {
  {(char *)"range_", __pyx_getprop_7setools_9policyrep_7Context_range_, 0, (char *)"The MLS range of the context.", 0},
  {(char *)"user", __pyx_getprop_7setools_9policyrep_7Context_user, 0, (char *)0, 0},
  {(char *)"role", __pyx_getprop_7setools_9policyrep_7Context_role, 0, (char *)0, 0},
  {(char *)"type_", __pyx_getprop_7setools_9policyrep_7Context_type_, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Context = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Context", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Context), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Context, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_7Context_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A SELinux security context/security attribute.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Context, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Context, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Context, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Context, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Context, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Default __pyx_vtable_7setools_9policyrep_Default;

static PyObject *__pyx_tp_new_7setools_9policyrep_Default(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Default *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Default *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Default;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->_default = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Default(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Default *p = (struct __pyx_obj_7setools_9policyrep_Default *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->_default);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Default(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Default *p = (struct __pyx_obj_7setools_9policyrep_Default *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  if (p->_default) {
    e = (*v)(p->_default, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Default(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Default *p = (struct __pyx_obj_7setools_9policyrep_Default *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_default);
  p->_default = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Default(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_7Default_1__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_7Default_5__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Default_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Default_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Default_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Default_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Default_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Default_6tclass_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Default[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_7Default_7statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Default_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Default_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Default[] = {
  {(char *)"default", __pyx_getprop_7setools_9policyrep_7Default_default, 0, (char *)0, 0},
  {(char *)"ruletype", __pyx_getprop_7setools_9policyrep_7Default_ruletype, 0, (char *)0, 0},
  {(char *)"tclass", __pyx_getprop_7setools_9policyrep_7Default_tclass, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Default = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Default", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Default), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Default, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_7Default_3__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Base class for default_* statements.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Default, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Default, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Default, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Default, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Default, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Default, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_DefaultRange __pyx_vtable_7setools_9policyrep_DefaultRange;

static PyObject *__pyx_tp_new_7setools_9policyrep_DefaultRange(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_DefaultRange *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Default(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_DefaultRange *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_DefaultRange;
  p->default_range = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_DefaultRange(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_DefaultRange *p = (struct __pyx_obj_7setools_9policyrep_DefaultRange *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->default_range);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Default(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_DefaultRange(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_DefaultRange *p = (struct __pyx_obj_7setools_9policyrep_DefaultRange *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Default(o, v, a); if (e) return e;
  if (p->default_range) {
    e = (*v)(p->default_range, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_DefaultRange(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_DefaultRange *p = (struct __pyx_obj_7setools_9policyrep_DefaultRange *)o;
  __pyx_tp_clear_7setools_9policyrep_Default(o);
  tmp = ((PyObject*)p->default_range);
  p->default_range = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_DefaultRange(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12DefaultRange_1__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12DefaultRange_5__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_12DefaultRange_default_range(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12DefaultRange_13default_range_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_DefaultRange[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_12DefaultRange_7statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12DefaultRange_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12DefaultRange_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_DefaultRange[] = {
  {(char *)"default_range", __pyx_getprop_7setools_9policyrep_12DefaultRange_default_range, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_DefaultRange = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.DefaultRange", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_DefaultRange), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_DefaultRange, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_12DefaultRange_3__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A default_range statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_DefaultRange, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_DefaultRange, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_DefaultRange, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_DefaultRange, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_DefaultRange, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_DefaultRange, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ocontext __pyx_vtable_7setools_9policyrep_Ocontext;

static PyObject *__pyx_tp_new_7setools_9policyrep_Ocontext(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Ocontext *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Ocontext *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Ocontext;
  p->context = ((struct __pyx_obj_7setools_9policyrep_Context *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Ocontext(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Ocontext *p = (struct __pyx_obj_7setools_9policyrep_Ocontext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->context);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Ocontext(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Ocontext *p = (struct __pyx_obj_7setools_9policyrep_Ocontext *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->context) {
    e = (*v)(((PyObject *)p->context), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Ocontext(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Ocontext *p = (struct __pyx_obj_7setools_9policyrep_Ocontext *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->context);
  p->context = ((struct __pyx_obj_7setools_9policyrep_Context *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Ocontext_context(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Ocontext_7context_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Ocontext[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Ocontext_1__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Ocontext_3__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Ocontext[] = {
  {(char *)"context", __pyx_getprop_7setools_9policyrep_8Ocontext_context, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Ocontext = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Ocontext", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Ocontext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Base class for most in-policy labeling statements, (portcon, nodecon, etc.)", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ocontext, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ocontext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Ocontext, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Ocontext, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Ocontext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_FSUse __pyx_vtable_7setools_9policyrep_FSUse;

static PyObject *__pyx_tp_new_7setools_9policyrep_FSUse(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FSUse *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FSUse *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_FSUse;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->fs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_FSUse(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_FSUse *p = (struct __pyx_obj_7setools_9policyrep_FSUse *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->fs);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_FSUse(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_FSUse *p = (struct __pyx_obj_7setools_9policyrep_FSUse *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_FSUse(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_FSUse *p = (struct __pyx_obj_7setools_9policyrep_FSUse *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_FSUse(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_5FSUse_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_5FSUse_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_5FSUse_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_5FSUse_fs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_5FSUse_2fs_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_FSUse[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_5FSUse_5statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_5FSUse_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_5FSUse_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_FSUse[] = {
  {(char *)"ruletype", __pyx_getprop_7setools_9policyrep_5FSUse_ruletype, 0, (char *)0, 0},
  {(char *)"fs", __pyx_getprop_7setools_9policyrep_5FSUse_fs, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_FSUse = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.FSUse", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FSUse), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_FSUse, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_5FSUse_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An fs_use_* statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_FSUse, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_FSUse, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_FSUse, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FSUse, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_FSUse, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FSUse, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsFiletype(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = (&PyInt_Type)->tp_new(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_GenfsFiletype(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (&PyInt_Type)->tp_dealloc(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_GenfsFiletype[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13GenfsFiletype_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13GenfsFiletype_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_GenfsFiletype = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.GenfsFiletype", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsFiletype), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_GenfsFiletype, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_13GenfsFiletype_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    A genfscon file type.\n\n    The possible values are equivalent to file type\n    values in the stat module, e.g. S_IFBLK, but\n    overrides the string representation with the\n    corresponding genfscon file type string\n    (-b, -c, etc.)  If the genfscon has no specific\n    file type, this is 0, (empty string).\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_GenfsFiletype, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_GenfsFiletype, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Genfscon __pyx_vtable_7setools_9policyrep_Genfscon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Genfscon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Genfscon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Genfscon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Genfscon;
  p->fs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->filetype = Py_None; Py_INCREF(Py_None);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->path = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Genfscon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Genfscon *p = (struct __pyx_obj_7setools_9policyrep_Genfscon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->fs);
  Py_CLEAR(p->filetype);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->path);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Genfscon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Genfscon *p = (struct __pyx_obj_7setools_9policyrep_Genfscon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->filetype) {
    e = (*v)(p->filetype, a); if (e) return e;
  }
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Genfscon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Genfscon *p = (struct __pyx_obj_7setools_9policyrep_Genfscon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->filetype);
  p->filetype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Genfscon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_8Genfscon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Genfscon_fs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Genfscon_2fs_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Genfscon_filetype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Genfscon_8filetype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Genfscon_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Genfscon_6tclass_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Genfscon_path(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Genfscon_4path_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Genfscon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_8Genfscon_5statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Genfscon_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Genfscon_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Genfscon[] = {
  {(char *)"fs", __pyx_getprop_7setools_9policyrep_8Genfscon_fs, 0, (char *)0, 0},
  {(char *)"filetype", __pyx_getprop_7setools_9policyrep_8Genfscon_filetype, 0, (char *)0, 0},
  {(char *)"tclass", __pyx_getprop_7setools_9policyrep_8Genfscon_tclass, 0, (char *)0, 0},
  {(char *)"path", __pyx_getprop_7setools_9policyrep_8Genfscon_path, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Genfscon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Genfscon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Genfscon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Genfscon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_8Genfscon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A genfscon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Genfscon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Genfscon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Genfscon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Genfscon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Genfscon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Genfscon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_7setools_9policyrep_OcontextIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_OcontextIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16OcontextIterator_5__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16OcontextIterator_7__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_OcontextIterator = {
  __pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_OcontextIterator = {
  __pyx_pw_7setools_9policyrep_16OcontextIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_OcontextIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.OcontextIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_OcontextIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_OcontextIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_OcontextIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Base class for iterators for most in-policy labeling statements, (portcon, nodecon, etc.)\n\n    Sublcasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.ocon.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.ocon)\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_16OcontextIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_OcontextIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_OcontextIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_FSUseIterator __pyx_vtable_7setools_9policyrep_FSUseIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_FSUseIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FSUseIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FSUseIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_FSUseIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_FSUseIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13FSUseIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13FSUseIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_FSUseIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.FSUseIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FSUseIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for fs_use_* statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_13FSUseIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FSUseIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FSUseIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_GenfsconIterator __pyx_vtable_7setools_9policyrep_GenfsconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsconIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_GenfsconIterator;
  p->ocon_iter = Py_None; Py_INCREF(Py_None);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_GenfsconIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *p = (struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ocon_iter);
  Py_CLEAR(p->policy);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_GenfsconIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *p = (struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)o;
  if (p->ocon_iter) {
    e = (*v)(p->ocon_iter, a); if (e) return e;
  }
  if (p->policy) {
    e = (*v)(((PyObject *)p->policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_GenfsconIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_GenfsconIterator *p = (struct __pyx_obj_7setools_9policyrep_GenfsconIterator *)o;
  tmp = ((PyObject*)p->ocon_iter);
  p->ocon_iter = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->policy);
  p->policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_GenfsconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16GenfsconIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16GenfsconIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_GenfsconIterator = {
  __pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_GenfsconIterator = {
  __pyx_pw_7setools_9policyrep_16GenfsconIterator_5__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_GenfsconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.GenfsconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_GenfsconIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_GenfsconIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_GenfsconIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for genfscon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_GenfsconIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_GenfsconIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_16GenfsconIterator_1__iter__, /*tp_iter*/
  __pyx_pw_7setools_9policyrep_16GenfsconIterator_3__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_GenfsconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_GenfsconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_GenfsconOcontextIterator __pyx_vtable_7setools_9policyrep_GenfsconOcontextIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_GenfsconOcontextIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_GenfsconOcontextIterator;
  p->fs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_GenfsconOcontextIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *p = (struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->fs);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_GenfsconOcontextIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_GenfsconOcontextIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.GenfsconOcontextIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_GenfsconOcontextIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_GenfsconOcontextIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Sub-iterator for genfscon statements.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_24GenfsconOcontextIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_GenfsconOcontextIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_GenfsconOcontextIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_InitialSID __pyx_vtable_7setools_9policyrep_InitialSID;

static PyObject *__pyx_tp_new_7setools_9policyrep_InitialSID(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_InitialSID *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_InitialSID *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_InitialSID;
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_InitialSID(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_InitialSID *p = (struct __pyx_obj_7setools_9policyrep_InitialSID *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->name);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10InitialSID_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10InitialSID_4name_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_InitialSID[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_10InitialSID_3statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_10InitialSID_5__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_10InitialSID_7__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_InitialSID[] = {
  {(char *)"name", __pyx_getprop_7setools_9policyrep_10InitialSID_name, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_InitialSID = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.InitialSID", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_InitialSID), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_InitialSID, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_10InitialSID_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An initial SID statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ocontext, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ocontext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_InitialSID, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_InitialSID, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_InitialSID, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_InitialSIDIterator __pyx_vtable_7setools_9policyrep_InitialSIDIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_InitialSIDIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_InitialSIDIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_InitialSIDIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_InitialSIDIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_18InitialSIDIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_18InitialSIDIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_InitialSIDIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.InitialSIDIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_InitialSIDIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for initial SID statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_18InitialSIDIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_InitialSIDIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_InitialSIDIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Category __pyx_vtable_7setools_9policyrep_Category;

static PyObject *__pyx_tp_new_7setools_9policyrep_Category(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Category *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Category *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Category;
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Category(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Category *p = (struct __pyx_obj_7setools_9policyrep_Category *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_aliases);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Category(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Category *p = (struct __pyx_obj_7setools_9policyrep_Category *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_aliases) {
    e = (*v)(p->_aliases, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Category(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Category *p = (struct __pyx_obj_7setools_9policyrep_Category *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_aliases);
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Category(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_8Category_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Category__value(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Category_6_value_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Category[] = {
  {"aliases", (PyCFunction)__pyx_pw_7setools_9policyrep_8Category_5aliases, METH_NOARGS, __pyx_doc_7setools_9policyrep_8Category_4aliases},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_8Category_7statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Category_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Category_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Category[] = {
  {(char *)"_value", __pyx_getprop_7setools_9policyrep_8Category__value, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Category = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Category", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Category), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Category, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_8Category_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An MLS category.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Category, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Category, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Category, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Category, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Category, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Category, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Sensitivity __pyx_vtable_7setools_9policyrep_Sensitivity;

static PyObject *__pyx_tp_new_7setools_9policyrep_Sensitivity(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Sensitivity *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Sensitivity;
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_leveldecl = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Sensitivity(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Sensitivity *p = (struct __pyx_obj_7setools_9policyrep_Sensitivity *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_aliases);
  Py_CLEAR(p->_leveldecl);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Sensitivity(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *p = (struct __pyx_obj_7setools_9policyrep_Sensitivity *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_aliases) {
    e = (*v)(p->_aliases, a); if (e) return e;
  }
  if (p->_leveldecl) {
    e = (*v)(((PyObject *)p->_leveldecl), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Sensitivity(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Sensitivity *p = (struct __pyx_obj_7setools_9policyrep_Sensitivity *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_aliases);
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_leveldecl);
  p->_leveldecl = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Sensitivity(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_11Sensitivity_9__lt__(o1, o2);
    }
    case Py_GT: {
      return __pyx_pw_7setools_9policyrep_11Sensitivity_5__gt__(o1, o2);
    }
    case Py_LE: {
      return __pyx_pw_7setools_9policyrep_11Sensitivity_7__le__(o1, o2);
    }
    case Py_GE: {
      return __pyx_pw_7setools_9policyrep_11Sensitivity_3__ge__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_11Sensitivity__value(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11Sensitivity_6_value_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Sensitivity[] = {
  {"aliases", (PyCFunction)__pyx_pw_7setools_9policyrep_11Sensitivity_11aliases, METH_NOARGS, __pyx_doc_7setools_9policyrep_11Sensitivity_10aliases},
  {"level_decl", (PyCFunction)__pyx_pw_7setools_9policyrep_11Sensitivity_13level_decl, METH_NOARGS, __pyx_doc_7setools_9policyrep_11Sensitivity_12level_decl},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_11Sensitivity_15statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_11Sensitivity_17__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_11Sensitivity_19__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Sensitivity[] = {
  {(char *)"_value", __pyx_getprop_7setools_9policyrep_11Sensitivity__value, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Sensitivity = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Sensitivity", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Sensitivity), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Sensitivity, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_11Sensitivity_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An MLS sensitivity", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Sensitivity, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Sensitivity, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Sensitivity, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Sensitivity, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Sensitivity, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Sensitivity, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseMLSLevel __pyx_vtable_7setools_9policyrep_BaseMLSLevel;

static PyObject *__pyx_tp_new_7setools_9policyrep_BaseMLSLevel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_BaseMLSLevel;
  p->_categories = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *p = (struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_categories);
  Py_CLEAR(p->sensitivity);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *p = (struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_categories) {
    e = (*v)(p->_categories, a); if (e) return e;
  }
  if (p->sensitivity) {
    e = (*v)(((PyObject *)p->sensitivity), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_BaseMLSLevel(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *p = (struct __pyx_obj_7setools_9policyrep_BaseMLSLevel *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_categories);
  p->_categories = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->sensitivity);
  p->sensitivity = ((struct __pyx_obj_7setools_9policyrep_Sensitivity *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_12BaseMLSLevel_sensitivity(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12BaseMLSLevel_11sensitivity_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BaseMLSLevel[] = {
  {"categories", (PyCFunction)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_3categories, METH_NOARGS, __pyx_doc_7setools_9policyrep_12BaseMLSLevel_2categories},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_5__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12BaseMLSLevel_7__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_BaseMLSLevel[] = {
  {(char *)"sensitivity", __pyx_getprop_7setools_9policyrep_12BaseMLSLevel_sensitivity, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_BaseMLSLevel = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.BaseMLSLevel", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseMLSLevel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Base class for MLS levels.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseMLSLevel, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BaseMLSLevel, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_BaseMLSLevel, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BaseMLSLevel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_LevelDecl __pyx_vtable_7setools_9policyrep_LevelDecl;

static PyObject *__pyx_tp_new_7setools_9policyrep_LevelDecl(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_LevelDecl *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseMLSLevel(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_LevelDecl *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_LevelDecl;
  return o;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_LevelDecl(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_3__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_11__lt__(o1, o2);
    }
    case Py_GT: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_7__gt__(o1, o2);
    }
    case Py_LE: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_9__le__(o1, o2);
    }
    case Py_GE: {
      return __pyx_pw_7setools_9policyrep_9LevelDecl_5__ge__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyMethodDef __pyx_methods_7setools_9policyrep_LevelDecl[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_9LevelDecl_13statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_9LevelDecl_15__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_9LevelDecl_17__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_LevelDecl = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.LevelDecl", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_LevelDecl), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_9LevelDecl_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    The declaration statement for MLS levels, e.g:\n\n    level s7:c0.c1023;\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseMLSLevel, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_LevelDecl, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_LevelDecl, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_LevelDecl, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Level __pyx_vtable_7setools_9policyrep_Level;

static PyObject *__pyx_tp_new_7setools_9policyrep_Level(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Level *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseMLSLevel(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Level *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Level;
  return o;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Level(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_5Level_3__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_5Level_11__lt__(o1, o2);
    }
    case Py_GT: {
      return __pyx_pw_7setools_9policyrep_5Level_7__gt__(o1, o2);
    }
    case Py_LE: {
      return __pyx_pw_7setools_9policyrep_5Level_9__le__(o1, o2);
    }
    case Py_GE: {
      return __pyx_pw_7setools_9policyrep_5Level_5__ge__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Level[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_5Level_15statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_5Level_17__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_5Level_19__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_Level = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_divide*/
  #endif
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  __pyx_pw_7setools_9policyrep_5Level_13__xor__, /*nb_xor*/
  0, /*nb_or*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_coerce*/
  #endif
  0, /*nb_int*/
  #if PY_MAJOR_VERSION < 3
  0, /*nb_long*/
  #else
  0, /*reserved*/
  #endif
  0, /*nb_float*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_oct*/
  #endif
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_hex*/
  #endif
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000)
  0, /*nb_inplace_divide*/
  #endif
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_matrix_multiply*/
  #endif
  #if PY_VERSION_HEX >= 0x03050000
  0, /*nb_inplace_matrix_multiply*/
  #endif
};

static PyTypeObject __pyx_type_7setools_9policyrep_Level = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Level", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Level), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseMLSLevel, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  &__pyx_tp_as_number_Level, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_5Level_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12BaseMLSLevel_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    An MLS level used in contexts.\n\n    The _sensitivity and _categories attributes are only populated\n    if the level is user-generated.\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseMLSLevel, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseMLSLevel, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Level, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Level, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Level, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Range __pyx_vtable_7setools_9policyrep_Range;

static PyObject *__pyx_tp_new_7setools_9policyrep_Range(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Range *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Range *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Range;
  p->low = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  p->high = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Range(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Range *p = (struct __pyx_obj_7setools_9policyrep_Range *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->low);
  Py_CLEAR(p->high);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Range(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Range *p = (struct __pyx_obj_7setools_9policyrep_Range *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->low) {
    e = (*v)(((PyObject *)p->low), a); if (e) return e;
  }
  if (p->high) {
    e = (*v)(((PyObject *)p->high), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Range(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Range *p = (struct __pyx_obj_7setools_9policyrep_Range *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->low);
  p->low = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->high);
  p->high = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Range(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_5Range_5__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_5Range_low(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_5Range_3low_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_5Range_high(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_5Range_4high_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Range[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_5Range_9statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_5Range_11__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_5Range_13__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Range[] = {
  {(char *)"low", __pyx_getprop_7setools_9policyrep_5Range_low, 0, (char *)0, 0},
  {(char *)"high", __pyx_getprop_7setools_9policyrep_5Range_high, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_Range = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_5Range_7__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_Range = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Range", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Range), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Range, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_Range, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_5Range_3__hash__, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_5Range_1__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An MLS range", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Range, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Range, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Range, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Range, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Range, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Range, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_CategoryHashtabIterator __pyx_vtable_7setools_9policyrep_CategoryHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_CategoryHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_CategoryHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_CategoryHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_5reset, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_CategoryHashtabIterator = {
  __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_CategoryHashtabIterator = {
  __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_CategoryHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.CategoryHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_CategoryHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_CategoryHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_CategoryHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over categories in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_23CategoryHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_CategoryHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_CategoryHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_SensitivityHashtabIterator __pyx_vtable_7setools_9policyrep_SensitivityHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_SensitivityHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_SensitivityHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_SensitivityHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_5reset, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_SensitivityHashtabIterator = {
  __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_SensitivityHashtabIterator = {
  __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_SensitivityHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.SensitivityHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_SensitivityHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_SensitivityHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_SensitivityHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over sensitivity in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_26SensitivityHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_SensitivityHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_SensitivityHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_LevelDeclHashtabIterator __pyx_vtable_7setools_9policyrep_LevelDeclHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_LevelDeclHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_LevelDeclHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_LevelDeclHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_5reset, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_LevelDeclHashtabIterator = {
  __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_LevelDeclHashtabIterator = {
  __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.LevelDeclHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_LevelDeclHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_LevelDeclHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_LevelDeclHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over level declarations in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_24LevelDeclHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_LevelDeclHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_LevelDeclHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_7setools_9policyrep_EbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_EbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_15EbitmapIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_15EbitmapIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15EbitmapIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15EbitmapIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_EbitmapIterator = {
  __pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_EbitmapIterator = {
  __pyx_pw_7setools_9policyrep_15EbitmapIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_EbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.EbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_EbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_EbitmapIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_EbitmapIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Base class for iterators over hash tables.\n\n    Sublcasses must provide their own __next__, which calls this class's __next__\n    and then uses a factory function to build and return an object from self.curr.\n\n    For example:\n\n    def __next__(self):\n        super().__next__()\n        return iomemcon_factory(self.policy, self.curr)\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15EbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_EbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_EbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_CategoryEbitmapIterator __pyx_vtable_7setools_9policyrep_CategoryEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_CategoryEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_EbitmapIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_CategoryEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_CategoryEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_CategoryEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.CategoryEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_CategoryEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over a category ebitmap.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_23CategoryEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_CategoryEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_CategoryEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyRule __pyx_vtable_7setools_9policyrep_PolicyRule;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyRule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyRule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyObject(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyRule *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  p->ruletype = Py_None; Py_INCREF(Py_None);
  p->source = Py_None; Py_INCREF(Py_None);
  p->target = Py_None; Py_INCREF(Py_None);
  p->origin = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PolicyRule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PolicyRule *p = (struct __pyx_obj_7setools_9policyrep_PolicyRule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ruletype);
  Py_CLEAR(p->source);
  Py_CLEAR(p->target);
  Py_CLEAR(p->origin);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyObject(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_PolicyRule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_PolicyRule *p = (struct __pyx_obj_7setools_9policyrep_PolicyRule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ruletype) {
    e = (*v)(p->ruletype, a); if (e) return e;
  }
  if (p->source) {
    e = (*v)(p->source, a); if (e) return e;
  }
  if (p->target) {
    e = (*v)(p->target, a); if (e) return e;
  }
  if (p->origin) {
    e = (*v)(p->origin, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_PolicyRule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_PolicyRule *p = (struct __pyx_obj_7setools_9policyrep_PolicyRule *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ruletype);
  p->ruletype = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->source);
  p->source = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->target);
  p->target = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->origin);
  p->origin = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_conditional(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_11conditional_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_conditional_block(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_17conditional_block_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_ruletype(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_8ruletype_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_source(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_6source_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_target(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_6target_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_origin(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_6origin_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10PolicyRule_extended(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10PolicyRule_8extended_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyRule[] = {
  {"enabled", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_10PolicyRule_1enabled, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10PolicyRule_enabled},
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_10PolicyRule_3expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_10PolicyRule_2expand},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_10PolicyRule_5__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_10PolicyRule_7__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_PolicyRule[] = {
  {(char *)"conditional", __pyx_getprop_7setools_9policyrep_10PolicyRule_conditional, 0, (char *)"The conditional expression for this rule.", 0},
  {(char *)"conditional_block", __pyx_getprop_7setools_9policyrep_10PolicyRule_conditional_block, 0, (char *)"The conditional block of the rule (T/F)", 0},
  {(char *)"ruletype", __pyx_getprop_7setools_9policyrep_10PolicyRule_ruletype, 0, (char *)0, 0},
  {(char *)"source", __pyx_getprop_7setools_9policyrep_10PolicyRule_source, 0, (char *)0, 0},
  {(char *)"target", __pyx_getprop_7setools_9policyrep_10PolicyRule_target, 0, (char *)0, 0},
  {(char *)"origin", __pyx_getprop_7setools_9policyrep_10PolicyRule_origin, 0, (char *)0, 0},
  {(char *)"extended", __pyx_getprop_7setools_9policyrep_10PolicyRule_extended, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyRule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PolicyRule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyRule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "This is base class for policy rules.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyRule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyRule, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyRule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_PolicyRule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyRule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_MLSRule __pyx_vtable_7setools_9policyrep_MLSRule;

static PyObject *__pyx_tp_new_7setools_9policyrep_MLSRule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_MLSRule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyRule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_MLSRule *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_MLSRule;
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->rng = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_MLSRule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_MLSRule *p = (struct __pyx_obj_7setools_9policyrep_MLSRule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->rng);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_MLSRule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_MLSRule *p = (struct __pyx_obj_7setools_9policyrep_MLSRule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyRule(o, v, a); if (e) return e;
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  if (p->rng) {
    e = (*v)(p->rng, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_MLSRule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_MLSRule *p = (struct __pyx_obj_7setools_9policyrep_MLSRule *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyRule(o);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->rng);
  p->rng = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_MLSRule(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_7MLSRule_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_7MLSRule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7MLSRule_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7MLSRule_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7MLSRule_6tclass_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_MLSRule[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_7MLSRule_5expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_7MLSRule_4expand},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_7MLSRule_8statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7MLSRule_10__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7MLSRule_12__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_MLSRule[] = {
  {(char *)"default", __pyx_getprop_7setools_9policyrep_7MLSRule_default, 0, (char *)"The rule's default range.", 0},
  {(char *)"tclass", __pyx_getprop_7setools_9policyrep_7MLSRule_tclass, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_MLSRule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.MLSRule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_MLSRule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_MLSRule, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_7MLSRule_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An MLS rule.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_MLSRule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_MLSRule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_MLSRule, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_MLSRule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_MLSRule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_MLSRule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_MLSRuleIterator __pyx_vtable_7setools_9policyrep_MLSRuleIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_MLSRuleIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_MLSRuleIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_MLSRuleIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_MLSRuleIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15MLSRuleIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15MLSRuleIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_MLSRuleIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.MLSRuleIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_MLSRuleIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over MLS rules in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15MLSRuleIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_MLSRuleIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_MLSRuleIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ibendportcon __pyx_vtable_7setools_9policyrep_Ibendportcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Ibendportcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Ibendportcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Ibendportcon;
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Ibendportcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Ibendportcon *p = (struct __pyx_obj_7setools_9policyrep_Ibendportcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->name);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Ibendportcon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12Ibendportcon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_12Ibendportcon_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12Ibendportcon_4name_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_12Ibendportcon_port(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12Ibendportcon_4port_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Ibendportcon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_12Ibendportcon_5statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12Ibendportcon_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12Ibendportcon_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Ibendportcon[] = {
  {(char *)"name", __pyx_getprop_7setools_9policyrep_12Ibendportcon_name, 0, (char *)0, 0},
  {(char *)"port", __pyx_getprop_7setools_9policyrep_12Ibendportcon_port, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Ibendportcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Ibendportcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Ibendportcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Ibendportcon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_12Ibendportcon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An ibendportcon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ocontext, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ocontext, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Ibendportcon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Ibendportcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Ibendportcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Ibendportcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ibpkeycon __pyx_vtable_7setools_9policyrep_Ibpkeycon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Ibpkeycon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Ibpkeycon;
  p->subnet_prefix = Py_None; Py_INCREF(Py_None);
  p->pkeys = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Ibpkeycon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *p = (struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->subnet_prefix);
  Py_CLEAR(p->pkeys);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Ibpkeycon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *p = (struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->subnet_prefix) {
    e = (*v)(p->subnet_prefix, a); if (e) return e;
  }
  if (p->pkeys) {
    e = (*v)(p->pkeys, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Ibpkeycon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Ibpkeycon *p = (struct __pyx_obj_7setools_9policyrep_Ibpkeycon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->subnet_prefix);
  p->subnet_prefix = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->pkeys);
  p->pkeys = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Ibpkeycon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_9Ibpkeycon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_9Ibpkeycon_subnet_prefix(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_9Ibpkeycon_13subnet_prefix_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_9Ibpkeycon_pkeys(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_9Ibpkeycon_5pkeys_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Ibpkeycon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_9Ibpkeycon_5statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_9Ibpkeycon_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_9Ibpkeycon_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Ibpkeycon[] = {
  {(char *)"subnet_prefix", __pyx_getprop_7setools_9policyrep_9Ibpkeycon_subnet_prefix, 0, (char *)0, 0},
  {(char *)"pkeys", __pyx_getprop_7setools_9policyrep_9Ibpkeycon_pkeys, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Ibpkeycon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Ibpkeycon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Ibpkeycon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Ibpkeycon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_9Ibpkeycon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An ibpkeycon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ibpkeycon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ibpkeycon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Ibpkeycon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Ibpkeycon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Ibpkeycon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Ibpkeycon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Netifcon __pyx_vtable_7setools_9policyrep_Netifcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Netifcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Netifcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Netifcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Netifcon;
  p->netif = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->packet = ((struct __pyx_obj_7setools_9policyrep_Context *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Netifcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Netifcon *p = (struct __pyx_obj_7setools_9policyrep_Netifcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->netif);
  Py_CLEAR(p->packet);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Netifcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Netifcon *p = (struct __pyx_obj_7setools_9policyrep_Netifcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->packet) {
    e = (*v)(((PyObject *)p->packet), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Netifcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Netifcon *p = (struct __pyx_obj_7setools_9policyrep_Netifcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->packet);
  p->packet = ((struct __pyx_obj_7setools_9policyrep_Context *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Netifcon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_8Netifcon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Netifcon_netif(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Netifcon_5netif_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Netifcon_packet(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Netifcon_6packet_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Netifcon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_8Netifcon_5statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Netifcon_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Netifcon_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Netifcon[] = {
  {(char *)"netif", __pyx_getprop_7setools_9policyrep_8Netifcon_netif, 0, (char *)0, 0},
  {(char *)"packet", __pyx_getprop_7setools_9policyrep_8Netifcon_packet, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Netifcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Netifcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Netifcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Netifcon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_8Netifcon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A netifcon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Netifcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Netifcon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Netifcon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Netifcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Netifcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Netifcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Nodecon __pyx_vtable_7setools_9policyrep_Nodecon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Nodecon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Nodecon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Nodecon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Nodecon;
  p->ip_version = Py_None; Py_INCREF(Py_None);
  p->network = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Nodecon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Nodecon *p = (struct __pyx_obj_7setools_9policyrep_Nodecon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ip_version);
  Py_CLEAR(p->network);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Nodecon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Nodecon *p = (struct __pyx_obj_7setools_9policyrep_Nodecon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->ip_version) {
    e = (*v)(p->ip_version, a); if (e) return e;
  }
  if (p->network) {
    e = (*v)(p->network, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Nodecon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Nodecon *p = (struct __pyx_obj_7setools_9policyrep_Nodecon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->ip_version);
  p->ip_version = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->network);
  p->network = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Nodecon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_7Nodecon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Nodecon_ip_version(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Nodecon_10ip_version_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Nodecon_network(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Nodecon_7network_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Nodecon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_7Nodecon_5statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Nodecon_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Nodecon_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Nodecon[] = {
  {(char *)"ip_version", __pyx_getprop_7setools_9policyrep_7Nodecon_ip_version, 0, (char *)0, 0},
  {(char *)"network", __pyx_getprop_7setools_9policyrep_7Nodecon_network, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Nodecon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Nodecon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Nodecon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Nodecon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_7Nodecon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A nodecon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Nodecon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Nodecon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Nodecon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Nodecon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Nodecon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Nodecon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Portcon __pyx_vtable_7setools_9policyrep_Portcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Portcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Portcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Portcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Portcon;
  p->ports = Py_None; Py_INCREF(Py_None);
  p->protocol = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Portcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Portcon *p = (struct __pyx_obj_7setools_9policyrep_Portcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ports);
  Py_CLEAR(p->protocol);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Portcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Portcon *p = (struct __pyx_obj_7setools_9policyrep_Portcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->ports) {
    e = (*v)(p->ports, a); if (e) return e;
  }
  if (p->protocol) {
    e = (*v)(p->protocol, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Portcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Portcon *p = (struct __pyx_obj_7setools_9policyrep_Portcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->ports);
  p->ports = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->protocol);
  p->protocol = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_Portcon(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_7Portcon_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Portcon_ports(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Portcon_5ports_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Portcon_protocol(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Portcon_8protocol_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Portcon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_7Portcon_5statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Portcon_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Portcon_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Portcon[] = {
  {(char *)"ports", __pyx_getprop_7setools_9policyrep_7Portcon_ports, 0, (char *)0, 0},
  {(char *)"protocol", __pyx_getprop_7setools_9policyrep_7Portcon_protocol, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Portcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Portcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Portcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Portcon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_7Portcon_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A portcon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Portcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Portcon, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_Portcon, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Portcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Portcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Portcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_IbendportconIterator __pyx_vtable_7setools_9policyrep_IbendportconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_IbendportconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_IbendportconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_IbendportconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_IbendportconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_IbendportconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_20IbendportconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_20IbendportconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_IbendportconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.IbendportconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IbendportconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for ibendportcon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_20IbendportconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IbendportconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IbendportconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_IbpkeyconIterator __pyx_vtable_7setools_9policyrep_IbpkeyconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_IbpkeyconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_IbpkeyconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_IbpkeyconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_17IbpkeyconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_IbpkeyconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.IbpkeyconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IbpkeyconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for ibpkeycon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_17IbpkeyconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IbpkeyconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IbpkeyconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_NetifconIterator __pyx_vtable_7setools_9policyrep_NetifconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_NetifconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_NetifconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_NetifconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_NetifconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_NetifconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16NetifconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16NetifconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_NetifconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.NetifconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_NetifconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for netifcon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_16NetifconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_NetifconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_NetifconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_NodeconIterator __pyx_vtable_7setools_9policyrep_NodeconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_NodeconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_NodeconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_NodeconIterator;
  p->ip_version = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_NodeconIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *p = (struct __pyx_obj_7setools_9policyrep_NodeconIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ip_version);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_NodeconIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *p = (struct __pyx_obj_7setools_9policyrep_NodeconIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->ip_version) {
    e = (*v)(p->ip_version, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_NodeconIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_NodeconIterator *p = (struct __pyx_obj_7setools_9policyrep_NodeconIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->ip_version);
  p->ip_version = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_NodeconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15NodeconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15NodeconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_NodeconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.NodeconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_NodeconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_NodeconIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for nodecon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_NodeconIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_NodeconIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15NodeconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_NodeconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_NodeconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_PortconIterator __pyx_vtable_7setools_9policyrep_PortconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PortconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PortconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PortconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PortconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15PortconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_15PortconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_PortconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15PortconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15PortconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15PortconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_PortconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PortconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PortconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for portcon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15PortconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PortconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PortconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Common __pyx_vtable_7setools_9policyrep_Common;

static PyObject *__pyx_tp_new_7setools_9policyrep_Common(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Common *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Common *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Common;
  p->_perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Common(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Common *p = (struct __pyx_obj_7setools_9policyrep_Common *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_perm_table);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Common(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Common *p = (struct __pyx_obj_7setools_9policyrep_Common *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_perm_table) {
    e = (*v)(p->_perm_table, a); if (e) return e;
  }
  if (p->perms) {
    e = (*v)(p->perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Common(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Common *p = (struct __pyx_obj_7setools_9policyrep_Common *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_perm_table);
  p->_perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->perms);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_6Common_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6Common_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Common[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_6Common_3statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_6Common_5__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_6Common_7__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Common[] = {
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_6Common_perms, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_Common = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_6Common_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_Common = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Common", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Common), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Common, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_Common, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A common permission set.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Common, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Common, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Common, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Common, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Common, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ObjClass __pyx_vtable_7setools_9policyrep_ObjClass;

static PyObject *__pyx_tp_new_7setools_9policyrep_ObjClass(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ObjClass *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_ObjClass;
  p->_common = ((struct __pyx_obj_7setools_9policyrep_Common *)Py_None); Py_INCREF(Py_None);
  p->_perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_defaults = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_constraints = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_validatetrans = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ObjClass(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ObjClass *p = (struct __pyx_obj_7setools_9policyrep_ObjClass *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_common);
  Py_CLEAR(p->_perm_table);
  Py_CLEAR(p->_defaults);
  Py_CLEAR(p->_constraints);
  Py_CLEAR(p->_validatetrans);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ObjClass(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ObjClass *p = (struct __pyx_obj_7setools_9policyrep_ObjClass *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_common) {
    e = (*v)(((PyObject *)p->_common), a); if (e) return e;
  }
  if (p->_perm_table) {
    e = (*v)(p->_perm_table, a); if (e) return e;
  }
  if (p->_defaults) {
    e = (*v)(p->_defaults, a); if (e) return e;
  }
  if (p->_constraints) {
    e = (*v)(p->_constraints, a); if (e) return e;
  }
  if (p->_validatetrans) {
    e = (*v)(p->_validatetrans, a); if (e) return e;
  }
  if (p->perms) {
    e = (*v)(p->perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ObjClass(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ObjClass *p = (struct __pyx_obj_7setools_9policyrep_ObjClass *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_common);
  p->_common = ((struct __pyx_obj_7setools_9policyrep_Common *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_perm_table);
  p->_perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_defaults);
  p->_defaults = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_constraints);
  p->_constraints = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_validatetrans);
  p->_validatetrans = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->perms);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_8ObjClass_common(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8ObjClass_6common_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_8ObjClass_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8ObjClass_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_ObjClass[] = {
  {"constraints", (PyCFunction)__pyx_pw_7setools_9policyrep_8ObjClass_3constraints, METH_NOARGS, __pyx_doc_7setools_9policyrep_8ObjClass_2constraints},
  {"defaults", (PyCFunction)__pyx_pw_7setools_9policyrep_8ObjClass_5defaults, METH_NOARGS, __pyx_doc_7setools_9policyrep_8ObjClass_4defaults},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_8ObjClass_7statement, METH_NOARGS, 0},
  {"validatetrans", (PyCFunction)__pyx_pw_7setools_9policyrep_8ObjClass_9validatetrans, METH_NOARGS, __pyx_doc_7setools_9policyrep_8ObjClass_8validatetrans},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8ObjClass_11__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8ObjClass_13__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_ObjClass[] = {
  {(char *)"common", __pyx_getprop_7setools_9policyrep_8ObjClass_common, 0, (char *)"\n        The common that the object class inherits.\n\n        Exceptions:\n        NoCommon    The object class does not inherit a common.\n        ", 0},
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_8ObjClass_perms, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_ObjClass = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_8ObjClass_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ObjClass = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ObjClass", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ObjClass), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ObjClass, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ObjClass, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An object class.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ObjClass, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ObjClass, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ObjClass, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_ObjClass, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ObjClass, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_CommonHashtabIterator __pyx_vtable_7setools_9policyrep_CommonHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_CommonHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_CommonHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_CommonHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_21CommonHashtabIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_CommonHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.CommonHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_CommonHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over commons in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_21CommonHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_CommonHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_CommonHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ObjClassHashtabIterator __pyx_vtable_7setools_9policyrep_ObjClassHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ObjClassHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_ObjClassHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_ObjClassHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_ObjClassHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ObjClassHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ObjClassHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over roles in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_23ObjClassHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ObjClassHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ObjClassHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_PermissionVectorIterator __pyx_vtable_7setools_9policyrep_PermissionVectorIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PermissionVectorIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PermissionVectorIterator;
  p->perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_PermissionVectorIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *p = (struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->perm_table);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_PermissionVectorIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *p = (struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->perm_table) {
    e = (*v)(p->perm_table, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_PermissionVectorIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *p = (struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->perm_table);
  p->perm_table = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_PermissionVectorIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_24PermissionVectorIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_24PermissionVectorIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_PermissionVectorIterator = {
  __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_PermissionVectorIterator = {
  __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_PermissionVectorIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PermissionVectorIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PermissionVectorIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PermissionVectorIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_PermissionVectorIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_PermissionVectorIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over an access (permission) vector", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PermissionVectorIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PermissionVectorIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_24PermissionVectorIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PermissionVectorIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PermissionVectorIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapability __pyx_vtable_7setools_9policyrep_PolicyCapability;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyCapability(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyCapability *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyCapability *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_PolicyCapability;
  return o;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_PolicyCapability(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_16PolicyCapability_1__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_11__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyCapability[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_16PolicyCapability_5statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16PolicyCapability_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16PolicyCapability_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyCapability = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PolicyCapability", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyCapability), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_16PolicyCapability_3__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A policy capability.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_PolicyCapability, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyCapability, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyCapability, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_PolicyCapabilityIterator __pyx_vtable_7setools_9policyrep_PolicyCapabilityIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PolicyCapabilityIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_EbitmapIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PolicyCapabilityIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_PolicyCapabilityIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_PolicyCapabilityIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PolicyCapabilityIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PolicyCapabilityIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for policy capability statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_24PolicyCapabilityIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PolicyCapabilityIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PolicyCapabilityIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleAllow __pyx_vtable_7setools_9policyrep_RoleAllow;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleAllow(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleAllow *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyRule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleAllow *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_RoleAllow;
  return o;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_RoleAllow(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_9RoleAllow_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_9RoleAllow_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_9RoleAllow_6tclass_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_9RoleAllow_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_9RoleAllow_7default_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleAllow[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_9RoleAllow_5expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_9RoleAllow_4expand},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_9RoleAllow_8statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_9RoleAllow_10__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_9RoleAllow_12__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_RoleAllow[] = {
  {(char *)"tclass", __pyx_getprop_7setools_9policyrep_9RoleAllow_tclass, 0, (char *)"The rule's object class.", 0},
  {(char *)"default", __pyx_getprop_7setools_9policyrep_9RoleAllow_default, 0, (char *)"The rule's default role.", 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_RoleAllow = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.RoleAllow", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleAllow), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_9RoleAllow_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A role allow rule.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyRule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyRule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_RoleAllow, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleAllow, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_RoleAllow, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleAllow, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleTransition __pyx_vtable_7setools_9policyrep_RoleTransition;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleTransition(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleTransition *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyRule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleTransition *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_RoleTransition;
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_RoleTransition(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_RoleTransition *p = (struct __pyx_obj_7setools_9policyrep_RoleTransition *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->dft);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_RoleTransition(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *p = (struct __pyx_obj_7setools_9policyrep_RoleTransition *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyRule(o, v, a); if (e) return e;
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  if (p->dft) {
    e = (*v)(((PyObject *)p->dft), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_RoleTransition(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_RoleTransition *p = (struct __pyx_obj_7setools_9policyrep_RoleTransition *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyRule(o);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->dft);
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_RoleTransition(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_14RoleTransition_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_14RoleTransition_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14RoleTransition_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14RoleTransition_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14RoleTransition_6tclass_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleTransition[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_14RoleTransition_5expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_14RoleTransition_4expand},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_14RoleTransition_8statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14RoleTransition_10__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14RoleTransition_12__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_RoleTransition[] = {
  {(char *)"default", __pyx_getprop_7setools_9policyrep_14RoleTransition_default, 0, (char *)"The rule's default role.", 0},
  {(char *)"tclass", __pyx_getprop_7setools_9policyrep_14RoleTransition_tclass, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_RoleTransition = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.RoleTransition", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleTransition), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_RoleTransition, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_14RoleTransition_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A role_transition rule.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_RoleTransition, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_RoleTransition, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_RoleTransition, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleTransition, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_RoleTransition, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleTransition, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleAllowIterator __pyx_vtable_7setools_9policyrep_RoleAllowIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleAllowIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleAllowIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_RoleAllowIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleAllowIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_17RoleAllowIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_17RoleAllowIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_RoleAllowIterator = {
  __pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_RoleAllowIterator = {
  __pyx_pw_7setools_9policyrep_17RoleAllowIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_RoleAllowIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.RoleAllowIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleAllowIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_RoleAllowIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_RoleAllowIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Role allow rule iterator.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_17RoleAllowIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleAllowIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleAllowIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleTransitionIterator __pyx_vtable_7setools_9policyrep_RoleTransitionIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleTransitionIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_RoleTransitionIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleTransitionIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_5reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_22RoleTransitionIterator_4reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_22RoleTransitionIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_RoleTransitionIterator = {
  __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_RoleTransitionIterator = {
  __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_RoleTransitionIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.RoleTransitionIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleTransitionIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_RoleTransitionIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_RoleTransitionIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Role transition rule iterator.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_22RoleTransitionIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleTransitionIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleTransitionIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Role __pyx_vtable_7setools_9policyrep_Role;

static PyObject *__pyx_tp_new_7setools_9policyrep_Role(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Role *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Role *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Role;
  p->_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Role(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Role *p = (struct __pyx_obj_7setools_9policyrep_Role *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_types);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Role(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Role *p = (struct __pyx_obj_7setools_9policyrep_Role *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_types) {
    e = (*v)(p->_types, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Role(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Role *p = (struct __pyx_obj_7setools_9policyrep_Role *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_types);
  p->_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_4Role_dominated_roles(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4Role_15dominated_roles_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Role[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_4Role_1expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_4Role_expand},
  {"types", (PyCFunction)__pyx_pw_7setools_9policyrep_4Role_4types, METH_NOARGS, __pyx_doc_7setools_9policyrep_4Role_3types},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_4Role_6statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_4Role_8__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_4Role_10__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Role[] = {
  {(char *)"dominated_roles", __pyx_getprop_7setools_9policyrep_4Role_dominated_roles, 0, (char *)"The roles that this role dominates.", 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Role = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Role", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Role), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Role, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A role.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Role, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Role, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Role, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Role, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Role, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleHashtabIterator __pyx_vtable_7setools_9policyrep_RoleHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_RoleHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19RoleHashtabIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_RoleHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.RoleHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over roles in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19RoleHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_RoleEbitmapIterator __pyx_vtable_7setools_9policyrep_RoleEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_RoleEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_EbitmapIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_RoleEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_RoleEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_RoleEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.RoleEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_RoleEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over a role ebitmap.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19RoleEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_RoleEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_RoleEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_SELinuxPolicy __pyx_vtable_7setools_9policyrep_SELinuxPolicy;

static PyObject *__pyx_tp_new_7setools_9policyrep_SELinuxPolicy(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_SELinuxPolicy;
  p->log = Py_None; Py_INCREF(Py_None);
  p->constraint_counts = Py_None; Py_INCREF(Py_None);
  p->terule_counts = Py_None; Py_INCREF(Py_None);
  p->type_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->category_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->sensitivity_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->path = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->handle_unknown = Py_None; Py_INCREF(Py_None);
  p->target_platform = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_7setools_9policyrep_13SELinuxPolicy_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_7setools_9policyrep_SELinuxPolicy(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *p = (struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
    __pyx_pw_7setools_9policyrep_13SELinuxPolicy_3__dealloc__(o);
    __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
    PyErr_Restore(etype, eval, etb);
  }
  if (p->__weakref__) PyObject_ClearWeakRefs(o);
  Py_CLEAR(p->log);
  Py_CLEAR(p->constraint_counts);
  Py_CLEAR(p->terule_counts);
  Py_CLEAR(p->type_alias_map);
  Py_CLEAR(p->category_alias_map);
  Py_CLEAR(p->sensitivity_alias_map);
  Py_CLEAR(p->path);
  Py_CLEAR(p->handle_unknown);
  Py_CLEAR(p->target_platform);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_SELinuxPolicy(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *p = (struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)o;
  if (p->log) {
    e = (*v)(p->log, a); if (e) return e;
  }
  if (p->constraint_counts) {
    e = (*v)(p->constraint_counts, a); if (e) return e;
  }
  if (p->terule_counts) {
    e = (*v)(p->terule_counts, a); if (e) return e;
  }
  if (p->type_alias_map) {
    e = (*v)(p->type_alias_map, a); if (e) return e;
  }
  if (p->category_alias_map) {
    e = (*v)(p->category_alias_map, a); if (e) return e;
  }
  if (p->sensitivity_alias_map) {
    e = (*v)(p->sensitivity_alias_map, a); if (e) return e;
  }
  if (p->handle_unknown) {
    e = (*v)(p->handle_unknown, a); if (e) return e;
  }
  if (p->target_platform) {
    e = (*v)(p->target_platform, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_SELinuxPolicy(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *p = (struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)o;
  tmp = ((PyObject*)p->log);
  p->log = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->constraint_counts);
  p->constraint_counts = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->terule_counts);
  p->terule_counts = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->type_alias_map);
  p->type_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->category_alias_map);
  p->category_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->sensitivity_alias_map);
  p->sensitivity_alias_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->handle_unknown);
  p->handle_unknown = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->target_platform);
  p->target_platform = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_allow_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_11allow_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_allowxperm_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16allowxperm_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_auditallow_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16auditallow_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_auditallowxperm_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_21auditallowxperm_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_boolean_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13boolean_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_category_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14category_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_class_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_11class_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_common_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_12common_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_conditional_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17conditional_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_constraint_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16constraint_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_default_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13default_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_devicetreecon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_19devicetreecon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_dontaudit_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_15dontaudit_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_dontauditxperm_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_20dontauditxperm_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_fs_use_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_12fs_use_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_genfscon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14genfscon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ibendportcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_18ibendportcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ibpkeycon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ibpkeycon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_initialsids_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17initialsids_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_iomemcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14iomemcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ioportcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_15ioportcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_level_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_11level_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mlsconstraint_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_19mlsconstraint_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mlsvalidatetrans_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_22mlsvalidatetrans_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_netifcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14netifcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_neverallow_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16neverallow_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_neverallowxperm_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_21neverallowxperm_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_nodecon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13nodecon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_pcidevicecon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_18pcidevicecon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_permission_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16permission_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_permissives_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17permissives_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_pirqcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13pirqcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_polcap_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_12polcap_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_portcon_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_13portcon_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_allow_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16role_allow_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_transition_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_21role_transition_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_range_transition_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_22range_transition_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_10role_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_attribute_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_20type_attribute_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_change_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_change_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_10type_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_member_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_17type_member_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_transition_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_21type_transition_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_typebounds_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_16typebounds_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_user_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_10user_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_validatetrans_count(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_19validatetrans_count_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_path(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_4path_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_handle_unknown(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_14handle_unknown_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_target_platform(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_15target_platform_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_version(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_7version_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mls(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13SELinuxPolicy_3mls_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_SELinuxPolicy[] = {
  {"__copy__", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_9__copy__, METH_NOARGS, 0},
  {"__deepcopy__", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_11__deepcopy__, METH_O, 0},
  {"lookup_boolean", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_13lookup_boolean, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_12lookup_boolean},
  {"lookup_category", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_15lookup_category, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_14lookup_category},
  {"lookup_class", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_17lookup_class, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_16lookup_class},
  {"lookup_common", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_19lookup_common, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_18lookup_common},
  {"lookup_initialsid", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_21lookup_initialsid, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_20lookup_initialsid},
  {"lookup_level", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_23lookup_level, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_22lookup_level},
  {"lookup_sensitivity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_25lookup_sensitivity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_24lookup_sensitivity},
  {"lookup_range", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_27lookup_range, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_26lookup_range},
  {"lookup_role", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_29lookup_role, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_28lookup_role},
  {"lookup_type", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_31lookup_type, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_30lookup_type},
  {"lookup_type_or_attr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_33lookup_type_or_attr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_32lookup_type_or_attr},
  {"lookup_typeattr", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_35lookup_typeattr, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_34lookup_typeattr},
  {"lookup_user", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_37lookup_user, METH_O, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_36lookup_user},
  {"bools", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_39bools, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_38bools},
  {"bounds", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_41bounds, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_40bounds},
  {"categories", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_43categories, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_42categories},
  {"classes", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_45classes, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_44classes},
  {"commons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_47commons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_46commons},
  {"defaults", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_49defaults, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_48defaults},
  {"levels", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_52levels, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_51levels},
  {"polcaps", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_54polcaps, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_53polcaps},
  {"roles", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_56roles, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_55roles},
  {"sensitivities", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_58sensitivities, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_57sensitivities},
  {"types", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_60types, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_59types},
  {"typeattributes", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_62typeattributes, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_61typeattributes},
  {"users", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_64users, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_63users},
  {"conditionals", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_66conditionals, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_65conditionals},
  {"mlsrules", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_68mlsrules, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_67mlsrules},
  {"rbacrules", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_70rbacrules, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_69rbacrules},
  {"terules", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_72terules, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_71terules},
  {"constraints", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_75constraints, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_74constraints},
  {"fs_uses", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_78fs_uses, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_77fs_uses},
  {"genfscons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_80genfscons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_79genfscons},
  {"ibendportcons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_82ibendportcons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_81ibendportcons},
  {"ibpkeycons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_84ibpkeycons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_83ibpkeycons},
  {"initialsids", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_86initialsids, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_85initialsids},
  {"netifcons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_88netifcons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_87netifcons},
  {"nodecons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_90nodecons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_89nodecons},
  {"portcons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_92portcons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_91portcons},
  {"devicetreecons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_94devicetreecons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_93devicetreecons},
  {"iomemcons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_96iomemcons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_95iomemcons},
  {"ioportcons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_98ioportcons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_97ioportcons},
  {"pcidevicecons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_100pcidevicecons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_99pcidevicecons},
  {"pirqcons", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_102pirqcons, METH_NOARGS, __pyx_doc_7setools_9policyrep_13SELinuxPolicy_101pirqcons},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_104__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13SELinuxPolicy_106__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_SELinuxPolicy[] = {
  {(char *)"allow_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_allow_count, 0, (char *)"The number of (type) allow rules.", 0},
  {(char *)"allowxperm_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_allowxperm_count, 0, (char *)"The number of allowxperm rules.", 0},
  {(char *)"auditallow_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_auditallow_count, 0, (char *)"The number of auditallow rules.", 0},
  {(char *)"auditallowxperm_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_auditallowxperm_count, 0, (char *)"The number of auditallowxperm rules.", 0},
  {(char *)"boolean_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_boolean_count, 0, (char *)"The number of Booleans.", 0},
  {(char *)"category_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_category_count, 0, (char *)"The number of categories.", 0},
  {(char *)"class_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_class_count, 0, (char *)"The number of object classes.", 0},
  {(char *)"common_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_common_count, 0, (char *)"The number of common permission sets.", 0},
  {(char *)"conditional_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_conditional_count, 0, (char *)"The number of conditionals.", 0},
  {(char *)"constraint_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_constraint_count, 0, (char *)"The number of standard constraints.", 0},
  {(char *)"default_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_default_count, 0, (char *)"The number of default_* rules.", 0},
  {(char *)"devicetreecon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_devicetreecon_count, 0, (char *)"The number of Xen devicetreecon statements.", 0},
  {(char *)"dontaudit_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_dontaudit_count, 0, (char *)"The number of dontaudit rules.", 0},
  {(char *)"dontauditxperm_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_dontauditxperm_count, 0, (char *)"The number of dontauditxperm rules.", 0},
  {(char *)"fs_use_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_fs_use_count, 0, (char *)"The number of fs_use_* statements.", 0},
  {(char *)"genfscon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_genfscon_count, 0, (char *)"The number of genfscon statements.", 0},
  {(char *)"ibendportcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ibendportcon_count, 0, (char *)"The number of ibendportcon statements.", 0},
  {(char *)"ibpkeycon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ibpkeycon_count, 0, (char *)"The number of ibpkeycon statements.", 0},
  {(char *)"initialsids_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_initialsids_count, 0, (char *)"The number of initial sid statements.", 0},
  {(char *)"iomemcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_iomemcon_count, 0, (char *)"The number of Xen iomemcon statements.", 0},
  {(char *)"ioportcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_ioportcon_count, 0, (char *)"The number of Xen ioportcon statements.", 0},
  {(char *)"level_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_level_count, 0, (char *)"The number of levels.", 0},
  {(char *)"mlsconstraint_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mlsconstraint_count, 0, (char *)"The number of MLS constraints.", 0},
  {(char *)"mlsvalidatetrans_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mlsvalidatetrans_count, 0, (char *)"The number of MLS validatetrans.", 0},
  {(char *)"netifcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_netifcon_count, 0, (char *)"The number of netifcon statements.", 0},
  {(char *)"neverallow_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_neverallow_count, 0, (char *)"The number of neverallow rules.", 0},
  {(char *)"neverallowxperm_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_neverallowxperm_count, 0, (char *)"The number of neverallowxperm rules.", 0},
  {(char *)"nodecon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_nodecon_count, 0, (char *)"The number of nodecon statements.", 0},
  {(char *)"pcidevicecon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_pcidevicecon_count, 0, (char *)"The number of Xen pcidevicecon statements.", 0},
  {(char *)"permission_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_permission_count, 0, (char *)"The number of permissions.", 0},
  {(char *)"permissives_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_permissives_count, 0, (char *)"The number of permissive types.", 0},
  {(char *)"pirqcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_pirqcon_count, 0, (char *)"The number of Xen pirqcon statements.", 0},
  {(char *)"polcap_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_polcap_count, 0, (char *)"The number of policy capabilities.", 0},
  {(char *)"portcon_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_portcon_count, 0, (char *)"The number of portcon statements.", 0},
  {(char *)"role_allow_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_allow_count, 0, (char *)"The number of role allow rules.", 0},
  {(char *)"role_transition_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_transition_count, 0, (char *)"The number of role_transition rules.", 0},
  {(char *)"range_transition_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_range_transition_count, 0, (char *)0, 0},
  {(char *)"role_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_role_count, 0, (char *)"The number of roles.", 0},
  {(char *)"type_attribute_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_attribute_count, 0, (char *)"The number of (type) attributes.", 0},
  {(char *)"type_change_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_change_count, 0, (char *)"The number of type_change rules.", 0},
  {(char *)"type_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_count, 0, (char *)"The number of types.", 0},
  {(char *)"type_member_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_member_count, 0, (char *)"The number of type_member rules.", 0},
  {(char *)"type_transition_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_type_transition_count, 0, (char *)"The number of type_transition rules.", 0},
  {(char *)"typebounds_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_typebounds_count, 0, (char *)"The number of typebounds rules.", 0},
  {(char *)"user_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_user_count, 0, (char *)0, 0},
  {(char *)"validatetrans_count", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_validatetrans_count, 0, (char *)"The number of validatetrans.", 0},
  {(char *)"path", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_path, 0, (char *)0, 0},
  {(char *)"handle_unknown", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_handle_unknown, 0, (char *)0, 0},
  {(char *)"target_platform", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_target_platform, 0, (char *)0, 0},
  {(char *)"version", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_version, 0, (char *)0, 0},
  {(char *)"mls", __pyx_getprop_7setools_9policyrep_13SELinuxPolicy_mls, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_SELinuxPolicy = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.SELinuxPolicy", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_SELinuxPolicy, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_7setools_9policyrep_13SELinuxPolicy_5__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_13SELinuxPolicy_7__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_SELinuxPolicy, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_SELinuxPolicy, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_SELinuxPolicy, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_SELinuxPolicy, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_SELinuxPolicy, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseTERule __pyx_vtable_7setools_9policyrep_BaseTERule;

static PyObject *__pyx_tp_new_7setools_9policyrep_BaseTERule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BaseTERule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyRule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BaseTERule *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  p->rule_string = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_BaseTERule *p = (struct __pyx_obj_7setools_9policyrep_BaseTERule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->tclass);
  Py_CLEAR(p->rule_string);
  Py_CLEAR(p->_conditional);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyRule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_BaseTERule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_BaseTERule *p = (struct __pyx_obj_7setools_9policyrep_BaseTERule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyRule(o, v, a); if (e) return e;
  if (p->tclass) {
    e = (*v)(((PyObject *)p->tclass), a); if (e) return e;
  }
  if (p->_conditional) {
    e = (*v)(((PyObject *)p->_conditional), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_BaseTERule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_BaseTERule *p = (struct __pyx_obj_7setools_9policyrep_BaseTERule *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyRule(o);
  tmp = ((PyObject*)p->tclass);
  p->tclass = ((struct __pyx_obj_7setools_9policyrep_ObjClass *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_conditional);
  p->_conditional = ((struct __pyx_obj_7setools_9policyrep_Conditional *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_filename(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_8filename_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_conditional(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_11conditional_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_conditional_block(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_17conditional_block_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_10BaseTERule_tclass(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_10BaseTERule_6tclass_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BaseTERule[] = {
  {"enabled", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_10BaseTERule_1enabled, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_10BaseTERule_enabled},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_10BaseTERule_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_10BaseTERule_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_BaseTERule[] = {
  {(char *)"filename", __pyx_getprop_7setools_9policyrep_10BaseTERule_filename, 0, (char *)"The type_transition rule's file name.", 0},
  {(char *)"conditional", __pyx_getprop_7setools_9policyrep_10BaseTERule_conditional, 0, (char *)"The rule's conditional expression.", 0},
  {(char *)"conditional_block", __pyx_getprop_7setools_9policyrep_10BaseTERule_conditional_block, 0, (char *)"\n        The conditional block of the rule (T/F)\n\n        For example, if the policy looks like this:\n\n        if ( the_conditional_expression ) {\n            If the rule is here, this property is True\n        } else {\n            If the rule is here, this property is False\n        }\n        ", 0},
  {(char *)"tclass", __pyx_getprop_7setools_9policyrep_10BaseTERule_tclass, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_BaseTERule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.BaseTERule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseTERule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Base class for TE rules.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_BaseTERule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_BaseTERule, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BaseTERule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_BaseTERule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BaseTERule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_AVRule __pyx_vtable_7setools_9policyrep_AVRule;

static PyObject *__pyx_tp_new_7setools_9policyrep_AVRule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_AVRule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseTERule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_AVRule *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_AVRule;
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_AVRule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_AVRule *p = (struct __pyx_obj_7setools_9policyrep_AVRule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->perms);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_AVRule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_AVRule *p = (struct __pyx_obj_7setools_9policyrep_AVRule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseTERule(o, v, a); if (e) return e;
  if (p->perms) {
    e = (*v)(p->perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_AVRule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_AVRule *p = (struct __pyx_obj_7setools_9policyrep_AVRule *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseTERule(o);
  tmp = ((PyObject*)p->perms);
  p->perms = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_AVRule(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_6AVRule_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_6AVRule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6AVRule_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_6AVRule_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6AVRule_5perms_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_AVRule[] = {
  {"derive_expanded", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_7setools_9policyrep_6AVRule_5derive_expanded, METH_VARARGS|METH_KEYWORDS, __pyx_doc_7setools_9policyrep_6AVRule_4derive_expanded},
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_6AVRule_7expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_6AVRule_6expand},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_6AVRule_10statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_6AVRule_12__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_6AVRule_14__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_AVRule[] = {
  {(char *)"default", __pyx_getprop_7setools_9policyrep_6AVRule_default, 0, (char *)"The rule's default type.", 0},
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_6AVRule_perms, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_AVRule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.AVRule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_AVRule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_AVRule, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_6AVRule_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An access vector type enforcement rule.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_AVRule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_AVRule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_AVRule, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_AVRule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_AVRule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_AVRule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_7setools_9policyrep_IoctlSet(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = (&PyFrozenSet_Type)->tp_new(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_IoctlSet(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  PyObject_GC_Track(o);
  (&PyFrozenSet_Type)->tp_dealloc(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_IoctlSet(PyObject *o, visitproc v, void *a) {
  int e;
  if (!(&PyFrozenSet_Type)->tp_traverse); else { e = (&PyFrozenSet_Type)->tp_traverse(o,v,a); if (e) return e; }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_IoctlSet(PyObject *o) {
  if (!(&PyFrozenSet_Type)->tp_clear); else (&PyFrozenSet_Type)->tp_clear(o);
  return 0;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_IoctlSet[] = {
  {"__format__", (PyCFunction)__pyx_pw_7setools_9policyrep_8IoctlSet_1__format__, METH_O, __pyx_doc_7setools_9policyrep_8IoctlSet___format__},
  {"ranges", (PyCFunction)__pyx_pw_7setools_9policyrep_8IoctlSet_7ranges, METH_NOARGS, __pyx_doc_7setools_9policyrep_8IoctlSet_6ranges},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8IoctlSet_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8IoctlSet_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_IoctlSet = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.IoctlSet", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IoctlSet), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_IoctlSet, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_7setools_9policyrep_8IoctlSet_5__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7setools_9policyrep_8IoctlSet_3__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    A set with overridden string functions which compresses\n    the output into ioctl ranges instead of individual elements.\n    ", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_IoctlSet, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_IoctlSet, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IoctlSet, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IoctlSet, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_AVRuleXperm __pyx_vtable_7setools_9policyrep_AVRuleXperm;

static PyObject *__pyx_tp_new_7setools_9policyrep_AVRuleXperm(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseTERule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_AVRuleXperm;
  p->perms = ((struct __pyx_obj_7setools_9policyrep_IoctlSet *)Py_None); Py_INCREF(Py_None);
  p->xperm_type = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_AVRuleXperm(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *p = (struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->perms);
  Py_CLEAR(p->xperm_type);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_AVRuleXperm(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *p = (struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseTERule(o, v, a); if (e) return e;
  if (p->perms) {
    e = (*v)(((PyObject *)p->perms), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_AVRuleXperm(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_AVRuleXperm *p = (struct __pyx_obj_7setools_9policyrep_AVRuleXperm *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseTERule(o);
  tmp = ((PyObject*)p->perms);
  p->perms = ((struct __pyx_obj_7setools_9policyrep_IoctlSet *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_AVRuleXperm(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_11AVRuleXperm_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_11AVRuleXperm_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11AVRuleXperm_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_11AVRuleXperm_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11AVRuleXperm_5perms_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_11AVRuleXperm_xperm_type(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_11AVRuleXperm_10xperm_type_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_AVRuleXperm[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_11AVRuleXperm_5expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_11AVRuleXperm_4expand},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_11AVRuleXperm_8statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_11AVRuleXperm_10__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_11AVRuleXperm_12__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_AVRuleXperm[] = {
  {(char *)"default", __pyx_getprop_7setools_9policyrep_11AVRuleXperm_default, 0, (char *)"The rule's default type.", 0},
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_11AVRuleXperm_perms, 0, (char *)0, 0},
  {(char *)"xperm_type", __pyx_getprop_7setools_9policyrep_11AVRuleXperm_xperm_type, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_AVRuleXperm = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.AVRuleXperm", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_AVRuleXperm), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_AVRuleXperm, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_11AVRuleXperm_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "An extended permission access vector type enforcement rule.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_AVRuleXperm, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_AVRuleXperm, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_AVRuleXperm, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_AVRuleXperm, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_AVRuleXperm, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_AVRuleXperm, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TERule __pyx_vtable_7setools_9policyrep_TERule;

static PyObject *__pyx_tp_new_7setools_9policyrep_TERule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TERule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseTERule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TERule *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_TERule;
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_TERule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_TERule *p = (struct __pyx_obj_7setools_9policyrep_TERule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->dft);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_TERule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_TERule *p = (struct __pyx_obj_7setools_9policyrep_TERule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseTERule(o, v, a); if (e) return e;
  if (p->dft) {
    e = (*v)(((PyObject *)p->dft), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_TERule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_TERule *p = (struct __pyx_obj_7setools_9policyrep_TERule *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseTERule(o);
  tmp = ((PyObject*)p->dft);
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_TERule(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_6TERule_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_6TERule_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6TERule_5perms_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_6TERule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_6TERule_7default_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TERule[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_6TERule_5expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_6TERule_4expand},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_6TERule_8statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_6TERule_10__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_6TERule_12__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_TERule[] = {
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_6TERule_perms, 0, (char *)"The rule's permission set.", 0},
  {(char *)"default", __pyx_getprop_7setools_9policyrep_6TERule_default, 0, (char *)"The rule's default type.", 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_TERule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TERule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TERule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_TERule, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_6TERule_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A type_* type enforcement rule.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_TERule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_TERule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_TERule, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TERule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_TERule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TERule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERule __pyx_vtable_7setools_9policyrep_FileNameTERule;

static PyObject *__pyx_tp_new_7setools_9policyrep_FileNameTERule(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseTERule(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FileNameTERule *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_FileNameTERule;
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  p->filename = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_FileNameTERule(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERule *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->dft);
  Py_CLEAR(p->filename);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_BaseTERule(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_FileNameTERule(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERule *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_BaseTERule(o, v, a); if (e) return e;
  if (p->dft) {
    e = (*v)(((PyObject *)p->dft), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_FileNameTERule(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_FileNameTERule *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERule *)o;
  __pyx_tp_clear_7setools_9policyrep_BaseTERule(o);
  tmp = ((PyObject*)p->dft);
  p->dft = ((struct __pyx_obj_7setools_9policyrep_Type *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_tp_richcompare_7setools_9policyrep_FileNameTERule(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_7__eq__(o1, o2);
    }
    case Py_NE: {
      return __pyx_pw_7setools_9policyrep_12PolicyObject_9__ne__(o1, o2);
    }
    case Py_LT: {
      return __pyx_pw_7setools_9policyrep_14FileNameTERule_3__lt__(o1, o2);
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyObject *__pyx_getprop_7setools_9policyrep_14FileNameTERule_perms(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14FileNameTERule_5perms_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14FileNameTERule_default(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14FileNameTERule_7default_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_14FileNameTERule_filename(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_14FileNameTERule_8filename_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_FileNameTERule[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_14FileNameTERule_5expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_14FileNameTERule_4expand},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_14FileNameTERule_8statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14FileNameTERule_10__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14FileNameTERule_12__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_FileNameTERule[] = {
  {(char *)"perms", __pyx_getprop_7setools_9policyrep_14FileNameTERule_perms, 0, (char *)"The rule's permission set.", 0},
  {(char *)"default", __pyx_getprop_7setools_9policyrep_14FileNameTERule_default, 0, (char *)"The rule's default type.", 0},
  {(char *)"filename", __pyx_getprop_7setools_9policyrep_14FileNameTERule_filename, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_FileNameTERule = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.FileNameTERule", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FileNameTERule), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_FileNameTERule, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  __pyx_pw_7setools_9policyrep_14FileNameTERule_1__hash__, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A type_transition type enforcement rule with filename.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_FileNameTERule, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_FileNameTERule, /*tp_clear*/
  __pyx_tp_richcompare_7setools_9policyrep_FileNameTERule, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FileNameTERule, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_FileNameTERule, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FileNameTERule, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TERuleIterator __pyx_vtable_7setools_9policyrep_TERuleIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TERuleIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_TERuleIterator;
  p->conditional = Py_None; Py_INCREF(Py_None);
  p->cond_block = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_TERuleIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_TERuleIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->conditional);
  Py_CLEAR(p->cond_block);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_TERuleIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_TERuleIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->conditional) {
    e = (*v)(p->conditional, a); if (e) return e;
  }
  if (p->cond_block) {
    e = (*v)(p->cond_block, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_TERuleIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_TERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_TERuleIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->conditional);
  p->conditional = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->cond_block);
  p->cond_block = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_TERuleIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"ruletype_count", (PyCFunction)__pyx_pw_7setools_9policyrep_14TERuleIterator_5ruletype_count, METH_NOARGS, __pyx_doc_7setools_9policyrep_14TERuleIterator_4ruletype_count},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_14TERuleIterator_7reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_14TERuleIterator_6reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14TERuleIterator_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_14TERuleIterator_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_TERuleIterator = {
  __pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TERuleIterator = {
  __pyx_pw_7setools_9policyrep_14TERuleIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TERuleIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TERuleIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TERuleIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_TERuleIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TERuleIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TERuleIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for access vector tables.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_TERuleIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_TERuleIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_14TERuleIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TERuleIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TERuleIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_ConditionalTERuleIterator __pyx_vtable_7setools_9policyrep_ConditionalTERuleIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_ConditionalTERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicyIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_ConditionalTERuleIterator;
  p->conditional = Py_None; Py_INCREF(Py_None);
  p->conditional_block = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_ConditionalTERuleIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->conditional);
  Py_CLEAR(p->conditional_block);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_ConditionalTERuleIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->conditional) {
    e = (*v)(p->conditional, a); if (e) return e;
  }
  if (p->conditional_block) {
    e = (*v)(p->conditional_block, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_ConditionalTERuleIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->conditional);
  p->conditional = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->conditional_block);
  p->conditional_block = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_ConditionalTERuleIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"ruletype_count", (PyCFunction)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_5ruletype_count, METH_NOARGS, __pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_4ruletype_count},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_7reset, METH_NOARGS, __pyx_doc_7setools_9policyrep_25ConditionalTERuleIterator_6reset},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_ConditionalTERuleIterator = {
  __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_ConditionalTERuleIterator = {
  __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_ConditionalTERuleIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.ConditionalTERuleIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_ConditionalTERuleIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_ConditionalTERuleIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_ConditionalTERuleIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_ConditionalTERuleIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Conditional TE rule iterator.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_ConditionalTERuleIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_ConditionalTERuleIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_25ConditionalTERuleIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_ConditionalTERuleIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_ConditionalTERuleIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_FileNameTERuleIterator __pyx_vtable_7setools_9policyrep_FileNameTERuleIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_FileNameTERuleIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_FileNameTERuleIterator;
  p->stypei = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_FileNameTERuleIterator(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->stypei);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_FileNameTERuleIterator(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyIterator(o, v, a); if (e) return e;
  if (p->stypei) {
    e = (*v)(((PyObject *)p->stypei), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_FileNameTERuleIterator(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *p = (struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator(o);
  tmp = ((PyObject*)p->stypei);
  p->stypei = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_FileNameTERuleIterator[] = {
  {"_next_stype", (PyCFunction)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_1_next_stype, METH_NOARGS, 0},
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_7reset, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_9__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_11__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_FileNameTERuleIterator = {
  __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_FileNameTERuleIterator = {
  __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_5__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_FileNameTERuleIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.FileNameTERuleIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_FileNameTERuleIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_FileNameTERuleIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_FileNameTERuleIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over FileNameTERules in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_FileNameTERuleIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_FileNameTERuleIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_22FileNameTERuleIterator_3__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_FileNameTERuleIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_FileNameTERuleIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_BaseType __pyx_vtable_7setools_9policyrep_BaseType;

static PyObject *__pyx_tp_new_7setools_9policyrep_BaseType(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_BaseType *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_BaseType *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_BaseType;
  return o;
}

static PyMethodDef __pyx_methods_7setools_9policyrep_BaseType[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_8BaseType_1expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_8BaseType_expand},
  {"attributes", (PyCFunction)__pyx_pw_7setools_9policyrep_8BaseType_3attributes, METH_NOARGS, __pyx_doc_7setools_9policyrep_8BaseType_2attributes},
  {"aliases", (PyCFunction)__pyx_pw_7setools_9policyrep_8BaseType_5aliases, METH_NOARGS, __pyx_doc_7setools_9policyrep_8BaseType_4aliases},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8BaseType_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8BaseType_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_BaseType = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.BaseType", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_BaseType), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Type/attribute base class.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyObject, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyObject, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_BaseType, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_BaseType, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Type __pyx_vtable_7setools_9policyrep_Type;

static PyObject *__pyx_tp_new_7setools_9policyrep_Type(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Type *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseType(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Type *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Type;
  p->ispermissive = Py_None; Py_INCREF(Py_None);
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_attrs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Type(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Type *p = (struct __pyx_obj_7setools_9policyrep_Type *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ispermissive);
  Py_CLEAR(p->_aliases);
  Py_CLEAR(p->_attrs);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Type(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Type *p = (struct __pyx_obj_7setools_9policyrep_Type *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->ispermissive) {
    e = (*v)(p->ispermissive, a); if (e) return e;
  }
  if (p->_aliases) {
    e = (*v)(p->_aliases, a); if (e) return e;
  }
  if (p->_attrs) {
    e = (*v)(p->_attrs, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Type(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Type *p = (struct __pyx_obj_7setools_9policyrep_Type *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->ispermissive);
  p->ispermissive = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_aliases);
  p->_aliases = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_attrs);
  p->_attrs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_4Type_ispermissive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4Type_12ispermissive_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Type[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_4Type_1expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_4Type_expand},
  {"attributes", (PyCFunction)__pyx_pw_7setools_9policyrep_4Type_4attributes, METH_NOARGS, __pyx_doc_7setools_9policyrep_4Type_3attributes},
  {"aliases", (PyCFunction)__pyx_pw_7setools_9policyrep_4Type_6aliases, METH_NOARGS, __pyx_doc_7setools_9policyrep_4Type_5aliases},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_4Type_8statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_4Type_10__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_4Type_12__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Type[] = {
  {(char *)"ispermissive", __pyx_getprop_7setools_9policyrep_4Type_ispermissive, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Type = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Type", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Type), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Type, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A type.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Type, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Type, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Type, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Type, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Type, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttribute __pyx_vtable_7setools_9policyrep_TypeAttribute;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttribute(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_BaseType(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeAttribute *)o);
  p->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_TypeAttribute;
  p->_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_TypeAttribute(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *p = (struct __pyx_obj_7setools_9policyrep_TypeAttribute *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->_types);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_TypeAttribute(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *p = (struct __pyx_obj_7setools_9policyrep_TypeAttribute *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->_types) {
    e = (*v)(p->_types, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_TypeAttribute(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_TypeAttribute *p = (struct __pyx_obj_7setools_9policyrep_TypeAttribute *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->_types);
  p->_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_13TypeAttribute_ispermissive(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13TypeAttribute_12ispermissive_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeAttribute[] = {
  {"expand", (PyCFunction)__pyx_pw_7setools_9policyrep_13TypeAttribute_7expand, METH_NOARGS, __pyx_doc_7setools_9policyrep_13TypeAttribute_6expand},
  {"attributes", (PyCFunction)__pyx_pw_7setools_9policyrep_13TypeAttribute_9attributes, METH_NOARGS, __pyx_doc_7setools_9policyrep_13TypeAttribute_8attributes},
  {"aliases", (PyCFunction)__pyx_pw_7setools_9policyrep_13TypeAttribute_11aliases, METH_NOARGS, __pyx_doc_7setools_9policyrep_13TypeAttribute_10aliases},
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_13TypeAttribute_13statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13TypeAttribute_15__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13TypeAttribute_17__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_TypeAttribute[] = {
  {(char *)"ispermissive", __pyx_getprop_7setools_9policyrep_13TypeAttribute_ispermissive, 0, (char *)"(T/F) the type is permissive.", 0},
  {0, 0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_TypeAttribute = {
  __pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  __pyx_pw_7setools_9policyrep_13TypeAttribute_1__contains__, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TypeAttribute = {
  __pyx_pw_7setools_9policyrep_13TypeAttribute_5__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeAttribute = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TypeAttribute", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttribute), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_TypeAttribute, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TypeAttribute, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TypeAttribute, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A type attribute.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_TypeAttribute, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_TypeAttribute, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_7setools_9policyrep_13TypeAttribute_3__iter__, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeAttribute, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_TypeAttribute, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeAttribute, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeHashtabIterator __pyx_vtable_7setools_9policyrep_TypeHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_TypeHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_5reset, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19TypeHashtabIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_TypeHashtabIterator = {
  __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TypeHashtabIterator = {
  __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TypeHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TypeHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TypeHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over types in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19TypeHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeHashtabIterator __pyx_vtable_7setools_9policyrep_TypeAttributeHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttributeHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_TypeAttributeHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeAttributeHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"reset", (PyCFunction)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_5reset, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_7__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_9__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_TypeAttributeHashtabIterator = {
  __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_TypeAttributeHashtabIterator = {
  __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_3__len__, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TypeAttributeHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttributeHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_TypeAttributeHashtabIterator, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_TypeAttributeHashtabIterator, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over type attributes in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_28TypeAttributeHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeAttributeHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeAttributeHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeEbitmapIterator __pyx_vtable_7setools_9policyrep_TypeEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_EbitmapIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_TypeEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TypeEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over a type ebitmap.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19TypeEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeAttributeEbitmapIterator __pyx_vtable_7setools_9policyrep_TypeAttributeEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeAttributeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_EbitmapIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_TypeAttributeEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeAttributeEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TypeAttributeEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeAttributeEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over a type attribute ebitmap.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_28TypeAttributeEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeAttributeEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeAttributeEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_TypeOrAttributeEbitmapIterator __pyx_vtable_7setools_9policyrep_TypeOrAttributeEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_TypeOrAttributeEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_EbitmapIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_TypeOrAttributeEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.TypeOrAttributeEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_TypeOrAttributeEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over a type or type attribute ebitmap.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_TypeOrAttributeEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_TypeOrAttributeEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_User __pyx_vtable_7setools_9policyrep_User;

static PyObject *__pyx_tp_new_7setools_9policyrep_User(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_User *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_PolicySymbol(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_User *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_User;
  p->roles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->_level = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  p->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_User(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_User *p = (struct __pyx_obj_7setools_9policyrep_User *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->roles);
  Py_CLEAR(p->_level);
  Py_CLEAR(p->_range);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_PolicySymbol(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_User(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_User *p = (struct __pyx_obj_7setools_9policyrep_User *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_PolicyObject(o, v, a); if (e) return e;
  if (p->roles) {
    e = (*v)(p->roles, a); if (e) return e;
  }
  if (p->_level) {
    e = (*v)(((PyObject *)p->_level), a); if (e) return e;
  }
  if (p->_range) {
    e = (*v)(((PyObject *)p->_range), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_User(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_User *p = (struct __pyx_obj_7setools_9policyrep_User *)o;
  __pyx_tp_clear_7setools_9policyrep_PolicyObject(o);
  tmp = ((PyObject*)p->roles);
  p->roles = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_level);
  p->_level = ((struct __pyx_obj_7setools_9policyrep_Level *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_range);
  p->_range = ((struct __pyx_obj_7setools_9policyrep_Range *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_4User_mls_level(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4User_9mls_level_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_4User_mls_range(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4User_9mls_range_1__get__(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_4User_roles(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_4User_5roles_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_User[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_4User_1statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_4User_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_4User_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_User[] = {
  {(char *)"mls_level", __pyx_getprop_7setools_9policyrep_4User_mls_level, 0, (char *)"The user's default MLS level.", 0},
  {(char *)"mls_range", __pyx_getprop_7setools_9policyrep_4User_mls_range, 0, (char *)"The user's MLS range.", 0},
  {(char *)"roles", __pyx_getprop_7setools_9policyrep_4User_roles, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_User = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.User", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_User), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_User, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicySymbol_1__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A user.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_User, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_User, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_User, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_User, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_User, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_UserHashtabIterator __pyx_vtable_7setools_9policyrep_UserHashtabIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_UserHashtabIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_HashtabIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_UserHashtabIterator *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_HashtabIterator*)__pyx_vtabptr_7setools_9policyrep_UserHashtabIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_UserHashtabIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19UserHashtabIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19UserHashtabIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_UserHashtabIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.UserHashtabIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_UserHashtabIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over users in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19UserHashtabIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_UserHashtabIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_UserHashtabIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_UserEbitmapIterator __pyx_vtable_7setools_9policyrep_UserEbitmapIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_UserEbitmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_EbitmapIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_UserEbitmapIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_UserEbitmapIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_19UserEbitmapIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_UserEbitmapIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.UserEbitmapIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_UserEbitmapIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterate over a user ebitmap.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_19UserEbitmapIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_UserEbitmapIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_UserEbitmapIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Devicetreecon __pyx_vtable_7setools_9policyrep_Devicetreecon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Devicetreecon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Devicetreecon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Devicetreecon;
  p->path = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Devicetreecon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Devicetreecon *p = (struct __pyx_obj_7setools_9policyrep_Devicetreecon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->path);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static PyObject *__pyx_getprop_7setools_9policyrep_13Devicetreecon_path(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_13Devicetreecon_4path_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Devicetreecon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_13Devicetreecon_1statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13Devicetreecon_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_13Devicetreecon_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Devicetreecon[] = {
  {(char *)"path", __pyx_getprop_7setools_9policyrep_13Devicetreecon_path, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Devicetreecon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Devicetreecon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Devicetreecon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Devicetreecon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A devicetreecon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ocontext, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ocontext, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Devicetreecon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Devicetreecon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Devicetreecon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Iomemcon __pyx_vtable_7setools_9policyrep_Iomemcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Iomemcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Iomemcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Iomemcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Iomemcon;
  p->addr = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Iomemcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Iomemcon *p = (struct __pyx_obj_7setools_9policyrep_Iomemcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->addr);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Iomemcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Iomemcon *p = (struct __pyx_obj_7setools_9policyrep_Iomemcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->addr) {
    e = (*v)(p->addr, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Iomemcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Iomemcon *p = (struct __pyx_obj_7setools_9policyrep_Iomemcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->addr);
  p->addr = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_8Iomemcon_addr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_8Iomemcon_4addr_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Iomemcon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_8Iomemcon_1statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Iomemcon_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_8Iomemcon_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Iomemcon[] = {
  {(char *)"addr", __pyx_getprop_7setools_9policyrep_8Iomemcon_addr, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Iomemcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Iomemcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Iomemcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Iomemcon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A iomemcon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Iomemcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Iomemcon, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Iomemcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Iomemcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Iomemcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Ioportcon __pyx_vtable_7setools_9policyrep_Ioportcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Ioportcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Ioportcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Ioportcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Ioportcon;
  p->ports = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Ioportcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Ioportcon *p = (struct __pyx_obj_7setools_9policyrep_Ioportcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->ports);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Ioportcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Ioportcon *p = (struct __pyx_obj_7setools_9policyrep_Ioportcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->ports) {
    e = (*v)(p->ports, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Ioportcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Ioportcon *p = (struct __pyx_obj_7setools_9policyrep_Ioportcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->ports);
  p->ports = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_9Ioportcon_ports(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_9Ioportcon_5ports_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Ioportcon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_9Ioportcon_1statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_9Ioportcon_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_9Ioportcon_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Ioportcon[] = {
  {(char *)"ports", __pyx_getprop_7setools_9policyrep_9Ioportcon_ports, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Ioportcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Ioportcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Ioportcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Ioportcon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A ioportcon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Ioportcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Ioportcon, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Ioportcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Ioportcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Ioportcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Pcidevicecon __pyx_vtable_7setools_9policyrep_Pcidevicecon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Pcidevicecon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Pcidevicecon;
  p->device = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Pcidevicecon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *p = (struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->device);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Pcidevicecon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *p = (struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->device) {
    e = (*v)(p->device, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Pcidevicecon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Pcidevicecon *p = (struct __pyx_obj_7setools_9policyrep_Pcidevicecon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->device);
  p->device = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_12Pcidevicecon_device(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_12Pcidevicecon_6device_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Pcidevicecon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_12Pcidevicecon_1statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12Pcidevicecon_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_12Pcidevicecon_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Pcidevicecon[] = {
  {(char *)"device", __pyx_getprop_7setools_9policyrep_12Pcidevicecon_device, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Pcidevicecon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Pcidevicecon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Pcidevicecon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Pcidevicecon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A pcidevicecon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Pcidevicecon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Pcidevicecon, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Pcidevicecon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Pcidevicecon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Pcidevicecon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_Pirqcon __pyx_vtable_7setools_9policyrep_Pirqcon;

static PyObject *__pyx_tp_new_7setools_9policyrep_Pirqcon(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_Pirqcon *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_Ocontext(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_Pirqcon *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7setools_9policyrep_PolicyObject*)__pyx_vtabptr_7setools_9policyrep_Pirqcon;
  p->irq = Py_None; Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep_Pirqcon(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep_Pirqcon *p = (struct __pyx_obj_7setools_9policyrep_Pirqcon *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->irq);
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_7setools_9policyrep_Ocontext(o);
}

static int __pyx_tp_traverse_7setools_9policyrep_Pirqcon(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep_Pirqcon *p = (struct __pyx_obj_7setools_9policyrep_Pirqcon *)o;
  e = __pyx_tp_traverse_7setools_9policyrep_Ocontext(o, v, a); if (e) return e;
  if (p->irq) {
    e = (*v)(p->irq, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep_Pirqcon(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep_Pirqcon *p = (struct __pyx_obj_7setools_9policyrep_Pirqcon *)o;
  __pyx_tp_clear_7setools_9policyrep_Ocontext(o);
  tmp = ((PyObject*)p->irq);
  p->irq = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_7setools_9policyrep_7Pirqcon_irq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7setools_9policyrep_7Pirqcon_3irq_1__get__(o);
}

static PyMethodDef __pyx_methods_7setools_9policyrep_Pirqcon[] = {
  {"statement", (PyCFunction)__pyx_pw_7setools_9policyrep_7Pirqcon_1statement, METH_NOARGS, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Pirqcon_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_7Pirqcon_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7setools_9policyrep_Pirqcon[] = {
  {(char *)"irq", __pyx_getprop_7setools_9policyrep_7Pirqcon_irq, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_Pirqcon = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.Pirqcon", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_Pirqcon), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_Pirqcon, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_15__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_12PolicyObject_13__str__, /*tp_str*/
  #else
  0, /*tp_str*/
  #endif
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "A pirqcon statement.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_Pirqcon, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_Pirqcon, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_Pirqcon, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7setools_9policyrep_Pirqcon, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_Pirqcon, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_DevicetreeconIterator __pyx_vtable_7setools_9policyrep_DevicetreeconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_DevicetreeconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_DevicetreeconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_DevicetreeconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_21DevicetreeconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_DevicetreeconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.DevicetreeconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_DevicetreeconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for devicetreecon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_21DevicetreeconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_DevicetreeconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_DevicetreeconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_IomemconIterator __pyx_vtable_7setools_9policyrep_IomemconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_IomemconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_IomemconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_IomemconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_IomemconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_IomemconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16IomemconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_16IomemconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_IomemconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.IomemconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IomemconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for iomemcon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_16IomemconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IomemconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IomemconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_IoportconIterator __pyx_vtable_7setools_9policyrep_IoportconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_IoportconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_IoportconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_IoportconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_IoportconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_IoportconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_17IoportconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_17IoportconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_IoportconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.IoportconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_IoportconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for ioportcon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_17IoportconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_IoportconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_IoportconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_PcideviceconIterator __pyx_vtable_7setools_9policyrep_PcideviceconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PcideviceconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PcideviceconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PcideviceconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_PcideviceconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_20PcideviceconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_20PcideviceconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_PcideviceconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PcideviceconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PcideviceconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for pcidevicecon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_20PcideviceconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PcideviceconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PcideviceconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_7setools_9policyrep_PirqconIterator __pyx_vtable_7setools_9policyrep_PirqconIterator;

static PyObject *__pyx_tp_new_7setools_9policyrep_PirqconIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7setools_9policyrep_PirqconIterator *p;
  PyObject *o = __pyx_tp_new_7setools_9policyrep_OcontextIterator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7setools_9policyrep_PirqconIterator *)o);
  p->__pyx_vtab = __pyx_vtabptr_7setools_9policyrep_PirqconIterator;
  return o;
}

static PyObject *__pyx_specialmethod___pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) {return __pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__(self);}

static PyMethodDef __pyx_methods_7setools_9policyrep_PirqconIterator[] = {
  {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__, METH_NOARGS|METH_COEXIST, 0},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15PirqconIterator_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_7setools_9policyrep_15PirqconIterator_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_7setools_9policyrep_PirqconIterator = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.PirqconIterator", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep_PirqconIterator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep_PolicyIterator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "Iterator for pirqcon statements in the policy.", /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep_PolicyIterator, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep_PolicyIterator, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  #if CYTHON_COMPILING_IN_PYPY
  __pyx_pw_7setools_9policyrep_14PolicyIterator_1__iter__, /*tp_iter*/
  #else
  0, /*tp_iter*/
  #endif
  __pyx_pw_7setools_9policyrep_15PirqconIterator_1__next__, /*tp_iternext*/
  __pyx_methods_7setools_9policyrep_PirqconIterator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep_PirqconIterator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *__pyx_freelist_7setools_9policyrep___pyx_scope_struct__truth_table[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct__truth_table = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct__truth_table(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct__truth_table > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct__truth_table[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct__truth_table];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct__truth_table(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct__truth_table < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct__truth_table[__pyx_freecount_7setools_9policyrep___pyx_scope_struct__truth_table++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct__truth_table(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct__truth_table(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_Conditional *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct__truth_table = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct__truth_table", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct__truth_table), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct__truth_table, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct__truth_table, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct__truth_table, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct__truth_table, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_1_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_1_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_1_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_b);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_1_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_1_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_1_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_b) {
    e = (*v)(p->__pyx_v_b, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_1_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_1_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_1_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_1_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_1_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_2___str__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_2___str__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2___str__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_2___str__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_2___str__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_2___str__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_2___str__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_item);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_2___str__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_2___str__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_2___str__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_2___str__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *)o;
  if (p->__pyx_v_item) {
    e = (*v)(p->__pyx_v_item, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_2___str__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__ *)o;
  tmp = ((PyObject*)p->__pyx_v_item);
  p->__pyx_v_item = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_2___str__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_2___str__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_2___str__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_2___str__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_2___str__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_2___str__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_2___str__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_3_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_3_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_3_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_j);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_3_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_3_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_3_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_j) {
    e = (*v)(p->__pyx_v_j, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_3_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_3_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_3_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_3_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_3_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_4_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_4_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_4_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_j);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_4_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_4_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_4_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_j) {
    e = (*v)(p->__pyx_v_j, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_4_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_4_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_4_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_4_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_4_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_5_factory[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_factory = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_factory(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_factory > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_5_factory[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_factory];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_5_factory(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_policy);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_factory < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_5_factory[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_5_factory++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_5_factory(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *)o;
  if (p->__pyx_v_policy) {
    e = (*v)(((PyObject *)p->__pyx_v_policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_5_factory(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory *)o;
  tmp = ((PyObject*)p->__pyx_v_policy);
  p->__pyx_v_policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_5_factory = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_5_factory", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_5_factory), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_5_factory, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_5_factory, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_5_factory, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_5_factory, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_6_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_6_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_6_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_6_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_6_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_6_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_6_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_6_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_6_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_6_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_6_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_7_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_7_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_7_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_7_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_7_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_7_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_7_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_7_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_7_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_7_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_7_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_8_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_8_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_8_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_8_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_8_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_8_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_8_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_8_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_8_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_8_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_8_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_8_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_9_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_9_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_9_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_u);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_9_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_9_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_9_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_u) {
    e = (*v)(p->__pyx_v_u, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_9_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_9_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_9_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_9_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_9_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_9_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_10_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_10_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_10_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_10_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_10_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_10_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand *)o;
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_10_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_10_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_10_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_10_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_10_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_11_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_11_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_11_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_11_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_11_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_11_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand *)o;
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_11_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_11_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_11_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_11_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_11_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_12_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_12_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_12_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_12_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_12_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_12_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand *)o;
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_12_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_12_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_12_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_12_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_12_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_12_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_13_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_13_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_13_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_13_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_13_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_13_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_13_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_13_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_13_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_13_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_13_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_13_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_14_statement[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_statement = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_statement(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_statement > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_14_statement[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_statement];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_14_statement(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_statement < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_14_statement[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_14_statement++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_14_statement(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_14_statement(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_Role *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_14_statement = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_14_statement", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_14_statement), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_14_statement, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_14_statement, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_14_statement, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_14_statement, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_15_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_15_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_15_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_t);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_15_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_15_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_15_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_15_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_15_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_15_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_15_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_15_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_16___get__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_16___get__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_16___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_16___get__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_16___get__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_16___get__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_16___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_16___get__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_16___get__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_16___get__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_16___get__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__ *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_16___get__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_16___get__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_16___get__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_16___get__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_16___get__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_16___get__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_16___get__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_17_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_17_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_17_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_17_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_17_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_17_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__) {
    e = (*v)(p->__pyx_v__, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_17_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_17_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_17_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_17_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_17_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_18___get__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_18___get__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_18___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_18___get__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_18___get__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_18___get__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_18___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_18___get__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_18___get__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_18___get__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_18___get__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__ *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_18___get__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_18___get__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_18___get__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_18___get__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_18___get__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_18___get__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_18___get__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_19_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_19_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_19_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_d);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_19_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_19_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_19_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_d) {
    e = (*v)(p->__pyx_v_d, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_19_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_19_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_19_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_19_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_19_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_20___get__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_20___get__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_20___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_20___get__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_20___get__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_20___get__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_20___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_20___get__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_20___get__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_20___get__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_20___get__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__ *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_20___get__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_20___get__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_20___get__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_20___get__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_20___get__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_20___get__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_20___get__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_21_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_21_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_21_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_21_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_21_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_21_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__) {
    e = (*v)(p->__pyx_v__, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_21_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_21_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_21_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_21_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_21_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_21_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_22___get__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_22___get__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_22___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_22___get__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_22___get__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_22___get__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_22___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_22___get__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_22___get__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_22___get__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_22___get__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__ *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_22___get__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_22___get__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_22___get__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_22___get__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_22___get__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_22___get__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_22___get__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_23_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_23_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_23_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_n);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_23_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_23_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_23_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_n) {
    e = (*v)(p->__pyx_v_n, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_23_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_23_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_23_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_23_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_23_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_24___get__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_24___get__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_24___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_24___get__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_24___get__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_24___get__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_24___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_24___get__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_24___get__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_24___get__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_24___get__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__ *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_24___get__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_24___get__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_24___get__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_24___get__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_24___get__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_24___get__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_24___get__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_25_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_25_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_25_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_c);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_25_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_25_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_25_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_c) {
    e = (*v)(p->__pyx_v_c, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_25_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_25_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_25_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_25_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_25_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_26___get__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_26___get__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_26___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_26___get__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_26___get__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_26___get__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_26___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_26___get__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_26___get__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_26___get__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_26___get__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__ *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_26___get__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_26___get__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_26___get__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_26___get__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_26___get__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_26___get__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_26___get__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_27_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_27_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_27_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_27_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_27_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_27_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_27_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_27_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_27_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_27_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_27_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_28___get__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_28___get__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28___get__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_28___get__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_28___get__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_28___get__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_28___get__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_28___get__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_28___get__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_28___get__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_28___get__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_28___get__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__ *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_28___get__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_28___get__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_28___get__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_28___get__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_28___get__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_28___get__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_28___get__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_29_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_29_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_29_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_29_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_29_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_29_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_29_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_29_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_29_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_29_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_29_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_29_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_30_defaults[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_defaults = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_defaults(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_defaults > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_30_defaults[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_defaults];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_30_defaults(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_cls);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_defaults < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_30_defaults[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_30_defaults++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_30_defaults(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults *)o;
  if (p->__pyx_v_cls) {
    e = (*v)(p->__pyx_v_cls, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_30_defaults = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_30_defaults", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_30_defaults), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_30_defaults, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_30_defaults, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_30_defaults, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_31_terules[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_terules = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_terules(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_terules > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_31_terules[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_terules];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_31_terules(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_c);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_terules < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_31_terules[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_31_terules++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_31_terules(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules *)o;
  if (p->__pyx_v_c) {
    e = (*v)(p->__pyx_v_c, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_31_terules = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_31_terules", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_31_terules), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_31_terules, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_31_terules, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_31_terules, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_32_constraints[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_constraints = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_constraints(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_constraints > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_32_constraints[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_constraints];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_32_constraints(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_c);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_constraints < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_32_constraints[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_32_constraints++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_32_constraints(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints *)o;
  if (p->__pyx_v_c) {
    e = (*v)(p->__pyx_v_c, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_32_constraints = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_32_constraints", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_32_constraints), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_32_constraints, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_32_constraints, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_32_constraints, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_33__cache_constraint_counts", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_34_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_34_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_34_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_34_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_34_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_34_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_34_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_34_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_34_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_34_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_34_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_35_factory[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_factory = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_factory(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_factory > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_35_factory[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_factory];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_35_factory(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_policy);
  Py_CLEAR(p->__pyx_v_r);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_factory < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_35_factory[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_35_factory++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_35_factory(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *)o;
  if (p->__pyx_v_policy) {
    e = (*v)(((PyObject *)p->__pyx_v_policy), a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_35_factory(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory *)o;
  tmp = ((PyObject*)p->__pyx_v_policy);
  p->__pyx_v_policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_r);
  p->__pyx_v_r = ((struct __pyx_obj_7setools_9policyrep_AVRule *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_35_factory = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_35_factory", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_35_factory), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_35_factory, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_35_factory, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_35_factory, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_35_factory, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_36_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_36_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_36_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_36_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_36_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_36_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_36_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_p);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_36_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_36_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_36_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_36_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_p) {
    e = (*v)(p->__pyx_v_p, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_36_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_36_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_36_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_36_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_36_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_36_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_37_derive_expanded[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_37_derive_expanded = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_37_derive_expanded(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_37_derive_expanded > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_37_derive_expanded[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_37_derive_expanded];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_37_derive_expanded(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_perms);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_37_derive_expanded < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_37_derive_expanded[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_37_derive_expanded++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_37_derive_expanded(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *)o;
  if (p->__pyx_v_perms) {
    e = (*v)(p->__pyx_v_perms, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_37_derive_expanded(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded *)o;
  tmp = ((PyObject*)p->__pyx_v_perms);
  p->__pyx_v_perms = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_37_derive_expanded = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_37_derive_expanded", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_37_derive_expanded), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_37_derive_expanded, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_37_derive_expanded, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_37_derive_expanded, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_37_derive_expanded, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_38_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_38_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_38_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_38_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_38_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_38_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_38_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_p);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_38_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_38_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_38_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_38_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_p) {
    e = (*v)(p->__pyx_v_p, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_38_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_38_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_38_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_38_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_38_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_38_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_39_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_39_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_39_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_39_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_39_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_39_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_39_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_39_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_39_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_39_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_39_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand *)o;
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_39_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_39_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_39_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_39_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_39_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_39_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_40_ranges[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_40_ranges = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_40_ranges(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_40_ranges > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_40_ranges[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_40_ranges];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_40_ranges(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_40_ranges < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_40_ranges[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_40_ranges++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_40_ranges(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_40_ranges(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_IoctlSet *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_40_ranges = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_40_ranges", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_40_ranges), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_40_ranges, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_40_ranges, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_40_ranges, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_40_ranges, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_41_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_41_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_41_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_41_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_41_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_41_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_41_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v__a);
  Py_CLEAR(p->__pyx_v__b);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_41_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_41_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_41_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_41_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v__a) {
    e = (*v)(p->__pyx_v__a, a); if (e) return e;
  }
  if (p->__pyx_v__b) {
    e = (*v)(p->__pyx_v__b, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_41_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_41_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_41_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_41_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_41_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_41_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_42_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_42_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_42_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_42_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_42_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_42_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_42_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_42_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_42_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_42_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_42_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand *)o;
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_42_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_42_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_42_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_42_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_42_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_42_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_43_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_43_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_43_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_43_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_43_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_43_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_43_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_43_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_43_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_43_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_43_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand *)o;
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_43_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_43_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_43_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_43_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_43_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_43_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_44_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_44_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_44_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_44_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_44_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_44_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_44_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_v_s);
  Py_CLEAR(p->__pyx_v_self);
  Py_CLEAR(p->__pyx_v_t);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_44_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_44_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_44_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_44_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand *)o;
  if (p->__pyx_v_r) {
    e = (*v)(((PyObject *)p->__pyx_v_r), a); if (e) return e;
  }
  if (p->__pyx_v_s) {
    e = (*v)(p->__pyx_v_s, a); if (e) return e;
  }
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  if (p->__pyx_v_t) {
    e = (*v)(p->__pyx_v_t, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_44_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_44_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_44_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_44_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_44_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_44_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_45___len__[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_45___len__ = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_45___len__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_45___len__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_45___len__[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_45___len__];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_45___len__(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_45___len__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_45___len__[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_45___len__++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_45___len__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_45___len__(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__ *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_FileNameTERuleIterator *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_45___len__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_45___len__", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_45___len__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_45___len__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_45___len__, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_45___len__, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_45___len__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_46_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_46_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_46_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_46_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_46_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_46_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_46_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_46_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_46_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_46_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_46_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_46_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_46_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_46_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_46_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_46_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_46_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_47_expand[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_47_expand = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_47_expand(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_47_expand > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_47_expand[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_47_expand];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_47_expand(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_47_expand < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_47_expand[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_47_expand++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_47_expand(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_47_expand = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_47_expand", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_47_expand), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_47_expand, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_47_expand, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_47_expand, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_48_factory[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_48_factory = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_48_factory(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_48_factory > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_48_factory[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_48_factory];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_48_factory(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_policy);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_48_factory < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_48_factory[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_48_factory++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_48_factory(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *)o;
  if (p->__pyx_v_policy) {
    e = (*v)(((PyObject *)p->__pyx_v_policy), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_48_factory(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory *)o;
  tmp = ((PyObject*)p->__pyx_v_policy);
  p->__pyx_v_policy = ((struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_48_factory = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_48_factory", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_48_factory), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_48_factory, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_48_factory, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_48_factory, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_48_factory, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_49_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_49_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_49_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_49_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_49_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_49_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_49_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_r);
  Py_CLEAR(p->__pyx_t_0);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_49_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_49_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_49_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_49_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  if (p->__pyx_t_0) {
    e = (*v)(p->__pyx_t_0, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_49_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_49_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_49_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_49_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_49_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_49_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_50_statement[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_50_statement = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_50_statement(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_50_statement > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_50_statement[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_50_statement];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_50_statement(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_50_statement < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_50_statement[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_50_statement++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_50_statement(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_50_statement(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement *)o;
  tmp = ((PyObject*)p->__pyx_v_self);
  p->__pyx_v_self = ((struct __pyx_obj_7setools_9policyrep_User *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_50_statement = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_50_statement", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_50_statement), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_50_statement, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_50_statement, /*tp_traverse*/
  __pyx_tp_clear_7setools_9policyrep___pyx_scope_struct_50_statement, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_50_statement, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *__pyx_freelist_7setools_9policyrep___pyx_scope_struct_51_genexpr[8];
static int __pyx_freecount_7setools_9policyrep___pyx_scope_struct_51_genexpr = 0;

static PyObject *__pyx_tp_new_7setools_9policyrep___pyx_scope_struct_51_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_51_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr)))) {
    o = (PyObject*)__pyx_freelist_7setools_9policyrep___pyx_scope_struct_51_genexpr[--__pyx_freecount_7setools_9policyrep___pyx_scope_struct_51_genexpr];
    memset(o, 0, sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_51_genexpr(PyObject *o) {
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_outer_scope);
  Py_CLEAR(p->__pyx_v_r);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_7setools_9policyrep___pyx_scope_struct_51_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr)))) {
    __pyx_freelist_7setools_9policyrep___pyx_scope_struct_51_genexpr[__pyx_freecount_7setools_9policyrep___pyx_scope_struct_51_genexpr++] = ((struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_51_genexpr(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *p = (struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr *)o;
  if (p->__pyx_outer_scope) {
    e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e;
  }
  if (p->__pyx_v_r) {
    e = (*v)(p->__pyx_v_r, a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_7setools_9policyrep___pyx_scope_struct_51_genexpr = {
  PyVarObject_HEAD_INIT(0, 0)
  "setools.policyrep.__pyx_scope_struct_51_genexpr", /*tp_name*/
  sizeof(struct __pyx_obj_7setools_9policyrep___pyx_scope_struct_51_genexpr), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7setools_9policyrep___pyx_scope_struct_51_genexpr, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7setools_9policyrep___pyx_scope_struct_51_genexpr, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7setools_9policyrep___pyx_scope_struct_51_genexpr, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_policyrep(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_policyrep},
  {0, NULL}
};
#endif

static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    "policyrep",
    0, /* m_doc */
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    0, /* m_size */
  #else
    -1, /* m_size */
  #endif
    __pyx_methods /* m_methods */,
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    __pyx_moduledef_slots, /* m_slots */
  #else
    NULL, /* m_reload */
  #endif
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
  {&__pyx_kp_u_0, __pyx_k_0, sizeof(__pyx_k_0), 0, 1, 0, 0},
  {&__pyx_kp_u_04x, __pyx_k_04x, sizeof(__pyx_k_04x), 0, 1, 0, 0},
  {&__pyx_kp_u_0_06x, __pyx_k_0_06x, sizeof(__pyx_k_0_06x), 0, 1, 0, 0},
  {&__pyx_kp_u_0_06x_1_06x, __pyx_k_0_06x_1_06x, sizeof(__pyx_k_0_06x_1_06x), 0, 1, 0, 0},
  {&__pyx_kp_u_0_1, __pyx_k_0_1, sizeof(__pyx_k_0_1), 0, 1, 0, 0},
  {&__pyx_kp_u_0_1_2, __pyx_k_0_1_2, sizeof(__pyx_k_0_1_2), 0, 1, 0, 0},
  {&__pyx_kp_u_0_2, __pyx_k_0_2, sizeof(__pyx_k_0_2), 0, 1, 0, 0},
  {&__pyx_kp_u_0_3, __pyx_k_0_3, sizeof(__pyx_k_0_3), 0, 1, 0, 0},
  {&__pyx_kp_u_0_4, __pyx_k_0_4, sizeof(__pyx_k_0_4), 0, 1, 0, 0},
  {&__pyx_kp_u_0_5, __pyx_k_0_5, sizeof(__pyx_k_0_5), 0, 1, 0, 0},
  {&__pyx_kp_u_0_6, __pyx_k_0_6, sizeof(__pyx_k_0_6), 0, 1, 0, 0},
  {&__pyx_kp_u_0_7, __pyx_k_0_7, sizeof(__pyx_k_0_7), 0, 1, 0, 0},
  {&__pyx_kp_u_0_8, __pyx_k_0_8, sizeof(__pyx_k_0_8), 0, 1, 0, 0},
  {&__pyx_kp_u_0___class_____name___1_0, __pyx_k_0___class_____name___1_0, sizeof(__pyx_k_0___class_____name___1_0), 0, 1, 0, 0},
  {&__pyx_kp_u_0_conditional_0_conditional_blo, __pyx_k_0_conditional_0_conditional_blo, sizeof(__pyx_k_0_conditional_0_conditional_blo), 0, 1, 0, 0},
  {&__pyx_kp_u_0_does_not_inherit_a_common, __pyx_k_0_does_not_inherit_a_common, sizeof(__pyx_k_0_does_not_inherit_a_common), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_an_attribute_thus_cannot_b, __pyx_k_0_is_an_attribute_thus_cannot_b, sizeof(__pyx_k_0_is_an_attribute_thus_cannot_b), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_an_attribute_thus_does_not, __pyx_k_0_is_an_attribute_thus_does_not, sizeof(__pyx_k_0_is_an_attribute_thus_does_not), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_an_attribute_thus_does_not_2, __pyx_k_0_is_an_attribute_thus_does_not_2, sizeof(__pyx_k_0_is_an_attribute_thus_does_not_2), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_1_and_is_not_in_1, __pyx_k_0_is_not_1_and_is_not_in_1, sizeof(__pyx_k_0_is_not_1_and_is_not_in_1), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_type, __pyx_k_0_is_not_a_type, sizeof(__pyx_k_0_is_not_a_type), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_Boolean, __pyx_k_0_is_not_a_valid_Boolean, sizeof(__pyx_k_0_is_not_a_valid_Boolean), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_category, __pyx_k_0_is_not_a_valid_category, sizeof(__pyx_k_0_is_not_a_valid_category), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_class, __pyx_k_0_is_not_a_valid_class, sizeof(__pyx_k_0_is_not_a_valid_class), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_common, __pyx_k_0_is_not_a_valid_common, sizeof(__pyx_k_0_is_not_a_valid_common), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_initial_SID, __pyx_k_0_is_not_a_valid_initial_SID, sizeof(__pyx_k_0_is_not_a_valid_initial_SID), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_level_1_is_not, __pyx_k_0_is_not_a_valid_level_1_is_not, sizeof(__pyx_k_0_is_not_a_valid_level_1_is_not), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_level_1_is_not_2, __pyx_k_0_is_not_a_valid_level_1_is_not_2, sizeof(__pyx_k_0_is_not_a_valid_level_1_is_not_2), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_level_1_is_not_3, __pyx_k_0_is_not_a_valid_level_1_is_not_3, sizeof(__pyx_k_0_is_not_a_valid_level_1_is_not_3), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_level_level_pa, __pyx_k_0_is_not_a_valid_level_level_pa, sizeof(__pyx_k_0_is_not_a_valid_level_level_pa), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_level_one_or_m, __pyx_k_0_is_not_a_valid_level_one_or_m, sizeof(__pyx_k_0_is_not_a_valid_level_one_or_m), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_range_1, __pyx_k_0_is_not_a_valid_range_1, sizeof(__pyx_k_0_is_not_a_valid_range_1), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_range_1_low_is, __pyx_k_0_is_not_a_valid_range_1_low_is, sizeof(__pyx_k_0_is_not_a_valid_range_1_low_is), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_role, __pyx_k_0_is_not_a_valid_role, sizeof(__pyx_k_0_is_not_a_valid_role), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_sensitivity, __pyx_k_0_is_not_a_valid_sensitivity, sizeof(__pyx_k_0_is_not_a_valid_sensitivity), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_type, __pyx_k_0_is_not_a_valid_type, sizeof(__pyx_k_0_is_not_a_valid_type), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_type_attribute, __pyx_k_0_is_not_a_valid_type_attribute, sizeof(__pyx_k_0_is_not_a_valid_type_attribute), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_a_valid_user, __pyx_k_0_is_not_a_valid_user, sizeof(__pyx_k_0_is_not_a_valid_user), 0, 1, 0, 0},
  {&__pyx_kp_u_0_is_not_an_attribute, __pyx_k_0_is_not_an_attribute, sizeof(__pyx_k_0_is_not_an_attribute), 0, 1, 0, 0},
  {&__pyx_kp_u_0_low_0_high, __pyx_k_0_low_0_high, sizeof(__pyx_k_0_low_0_high), 0, 1, 0, 0},
  {&__pyx_kp_u_0_rule_is_already_expanded, __pyx_k_0_rule_is_already_expanded, sizeof(__pyx_k_0_rule_is_already_expanded), 0, 1, 0, 0},
  {&__pyx_kp_u_0_rules_do_not_have_a_default_t, __pyx_k_0_rules_do_not_have_a_default_t, sizeof(__pyx_k_0_rules_do_not_have_a_default_t), 0, 1, 0, 0},
  {&__pyx_kp_u_0_rules_do_not_have_a_permissio, __pyx_k_0_rules_do_not_have_a_permissio, sizeof(__pyx_k_0_rules_do_not_have_a_permissio), 0, 1, 0, 0},
  {&__pyx_kp_u_0_rules_do_not_have_file_names, __pyx_k_0_rules_do_not_have_file_names, sizeof(__pyx_k_0_rules_do_not_have_file_names), 0, 1, 0, 0},
  {&__pyx_kp_u_0_rules_do_not_have_permissions, __pyx_k_0_rules_do_not_have_permissions, sizeof(__pyx_k_0_rules_do_not_have_permissions), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_child, __pyx_k_0_ruletype_0_child, sizeof(__pyx_k_0_ruletype_0_child), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_fs, __pyx_k_0_ruletype_0_fs, sizeof(__pyx_k_0_ruletype_0_fs), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_fs_0_context, __pyx_k_0_ruletype_0_fs_0_context, sizeof(__pyx_k_0_ruletype_0_fs_0_context), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_parent_0_child, __pyx_k_0_ruletype_0_parent_0_child, sizeof(__pyx_k_0_ruletype_0_parent_0_child), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target, __pyx_k_0_ruletype_0_source_0_target, sizeof(__pyx_k_0_ruletype_0_source_0_target), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0, __pyx_k_0_ruletype_0_source_0_target_0, sizeof(__pyx_k_0_ruletype_0_source_0_target_0), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0_2, __pyx_k_0_ruletype_0_source_0_target_0_2, sizeof(__pyx_k_0_ruletype_0_source_0_target_0_2), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0_3, __pyx_k_0_ruletype_0_source_0_target_0_3, sizeof(__pyx_k_0_ruletype_0_source_0_target_0_3), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0_4, __pyx_k_0_ruletype_0_source_0_target_0_4, sizeof(__pyx_k_0_ruletype_0_source_0_target_0_4), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0_5, __pyx_k_0_ruletype_0_source_0_target_0_5, sizeof(__pyx_k_0_ruletype_0_source_0_target_0_5), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0_6, __pyx_k_0_ruletype_0_source_0_target_0_6, sizeof(__pyx_k_0_ruletype_0_source_0_target_0_6), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0_7, __pyx_k_0_ruletype_0_source_0_target_0_7, sizeof(__pyx_k_0_ruletype_0_source_0_target_0_7), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0_8, __pyx_k_0_ruletype_0_source_0_target_0_8, sizeof(__pyx_k_0_ruletype_0_source_0_target_0_8), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_0_9, __pyx_k_0_ruletype_0_source_0_target_0_9, sizeof(__pyx_k_0_ruletype_0_source_0_target_0_9), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_source_0_target_2, __pyx_k_0_ruletype_0_source_0_target_2, sizeof(__pyx_k_0_ruletype_0_source_0_target_2), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_tclass, __pyx_k_0_ruletype_0_tclass, sizeof(__pyx_k_0_ruletype_0_tclass), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_tclass_0_default, __pyx_k_0_ruletype_0_tclass_0_default, sizeof(__pyx_k_0_ruletype_0_tclass_0_default), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_tclass_0_default_0, __pyx_k_0_ruletype_0_tclass_0_default_0, sizeof(__pyx_k_0_ruletype_0_tclass_0_default_0), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_tclass_0_expressio, __pyx_k_0_ruletype_0_tclass_0_expressio, sizeof(__pyx_k_0_ruletype_0_tclass_0_expressio), 0, 1, 0, 0},
  {&__pyx_kp_u_0_ruletype_0_tclass_1_0_express, __pyx_k_0_ruletype_0_tclass_1_0_express, sizeof(__pyx_k_0_ruletype_0_tclass_1_0_express), 0, 1, 0, 0},
  {&__pyx_kp_u_0_user_0_role_0_type, __pyx_k_0_user_0_role_0_type, sizeof(__pyx_k_0_user_0_role_0_type), 0, 1, 0, 0},
  {&__pyx_kp_u_0_user_0_role_0_type__0_range, __pyx_k_0_user_0_role_0_type__0_range, sizeof(__pyx_k_0_user_0_role_0_type__0_range), 0, 1, 0, 0},
  {&__pyx_n_s_AVRule, __pyx_k_AVRule, sizeof(__pyx_k_AVRule), 0, 0, 1, 1},
  {&__pyx_n_s_AVRuleXperm, __pyx_k_AVRuleXperm, sizeof(__pyx_k_AVRuleXperm), 0, 0, 1, 1},
  {&__pyx_n_s_AVRuleXperm_expand, __pyx_k_AVRuleXperm_expand, sizeof(__pyx_k_AVRuleXperm_expand), 0, 0, 1, 1},
  {&__pyx_n_s_AVRule_expand, __pyx_k_AVRule_expand, sizeof(__pyx_k_AVRule_expand), 0, 0, 1, 1},
  {&__pyx_n_s_AVRule_factory_locals_genexpr, __pyx_k_AVRule_factory_locals_genexpr, sizeof(__pyx_k_AVRule_factory_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_kp_s_A_dictionary_with_a_weak_refere, __pyx_k_A_dictionary_with_a_weak_refere, sizeof(__pyx_k_A_dictionary_with_a_weak_refere), 0, 0, 1, 0},
  {&__pyx_kp_s_A_portcon_protocol_type, __pyx_k_A_portcon_protocol_type, sizeof(__pyx_k_A_portcon_protocol_type), 0, 0, 1, 0},
  {&__pyx_kp_s_An_enumeration_of_MLS_rule_types, __pyx_k_An_enumeration_of_MLS_rule_types, sizeof(__pyx_k_An_enumeration_of_MLS_rule_types), 0, 0, 1, 0},
  {&__pyx_kp_s_An_enumeration_of_RBAC_rule_type, __pyx_k_An_enumeration_of_RBAC_rule_type, sizeof(__pyx_k_An_enumeration_of_RBAC_rule_type), 0, 0, 1, 0},
  {&__pyx_n_s_AnyConstraint, __pyx_k_AnyConstraint, sizeof(__pyx_k_AnyConstraint), 0, 0, 1, 1},
  {&__pyx_n_u_AnyConstraint, __pyx_k_AnyConstraint, sizeof(__pyx_k_AnyConstraint), 0, 1, 0, 1},
  {&__pyx_n_s_AnyDefault, __pyx_k_AnyDefault, sizeof(__pyx_k_AnyDefault), 0, 0, 1, 1},
  {&__pyx_n_s_AnyRBACRule, __pyx_k_AnyRBACRule, sizeof(__pyx_k_AnyRBACRule), 0, 0, 1, 1},
  {&__pyx_n_s_AnyTERule, __pyx_k_AnyTERule, sizeof(__pyx_k_AnyTERule), 0, 0, 1, 1},
  {&__pyx_n_u_AnyTERule, __pyx_k_AnyTERule, sizeof(__pyx_k_AnyTERule), 0, 1, 0, 1},
  {&__pyx_kp_u_At_least_one_of_user_role_type, __pyx_k_At_least_one_of_user_role_type, sizeof(__pyx_k_At_least_one_of_user_role_type), 0, 1, 0, 0},
  {&__pyx_kp_u_Attempting_to_locate_current_run, __pyx_k_Attempting_to_locate_current_run, sizeof(__pyx_k_Attempting_to_locate_current_run), 0, 1, 0, 0},
  {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1},
  {&__pyx_n_s_BaseConstraint, __pyx_k_BaseConstraint, sizeof(__pyx_k_BaseConstraint), 0, 0, 1, 1},
  {&__pyx_n_s_BaseMLSLevel, __pyx_k_BaseMLSLevel, sizeof(__pyx_k_BaseMLSLevel), 0, 0, 1, 1},
  {&__pyx_n_s_BaseTERule, __pyx_k_BaseTERule, sizeof(__pyx_k_BaseTERule), 0, 0, 1, 1},
  {&__pyx_n_s_BaseType, __pyx_k_BaseType, sizeof(__pyx_k_BaseType), 0, 0, 1, 1},
  {&__pyx_kp_s_Base_class_for_policy_enumerati, __pyx_k_Base_class_for_policy_enumerati, sizeof(__pyx_k_Base_class_for_policy_enumerati), 0, 0, 1, 0},
  {&__pyx_kp_u_Binary_policy_path, __pyx_k_Binary_policy_path, sizeof(__pyx_k_Binary_policy_path), 0, 1, 0, 0},
  {&__pyx_kp_u_Bitmap_overflow_bit_0_06x, __pyx_k_Bitmap_overflow_bit_0_06x, sizeof(__pyx_k_Bitmap_overflow_bit_0_06x), 0, 1, 0, 0},
  {&__pyx_n_s_Boolean, __pyx_k_Boolean, sizeof(__pyx_k_Boolean), 0, 0, 1, 1},
  {&__pyx_n_s_BooleanHashtabIterator, __pyx_k_BooleanHashtabIterator, sizeof(__pyx_k_BooleanHashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_Bounds, __pyx_k_Bounds, sizeof(__pyx_k_Bounds), 0, 0, 1, 1},
  {&__pyx_n_s_BoundsRuletype, __pyx_k_BoundsRuletype, sizeof(__pyx_k_BoundsRuletype), 0, 0, 1, 1},
  {&__pyx_n_s_Category, __pyx_k_Category, sizeof(__pyx_k_Category), 0, 0, 1, 1},
  {&__pyx_n_s_CategoryEbitmapIterator, __pyx_k_CategoryEbitmapIterator, sizeof(__pyx_k_CategoryEbitmapIterator), 0, 0, 1, 1},
  {&__pyx_n_s_CategoryHashtabIterator, __pyx_k_CategoryHashtabIterator, sizeof(__pyx_k_CategoryHashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_Common, __pyx_k_Common, sizeof(__pyx_k_Common), 0, 0, 1, 1},
  {&__pyx_n_s_CommonHashtabIterator, __pyx_k_CommonHashtabIterator, sizeof(__pyx_k_CommonHashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_Conditional, __pyx_k_Conditional, sizeof(__pyx_k_Conditional), 0, 0, 1, 1},
  {&__pyx_n_s_ConditionalExprIterator, __pyx_k_ConditionalExprIterator, sizeof(__pyx_k_ConditionalExprIterator), 0, 0, 1, 1},
  {&__pyx_n_s_ConditionalIterator, __pyx_k_ConditionalIterator, sizeof(__pyx_k_ConditionalIterator), 0, 0, 1, 1},
  {&__pyx_n_s_ConditionalOperator, __pyx_k_ConditionalOperator, sizeof(__pyx_k_ConditionalOperator), 0, 0, 1, 1},
  {&__pyx_n_s_ConditionalOperator_lambda, __pyx_k_ConditionalOperator_lambda, sizeof(__pyx_k_ConditionalOperator_lambda), 0, 0, 1, 1},
  {&__pyx_n_s_ConditionalTERuleIterator, __pyx_k_ConditionalTERuleIterator, sizeof(__pyx_k_ConditionalTERuleIterator), 0, 0, 1, 1},
  {&__pyx_n_s_Constraint, __pyx_k_Constraint, sizeof(__pyx_k_Constraint), 0, 0, 1, 1},
  {&__pyx_n_s_ConstraintExprIterator, __pyx_k_ConstraintExprIterator, sizeof(__pyx_k_ConstraintExprIterator), 0, 0, 1, 1},
  {&__pyx_n_s_ConstraintExprNode, __pyx_k_ConstraintExprNode, sizeof(__pyx_k_ConstraintExprNode), 0, 0, 1, 1},
  {&__pyx_n_s_ConstraintExprNode_factory_local, __pyx_k_ConstraintExprNode_factory_local, sizeof(__pyx_k_ConstraintExprNode_factory_local), 0, 0, 1, 1},
  {&__pyx_n_s_ConstraintExpression, __pyx_k_ConstraintExpression, sizeof(__pyx_k_ConstraintExpression), 0, 0, 1, 1},
  {&__pyx_n_s_ConstraintIterator, __pyx_k_ConstraintIterator, sizeof(__pyx_k_ConstraintIterator), 0, 0, 1, 1},
  {&__pyx_n_s_ConstraintRuletype, __pyx_k_ConstraintRuletype, sizeof(__pyx_k_ConstraintRuletype), 0, 0, 1, 1},
  {&__pyx_n_s_ConstraintUseError, __pyx_k_ConstraintUseError, sizeof(__pyx_k_ConstraintUseError), 0, 0, 1, 1},
  {&__pyx_n_s_Context, __pyx_k_Context, sizeof(__pyx_k_Context), 0, 0, 1, 1},
  {&__pyx_n_s_Counter, __pyx_k_Counter, sizeof(__pyx_k_Counter), 0, 0, 1, 1},
  {&__pyx_kp_u_Creating_cat_val_to_struct, __pyx_k_Creating_cat_val_to_struct, sizeof(__pyx_k_Creating_cat_val_to_struct), 0, 1, 0, 0},
  {&__pyx_kp_u_Creating_level_val_to_struct, __pyx_k_Creating_level_val_to_struct, sizeof(__pyx_k_Creating_level_val_to_struct), 0, 1, 0, 0},
  {&__pyx_kp_u_Current_policy_path, __pyx_k_Current_policy_path, sizeof(__pyx_k_Current_policy_path), 0, 1, 0, 0},
  {&__pyx_n_s_Default, __pyx_k_Default, sizeof(__pyx_k_Default), 0, 0, 1, 1},
  {&__pyx_n_s_DefaultRange, __pyx_k_DefaultRange, sizeof(__pyx_k_DefaultRange), 0, 0, 1, 1},
  {&__pyx_n_s_DefaultRangeValue, __pyx_k_DefaultRangeValue, sizeof(__pyx_k_DefaultRangeValue), 0, 0, 1, 1},
  {&__pyx_n_s_DefaultRangeValue_from_default_r, __pyx_k_DefaultRangeValue_from_default_r, sizeof(__pyx_k_DefaultRangeValue_from_default_r), 0, 0, 1, 1},
  {&__pyx_n_s_DefaultRuletype, __pyx_k_DefaultRuletype, sizeof(__pyx_k_DefaultRuletype), 0, 0, 1, 1},
  {&__pyx_n_s_DefaultValue, __pyx_k_DefaultValue, sizeof(__pyx_k_DefaultValue), 0, 0, 1, 1},
  {&__pyx_n_s_DefaultValue_from_default_range, __pyx_k_DefaultValue_from_default_range, sizeof(__pyx_k_DefaultValue_from_default_range), 0, 0, 1, 1},
  {&__pyx_n_s_Devicetreecon, __pyx_k_Devicetreecon, sizeof(__pyx_k_Devicetreecon), 0, 0, 1, 1},
  {&__pyx_n_s_DevicetreeconIterator, __pyx_k_DevicetreeconIterator, sizeof(__pyx_k_DevicetreeconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_EbitmapIterator, __pyx_k_EbitmapIterator, sizeof(__pyx_k_EbitmapIterator), 0, 0, 1, 1},
  {&__pyx_n_s_Enum, __pyx_k_Enum, sizeof(__pyx_k_Enum), 0, 0, 1, 1},
  {&__pyx_kp_s_Enumeration_of_bounds_rule_types, __pyx_k_Enumeration_of_bounds_rule_types, sizeof(__pyx_k_Enumeration_of_bounds_rule_types), 0, 0, 1, 0},
  {&__pyx_kp_s_Enumeration_of_constraint_types, __pyx_k_Enumeration_of_constraint_types, sizeof(__pyx_k_Enumeration_of_constraint_types), 0, 0, 1, 0},
  {&__pyx_kp_s_Enumeration_of_default_range_val, __pyx_k_Enumeration_of_default_range_val, sizeof(__pyx_k_Enumeration_of_default_range_val), 0, 0, 1, 0},
  {&__pyx_kp_s_Enumeration_of_default_rule_type, __pyx_k_Enumeration_of_default_rule_type, sizeof(__pyx_k_Enumeration_of_default_rule_type), 0, 0, 1, 0},
  {&__pyx_kp_s_Enumeration_of_default_values, __pyx_k_Enumeration_of_default_values, sizeof(__pyx_k_Enumeration_of_default_values), 0, 0, 1, 0},
  {&__pyx_kp_s_Enumeration_of_fs_use__rule_type, __pyx_k_Enumeration_of_fs_use__rule_type, sizeof(__pyx_k_Enumeration_of_fs_use__rule_type), 0, 0, 1, 0},
  {&__pyx_kp_s_Enumeration_of_handle_unknown_se, __pyx_k_Enumeration_of_handle_unknown_se, sizeof(__pyx_k_Enumeration_of_handle_unknown_se), 0, 0, 1, 0},
  {&__pyx_kp_s_Enumeration_of_policy_targets, __pyx_k_Enumeration_of_policy_targets, sizeof(__pyx_k_Enumeration_of_policy_targets), 0, 0, 1, 0},
  {&__pyx_kp_s_Enumeration_of_types_of_TE_rules, __pyx_k_Enumeration_of_types_of_TE_rules, sizeof(__pyx_k_Enumeration_of_types_of_TE_rules), 0, 0, 1, 0},
  {&__pyx_kp_u_Error_inserting_into_hash_table, __pyx_k_Error_inserting_into_hash_table, sizeof(__pyx_k_Error_inserting_into_hash_table), 0, 1, 0, 0},
  {&__pyx_kp_u_Extended_permission_information, __pyx_k_Extended_permission_information, sizeof(__pyx_k_Extended_permission_information), 0, 1, 0, 0},
  {&__pyx_n_s_FSUse, __pyx_k_FSUse, sizeof(__pyx_k_FSUse), 0, 0, 1, 1},
  {&__pyx_n_s_FSUseIterator, __pyx_k_FSUseIterator, sizeof(__pyx_k_FSUseIterator), 0, 0, 1, 1},
  {&__pyx_n_s_FSUseRuletype, __pyx_k_FSUseRuletype, sizeof(__pyx_k_FSUseRuletype), 0, 0, 1, 1},
  {&__pyx_n_s_FileNameTERule, __pyx_k_FileNameTERule, sizeof(__pyx_k_FileNameTERule), 0, 0, 1, 1},
  {&__pyx_n_s_FileNameTERuleIterator, __pyx_k_FileNameTERuleIterator, sizeof(__pyx_k_FileNameTERuleIterator), 0, 0, 1, 1},
  {&__pyx_n_s_FileNameTERule_expand, __pyx_k_FileNameTERule_expand, sizeof(__pyx_k_FileNameTERule_expand), 0, 0, 1, 1},
  {&__pyx_n_s_GenfsFiletype, __pyx_k_GenfsFiletype, sizeof(__pyx_k_GenfsFiletype), 0, 0, 1, 1},
  {&__pyx_n_s_Genfscon, __pyx_k_Genfscon, sizeof(__pyx_k_Genfscon), 0, 0, 1, 1},
  {&__pyx_n_s_GenfsconIterator, __pyx_k_GenfsconIterator, sizeof(__pyx_k_GenfsconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_GenfsconOcontextIterator, __pyx_k_GenfsconOcontextIterator, sizeof(__pyx_k_GenfsconOcontextIterator), 0, 0, 1, 1},
  {&__pyx_kp_u_Genfscon_object_class_does_not_m, __pyx_k_Genfscon_object_class_does_not_m, sizeof(__pyx_k_Genfscon_object_class_does_not_m), 0, 1, 0, 0},
  {&__pyx_n_s_HandleUnknown, __pyx_k_HandleUnknown, sizeof(__pyx_k_HandleUnknown), 0, 0, 1, 1},
  {&__pyx_n_s_HashtabIterator, __pyx_k_HashtabIterator, sizeof(__pyx_k_HashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_IPv6Address, __pyx_k_IPv6Address, sizeof(__pyx_k_IPv6Address), 0, 0, 1, 1},
  {&__pyx_n_s_Ibendportcon, __pyx_k_Ibendportcon, sizeof(__pyx_k_Ibendportcon), 0, 0, 1, 1},
  {&__pyx_n_s_IbendportconIterator, __pyx_k_IbendportconIterator, sizeof(__pyx_k_IbendportconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_Ibpkeycon, __pyx_k_Ibpkeycon, sizeof(__pyx_k_Ibpkeycon), 0, 0, 1, 1},
  {&__pyx_n_s_IbpkeyconIterator, __pyx_k_IbpkeyconIterator, sizeof(__pyx_k_IbpkeyconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_IbpkeyconRange, __pyx_k_IbpkeyconRange, sizeof(__pyx_k_IbpkeyconRange), 0, 0, 1, 1},
  {&__pyx_n_u_IbpkeyconRange, __pyx_k_IbpkeyconRange, sizeof(__pyx_k_IbpkeyconRange), 0, 1, 0, 1},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x18, __pyx_k_Incompatible_checksums_s_vs_0x18, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x18), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x18_2, __pyx_k_Incompatible_checksums_s_vs_0x18_2, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x18_2), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x2b, __pyx_k_Incompatible_checksums_s_vs_0x2b, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x2b), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x2c, __pyx_k_Incompatible_checksums_s_vs_0x2c, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x2c), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x2d, __pyx_k_Incompatible_checksums_s_vs_0x2d, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x2d), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x38, __pyx_k_Incompatible_checksums_s_vs_0x38, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x38), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x39, __pyx_k_Incompatible_checksums_s_vs_0x39, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x39), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x45, __pyx_k_Incompatible_checksums_s_vs_0x45, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x45), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x4a, __pyx_k_Incompatible_checksums_s_vs_0x4a, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x4a), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x4f, __pyx_k_Incompatible_checksums_s_vs_0x4f, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x4f), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x5d, __pyx_k_Incompatible_checksums_s_vs_0x5d, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x5d), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x64, __pyx_k_Incompatible_checksums_s_vs_0x64, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x64), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x66, __pyx_k_Incompatible_checksums_s_vs_0x66, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x66), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x67, __pyx_k_Incompatible_checksums_s_vs_0x67, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x67), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x67_2, __pyx_k_Incompatible_checksums_s_vs_0x67_2, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x67_2), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x6a, __pyx_k_Incompatible_checksums_s_vs_0x6a, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x6a), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x6d, __pyx_k_Incompatible_checksums_s_vs_0x6d, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x6d), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x78, __pyx_k_Incompatible_checksums_s_vs_0x78, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x78), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x7c, __pyx_k_Incompatible_checksums_s_vs_0x7c, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x7c), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x93, __pyx_k_Incompatible_checksums_s_vs_0x93, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x93), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x97, __pyx_k_Incompatible_checksums_s_vs_0x97, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x97), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x9a, __pyx_k_Incompatible_checksums_s_vs_0x9a, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x9a), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xa5, __pyx_k_Incompatible_checksums_s_vs_0xa5, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xa5), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xa5_2, __pyx_k_Incompatible_checksums_s_vs_0xa5_2, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xa5_2), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xa6, __pyx_k_Incompatible_checksums_s_vs_0xa6, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xa6), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xa9, __pyx_k_Incompatible_checksums_s_vs_0xa9, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xa9), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xaa, __pyx_k_Incompatible_checksums_s_vs_0xaa, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xaa), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_k_Incompatible_checksums_s_vs_0xb0, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb0), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb4, __pyx_k_Incompatible_checksums_s_vs_0xb4, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb4), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb8, __pyx_k_Incompatible_checksums_s_vs_0xb8, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb8), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xbc, __pyx_k_Incompatible_checksums_s_vs_0xbc, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xbc), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xc8, __pyx_k_Incompatible_checksums_s_vs_0xc8, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xc8), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xc9, __pyx_k_Incompatible_checksums_s_vs_0xc9, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xc9), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xd0, __pyx_k_Incompatible_checksums_s_vs_0xd0, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xd0), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xd1, __pyx_k_Incompatible_checksums_s_vs_0xd1, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xd1), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xd4, __pyx_k_Incompatible_checksums_s_vs_0xd4, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xd4), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xd5, __pyx_k_Incompatible_checksums_s_vs_0xd5, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xd5), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xdb, __pyx_k_Incompatible_checksums_s_vs_0xdb, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xdb), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xdc, __pyx_k_Incompatible_checksums_s_vs_0xdc, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xdc), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xdf, __pyx_k_Incompatible_checksums_s_vs_0xdf, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xdf), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xe9, __pyx_k_Incompatible_checksums_s_vs_0xe9, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xe9), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xed, __pyx_k_Incompatible_checksums_s_vs_0xed, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xed), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xf3, __pyx_k_Incompatible_checksums_s_vs_0xf3, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xf3), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xf4, __pyx_k_Incompatible_checksums_s_vs_0xf4, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xf4), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xf9, __pyx_k_Incompatible_checksums_s_vs_0xf9, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xf9), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xfd, __pyx_k_Incompatible_checksums_s_vs_0xfd, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xfd), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xfe, __pyx_k_Incompatible_checksums_s_vs_0xfe, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xfe), 0, 0, 1, 0},
  {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
  {&__pyx_n_s_InitialSID, __pyx_k_InitialSID, sizeof(__pyx_k_InitialSID), 0, 0, 1, 1},
  {&__pyx_n_s_InitialSIDIterator, __pyx_k_InitialSIDIterator, sizeof(__pyx_k_InitialSIDIterator), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidBoolean, __pyx_k_InvalidBoolean, sizeof(__pyx_k_InvalidBoolean), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidBoundsType, __pyx_k_InvalidBoundsType, sizeof(__pyx_k_InvalidBoundsType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidCategory, __pyx_k_InvalidCategory, sizeof(__pyx_k_InvalidCategory), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidClass, __pyx_k_InvalidClass, sizeof(__pyx_k_InvalidClass), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidCommon, __pyx_k_InvalidCommon, sizeof(__pyx_k_InvalidCommon), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidConstraintType, __pyx_k_InvalidConstraintType, sizeof(__pyx_k_InvalidConstraintType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidDefaultRange, __pyx_k_InvalidDefaultRange, sizeof(__pyx_k_InvalidDefaultRange), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidDefaultType, __pyx_k_InvalidDefaultType, sizeof(__pyx_k_InvalidDefaultType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidDefaultValue, __pyx_k_InvalidDefaultValue, sizeof(__pyx_k_InvalidDefaultValue), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidFSUseType, __pyx_k_InvalidFSUseType, sizeof(__pyx_k_InvalidFSUseType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidInitialSid, __pyx_k_InvalidInitialSid, sizeof(__pyx_k_InvalidInitialSid), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidLevel, __pyx_k_InvalidLevel, sizeof(__pyx_k_InvalidLevel), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidLevelDecl, __pyx_k_InvalidLevelDecl, sizeof(__pyx_k_InvalidLevelDecl), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidMLSRuleType, __pyx_k_InvalidMLSRuleType, sizeof(__pyx_k_InvalidMLSRuleType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidPolicy, __pyx_k_InvalidPolicy, sizeof(__pyx_k_InvalidPolicy), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidRBACRuleType, __pyx_k_InvalidRBACRuleType, sizeof(__pyx_k_InvalidRBACRuleType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidRange, __pyx_k_InvalidRange, sizeof(__pyx_k_InvalidRange), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidRole, __pyx_k_InvalidRole, sizeof(__pyx_k_InvalidRole), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidRuleType, __pyx_k_InvalidRuleType, sizeof(__pyx_k_InvalidRuleType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidSensitivity, __pyx_k_InvalidSensitivity, sizeof(__pyx_k_InvalidSensitivity), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidTERuleType, __pyx_k_InvalidTERuleType, sizeof(__pyx_k_InvalidTERuleType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidType, __pyx_k_InvalidType, sizeof(__pyx_k_InvalidType), 0, 0, 1, 1},
  {&__pyx_n_s_InvalidUser, __pyx_k_InvalidUser, sizeof(__pyx_k_InvalidUser), 0, 0, 1, 1},
  {&__pyx_kp_u_Invalid_policy_A_binary_policy_m, __pyx_k_Invalid_policy_A_binary_policy_m, sizeof(__pyx_k_Invalid_policy_A_binary_policy_m), 0, 1, 0, 0},
  {&__pyx_n_s_IoctlSet, __pyx_k_IoctlSet, sizeof(__pyx_k_IoctlSet), 0, 0, 1, 1},
  {&__pyx_n_s_Iomemcon, __pyx_k_Iomemcon, sizeof(__pyx_k_Iomemcon), 0, 0, 1, 1},
  {&__pyx_n_s_IomemconIterator, __pyx_k_IomemconIterator, sizeof(__pyx_k_IomemconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_IomemconRange, __pyx_k_IomemconRange, sizeof(__pyx_k_IomemconRange), 0, 0, 1, 1},
  {&__pyx_n_u_IomemconRange, __pyx_k_IomemconRange, sizeof(__pyx_k_IomemconRange), 0, 1, 0, 1},
  {&__pyx_n_s_Ioportcon, __pyx_k_Ioportcon, sizeof(__pyx_k_Ioportcon), 0, 0, 1, 1},
  {&__pyx_n_s_IoportconIterator, __pyx_k_IoportconIterator, sizeof(__pyx_k_IoportconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_IoportconRange, __pyx_k_IoportconRange, sizeof(__pyx_k_IoportconRange), 0, 0, 1, 1},
  {&__pyx_n_u_IoportconRange, __pyx_k_IoportconRange, sizeof(__pyx_k_IoportconRange), 0, 1, 0, 1},
  {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1},
  {&__pyx_n_s_Level, __pyx_k_Level, sizeof(__pyx_k_Level), 0, 0, 1, 1},
  {&__pyx_n_s_LevelDecl, __pyx_k_LevelDecl, sizeof(__pyx_k_LevelDecl), 0, 0, 1, 1},
  {&__pyx_n_s_LevelDeclHashtabIterator, __pyx_k_LevelDeclHashtabIterator, sizeof(__pyx_k_LevelDeclHashtabIterator), 0, 0, 1, 1},
  {&__pyx_kp_u_Levels_cannot_be_compared_to_lev, __pyx_k_Levels_cannot_be_compared_to_lev, sizeof(__pyx_k_Levels_cannot_be_compared_to_lev), 0, 1, 0, 0},
  {&__pyx_n_s_LowLevelPolicyError, __pyx_k_LowLevelPolicyError, sizeof(__pyx_k_LowLevelPolicyError), 0, 0, 1, 1},
  {&__pyx_n_s_MLSDisabled, __pyx_k_MLSDisabled, sizeof(__pyx_k_MLSDisabled), 0, 0, 1, 1},
  {&__pyx_n_s_MLSRule, __pyx_k_MLSRule, sizeof(__pyx_k_MLSRule), 0, 0, 1, 1},
  {&__pyx_n_s_MLSRuleIterator, __pyx_k_MLSRuleIterator, sizeof(__pyx_k_MLSRuleIterator), 0, 0, 1, 1},
  {&__pyx_n_s_MLSRule_expand, __pyx_k_MLSRule_expand, sizeof(__pyx_k_MLSRule_expand), 0, 0, 1, 1},
  {&__pyx_n_s_MLSRuletype, __pyx_k_MLSRuletype, sizeof(__pyx_k_MLSRuletype), 0, 0, 1, 1},
  {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
  {&__pyx_kp_u_Negations_in_the_type_set_this_i, __pyx_k_Negations_in_the_type_set_this_i, sizeof(__pyx_k_Negations_in_the_type_set_this_i), 0, 1, 0, 0},
  {&__pyx_n_s_Netifcon, __pyx_k_Netifcon, sizeof(__pyx_k_Netifcon), 0, 0, 1, 1},
  {&__pyx_n_s_NetifconIterator, __pyx_k_NetifconIterator, sizeof(__pyx_k_NetifconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_NoCommon, __pyx_k_NoCommon, sizeof(__pyx_k_NoCommon), 0, 0, 1, 1},
  {&__pyx_n_s_NoDefaults, __pyx_k_NoDefaults, sizeof(__pyx_k_NoDefaults), 0, 0, 1, 1},
  {&__pyx_n_s_NoStatement, __pyx_k_NoStatement, sizeof(__pyx_k_NoStatement), 0, 0, 1, 1},
  {&__pyx_n_s_Nodecon, __pyx_k_Nodecon, sizeof(__pyx_k_Nodecon), 0, 0, 1, 1},
  {&__pyx_n_s_NodeconIPVersion, __pyx_k_NodeconIPVersion, sizeof(__pyx_k_NodeconIPVersion), 0, 0, 1, 1},
  {&__pyx_n_s_NodeconIterator, __pyx_k_NodeconIterator, sizeof(__pyx_k_NodeconIterator), 0, 0, 1, 1},
  {&__pyx_kp_s_Nodecon_IP_Version, __pyx_k_Nodecon_IP_Version, sizeof(__pyx_k_Nodecon_IP_Version), 0, 0, 1, 0},
  {&__pyx_kp_u_Nodecon_with_network_has_host_bi, __pyx_k_Nodecon_with_network_has_host_bi, sizeof(__pyx_k_Nodecon_with_network_has_host_bi), 0, 1, 0, 0},
  {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1},
  {&__pyx_n_s_OSError, __pyx_k_OSError, sizeof(__pyx_k_OSError), 0, 0, 1, 1},
  {&__pyx_n_s_ObjClass, __pyx_k_ObjClass, sizeof(__pyx_k_ObjClass), 0, 0, 1, 1},
  {&__pyx_n_s_ObjClassHashtabIterator, __pyx_k_ObjClassHashtabIterator, sizeof(__pyx_k_ObjClassHashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_Ocontext, __pyx_k_Ocontext, sizeof(__pyx_k_Ocontext), 0, 0, 1, 1},
  {&__pyx_n_s_OcontextIterator, __pyx_k_OcontextIterator, sizeof(__pyx_k_OcontextIterator), 0, 0, 1, 1},
  {&__pyx_kp_u_Opening_SELinux_policy_0, __pyx_k_Opening_SELinux_policy_0, sizeof(__pyx_k_Opening_SELinux_policy_0), 0, 1, 0, 0},
  {&__pyx_n_s_Pcidevicecon, __pyx_k_Pcidevicecon, sizeof(__pyx_k_Pcidevicecon), 0, 0, 1, 1},
  {&__pyx_n_s_PcideviceconIterator, __pyx_k_PcideviceconIterator, sizeof(__pyx_k_PcideviceconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_PermissionVectorIterator, __pyx_k_PermissionVectorIterator, sizeof(__pyx_k_PermissionVectorIterator), 0, 0, 1, 1},
  {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
  {&__pyx_n_s_Pirqcon, __pyx_k_Pirqcon, sizeof(__pyx_k_Pirqcon), 0, 0, 1, 1},
  {&__pyx_n_s_PirqconIterator, __pyx_k_PirqconIterator, sizeof(__pyx_k_PirqconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyCapability, __pyx_k_PolicyCapability, sizeof(__pyx_k_PolicyCapability), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyCapabilityIterator, __pyx_k_PolicyCapabilityIterator, sizeof(__pyx_k_PolicyCapabilityIterator), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyEnum, __pyx_k_PolicyEnum, sizeof(__pyx_k_PolicyEnum), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyEnum___eq, __pyx_k_PolicyEnum___eq, sizeof(__pyx_k_PolicyEnum___eq), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyEnum___format, __pyx_k_PolicyEnum___format, sizeof(__pyx_k_PolicyEnum___format), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyEnum___hash, __pyx_k_PolicyEnum___hash, sizeof(__pyx_k_PolicyEnum___hash), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyEnum___str, __pyx_k_PolicyEnum___str, sizeof(__pyx_k_PolicyEnum___str), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyEnum_lookup, __pyx_k_PolicyEnum_lookup, sizeof(__pyx_k_PolicyEnum_lookup), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyIterator, __pyx_k_PolicyIterator, sizeof(__pyx_k_PolicyIterator), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyObject, __pyx_k_PolicyObject, sizeof(__pyx_k_PolicyObject), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyRule, __pyx_k_PolicyRule, sizeof(__pyx_k_PolicyRule), 0, 0, 1, 1},
  {&__pyx_n_s_PolicySymbol, __pyx_k_PolicySymbol, sizeof(__pyx_k_PolicySymbol), 0, 0, 1, 1},
  {&__pyx_n_s_PolicyTarget, __pyx_k_PolicyTarget, sizeof(__pyx_k_PolicyTarget), 0, 0, 1, 1},
  {&__pyx_n_s_Portcon, __pyx_k_Portcon, sizeof(__pyx_k_Portcon), 0, 0, 1, 1},
  {&__pyx_n_s_PortconIterator, __pyx_k_PortconIterator, sizeof(__pyx_k_PortconIterator), 0, 0, 1, 1},
  {&__pyx_n_s_PortconProtocol, __pyx_k_PortconProtocol, sizeof(__pyx_k_PortconProtocol), 0, 0, 1, 1},
  {&__pyx_n_s_PortconRange, __pyx_k_PortconRange, sizeof(__pyx_k_PortconRange), 0, 0, 1, 1},
  {&__pyx_n_u_PortconRange, __pyx_k_PortconRange, sizeof(__pyx_k_PortconRange), 0, 1, 0, 1},
  {&__pyx_kp_u_Potential_policies, __pyx_k_Potential_policies, sizeof(__pyx_k_Potential_policies), 0, 1, 0, 0},
  {&__pyx_n_s_RBACRuletype, __pyx_k_RBACRuletype, sizeof(__pyx_k_RBACRuletype), 0, 0, 1, 1},
  {&__pyx_n_s_Range, __pyx_k_Range, sizeof(__pyx_k_Range), 0, 0, 1, 1},
  {&__pyx_kp_u_Rebuilding_attributes, __pyx_k_Rebuilding_attributes, sizeof(__pyx_k_Rebuilding_attributes), 0, 1, 0, 0},
  {&__pyx_n_s_Role, __pyx_k_Role, sizeof(__pyx_k_Role), 0, 0, 1, 1},
  {&__pyx_n_s_RoleAllow, __pyx_k_RoleAllow, sizeof(__pyx_k_RoleAllow), 0, 0, 1, 1},
  {&__pyx_n_s_RoleAllowIterator, __pyx_k_RoleAllowIterator, sizeof(__pyx_k_RoleAllowIterator), 0, 0, 1, 1},
  {&__pyx_n_s_RoleAllow_expand, __pyx_k_RoleAllow_expand, sizeof(__pyx_k_RoleAllow_expand), 0, 0, 1, 1},
  {&__pyx_n_s_RoleEbitmapIterator, __pyx_k_RoleEbitmapIterator, sizeof(__pyx_k_RoleEbitmapIterator), 0, 0, 1, 1},
  {&__pyx_n_s_RoleHashtabIterator, __pyx_k_RoleHashtabIterator, sizeof(__pyx_k_RoleHashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_RoleTransition, __pyx_k_RoleTransition, sizeof(__pyx_k_RoleTransition), 0, 0, 1, 1},
  {&__pyx_n_s_RoleTransitionIterator, __pyx_k_RoleTransitionIterator, sizeof(__pyx_k_RoleTransitionIterator), 0, 0, 1, 1},
  {&__pyx_n_s_RoleTransition_expand, __pyx_k_RoleTransition_expand, sizeof(__pyx_k_RoleTransition_expand), 0, 0, 1, 1},
  {&__pyx_kp_u_Role_allow_rules_do_not_have_a_d, __pyx_k_Role_allow_rules_do_not_have_a_d, sizeof(__pyx_k_Role_allow_rules_do_not_have_a_d), 0, 1, 0, 0},
  {&__pyx_kp_u_Role_allow_rules_do_not_have_an, __pyx_k_Role_allow_rules_do_not_have_an, sizeof(__pyx_k_Role_allow_rules_do_not_have_an), 0, 1, 0, 0},
  {&__pyx_n_s_Role_expand, __pyx_k_Role_expand, sizeof(__pyx_k_Role_expand), 0, 0, 1, 1},
  {&__pyx_n_s_RuleNotConditional, __pyx_k_RuleNotConditional, sizeof(__pyx_k_RuleNotConditional), 0, 0, 1, 1},
  {&__pyx_n_s_RuleUseError, __pyx_k_RuleUseError, sizeof(__pyx_k_RuleUseError), 0, 0, 1, 1},
  {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
  {&__pyx_n_s_SELINUX_SIDNAMES, __pyx_k_SELINUX_SIDNAMES, sizeof(__pyx_k_SELINUX_SIDNAMES), 0, 0, 1, 1},
  {&__pyx_n_s_SELinuxPolicy, __pyx_k_SELinuxPolicy, sizeof(__pyx_k_SELinuxPolicy), 0, 0, 1, 1},
  {&__pyx_kp_u_SELinuxPolicy_0, __pyx_k_SELinuxPolicy_0, sizeof(__pyx_k_SELinuxPolicy_0), 0, 1, 0, 0},
  {&__pyx_n_s_SELinuxPolicy___get___locals_gen, __pyx_k_SELinuxPolicy___get___locals_gen, sizeof(__pyx_k_SELinuxPolicy___get___locals_gen), 0, 0, 1, 1},
  {&__pyx_n_s_SELinuxPolicy__cache_constraint, __pyx_k_SELinuxPolicy__cache_constraint, sizeof(__pyx_k_SELinuxPolicy__cache_constraint), 0, 0, 1, 1},
  {&__pyx_n_s_SELinuxPolicy_constraints, __pyx_k_SELinuxPolicy_constraints, sizeof(__pyx_k_SELinuxPolicy_constraints), 0, 0, 1, 1},
  {&__pyx_n_s_SELinuxPolicy_defaults, __pyx_k_SELinuxPolicy_defaults, sizeof(__pyx_k_SELinuxPolicy_defaults), 0, 0, 1, 1},
  {&__pyx_n_s_SELinuxPolicy_terules, __pyx_k_SELinuxPolicy_terules, sizeof(__pyx_k_SELinuxPolicy_terules), 0, 0, 1, 1},
  {&__pyx_kp_u_SELinuxfs_exists, __pyx_k_SELinuxfs_exists, sizeof(__pyx_k_SELinuxfs_exists), 0, 1, 0, 0},
  {&__pyx_n_s_Sensitivity, __pyx_k_Sensitivity, sizeof(__pyx_k_Sensitivity), 0, 0, 1, 1},
  {&__pyx_n_s_SensitivityHashtabIterator, __pyx_k_SensitivityHashtabIterator, sizeof(__pyx_k_SensitivityHashtabIterator), 0, 0, 1, 1},
  {&__pyx_kp_u_Sepol_version_range, __pyx_k_Sepol_version_range, sizeof(__pyx_k_Sepol_version_range), 0, 1, 0, 0},
  {&__pyx_kp_u_Setting_permissive_flags_in_type, __pyx_k_Setting_permissive_flags_in_type, sizeof(__pyx_k_Setting_permissive_flags_in_type), 0, 1, 0, 0},
  {&__pyx_n_s_StopIteration, __pyx_k_StopIteration, sizeof(__pyx_k_StopIteration), 0, 0, 1, 1},
  {&__pyx_kp_u_Successfully_opened_SELinux_poli, __pyx_k_Successfully_opened_SELinux_poli, sizeof(__pyx_k_Successfully_opened_SELinux_poli), 0, 1, 0, 0},
  {&__pyx_n_s_SymbolUseError, __pyx_k_SymbolUseError, sizeof(__pyx_k_SymbolUseError), 0, 0, 1, 1},
  {&__pyx_kp_u_Synthesizing_missing_attributes, __pyx_k_Synthesizing_missing_attributes, sizeof(__pyx_k_Synthesizing_missing_attributes), 0, 1, 0, 0},
  {&__pyx_n_s_TERule, __pyx_k_TERule, sizeof(__pyx_k_TERule), 0, 0, 1, 1},
  {&__pyx_n_s_TERuleIterator, __pyx_k_TERuleIterator, sizeof(__pyx_k_TERuleIterator), 0, 0, 1, 1},
  {&__pyx_n_s_TERuleNoFilename, __pyx_k_TERuleNoFilename, sizeof(__pyx_k_TERuleNoFilename), 0, 0, 1, 1},
  {&__pyx_n_s_TERule_expand, __pyx_k_TERule_expand, sizeof(__pyx_k_TERule_expand), 0, 0, 1, 1},
  {&__pyx_n_s_TERuletype, __pyx_k_TERuletype, sizeof(__pyx_k_TERuletype), 0, 0, 1, 1},
  {&__pyx_n_s_TruthTableRow, __pyx_k_TruthTableRow, sizeof(__pyx_k_TruthTableRow), 0, 0, 1, 1},
  {&__pyx_n_u_TruthTableRow, __pyx_k_TruthTableRow, sizeof(__pyx_k_TruthTableRow), 0, 1, 0, 1},
  {&__pyx_n_s_Type, __pyx_k_Type, sizeof(__pyx_k_Type), 0, 0, 1, 1},
  {&__pyx_n_s_TypeAttribute, __pyx_k_TypeAttribute, sizeof(__pyx_k_TypeAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_TypeAttributeEbitmapIterator, __pyx_k_TypeAttributeEbitmapIterator, sizeof(__pyx_k_TypeAttributeEbitmapIterator), 0, 0, 1, 1},
  {&__pyx_n_s_TypeAttributeHashtabIterator, __pyx_k_TypeAttributeHashtabIterator, sizeof(__pyx_k_TypeAttributeHashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_TypeEbitmapIterator, __pyx_k_TypeEbitmapIterator, sizeof(__pyx_k_TypeEbitmapIterator), 0, 0, 1, 1},
  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
  {&__pyx_n_s_TypeHashtabIterator, __pyx_k_TypeHashtabIterator, sizeof(__pyx_k_TypeHashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_TypeOrAttr, __pyx_k_TypeOrAttr, sizeof(__pyx_k_TypeOrAttr), 0, 0, 1, 1},
  {&__pyx_n_u_TypeOrAttr, __pyx_k_TypeOrAttr, sizeof(__pyx_k_TypeOrAttr), 0, 1, 0, 1},
  {&__pyx_n_s_TypeOrAttributeEbitmapIterator, __pyx_k_TypeOrAttributeEbitmapIterator, sizeof(__pyx_k_TypeOrAttributeEbitmapIterator), 0, 0, 1, 1},
  {&__pyx_n_s_TypeVar, __pyx_k_TypeVar, sizeof(__pyx_k_TypeVar), 0, 0, 1, 1},
  {&__pyx_n_s_Type_expand, __pyx_k_Type_expand, sizeof(__pyx_k_Type_expand), 0, 0, 1, 1},
  {&__pyx_n_s_TypeboundsIterator, __pyx_k_TypeboundsIterator, sizeof(__pyx_k_TypeboundsIterator), 0, 0, 1, 1},
  {&__pyx_kp_u_Unable_to_locate_an_SELinux_poli, __pyx_k_Unable_to_locate_an_SELinux_poli, sizeof(__pyx_k_Unable_to_locate_an_SELinux_poli), 0, 1, 0, 0},
  {&__pyx_n_s_Union, __pyx_k_Union, sizeof(__pyx_k_Union), 0, 0, 1, 1},
  {&__pyx_kp_u_Unknown_AV_rule_type_0x, __pyx_k_Unknown_AV_rule_type_0x, sizeof(__pyx_k_Unknown_AV_rule_type_0x), 0, 1, 0, 0},
  {&__pyx_kp_u_Unknown_extended_permission, __pyx_k_Unknown_extended_permission, sizeof(__pyx_k_Unknown_extended_permission), 0, 1, 0, 0},
  {&__pyx_kp_u_Unsupported_default_range_value, __pyx_k_Unsupported_default_range_value, sizeof(__pyx_k_Unsupported_default_range_value), 0, 1, 0, 0},
  {&__pyx_kp_u_Unsupported_default_value, __pyx_k_Unsupported_default_value, sizeof(__pyx_k_Unsupported_default_value), 0, 1, 0, 0},
  {&__pyx_n_s_User, __pyx_k_User, sizeof(__pyx_k_User), 0, 0, 1, 1},
  {&__pyx_n_s_UserEbitmapIterator, __pyx_k_UserEbitmapIterator, sizeof(__pyx_k_UserEbitmapIterator), 0, 0, 1, 1},
  {&__pyx_n_s_UserHashtabIterator, __pyx_k_UserHashtabIterator, sizeof(__pyx_k_UserHashtabIterator), 0, 0, 1, 1},
  {&__pyx_n_s_User_factory_locals_genexpr, __pyx_k_User_factory_locals_genexpr, sizeof(__pyx_k_User_factory_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_Validatetrans, __pyx_k_Validatetrans, sizeof(__pyx_k_Validatetrans), 0, 0, 1, 1},
  {&__pyx_n_s_ValidatetransIterator, __pyx_k_ValidatetransIterator, sizeof(__pyx_k_ValidatetransIterator), 0, 0, 1, 1},
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
  {&__pyx_n_s_WeakKeyDefaultDict, __pyx_k_WeakKeyDefaultDict, sizeof(__pyx_k_WeakKeyDefaultDict), 0, 0, 1, 1},
  {&__pyx_n_s_WeakKeyDefaultDict___getitem, __pyx_k_WeakKeyDefaultDict___getitem, sizeof(__pyx_k_WeakKeyDefaultDict___getitem), 0, 0, 1, 1},
  {&__pyx_n_s_WeakKeyDefaultDict___init, __pyx_k_WeakKeyDefaultDict___init, sizeof(__pyx_k_WeakKeyDefaultDict___init), 0, 0, 1, 1},
  {&__pyx_n_s_WeakKeyDefaultDict___missing, __pyx_k_WeakKeyDefaultDict___missing, sizeof(__pyx_k_WeakKeyDefaultDict___missing), 0, 0, 1, 1},
  {&__pyx_n_s_WeakKeyDictionary, __pyx_k_WeakKeyDictionary, sizeof(__pyx_k_WeakKeyDictionary), 0, 0, 1, 1},
  {&__pyx_n_s_XEN_SIDNAMES, __pyx_k_XEN_SIDNAMES, sizeof(__pyx_k_XEN_SIDNAMES), 0, 0, 1, 1},
  {&__pyx_kp_u__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0, 0},
  {&__pyx_kp_u__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0, 0},
  {&__pyx_kp_u__133, __pyx_k__133, sizeof(__pyx_k__133), 0, 1, 0, 0},
  {&__pyx_kp_u__134, __pyx_k__134, sizeof(__pyx_k__134), 0, 1, 0, 0},
  {&__pyx_kp_u__135, __pyx_k__135, sizeof(__pyx_k__135), 0, 1, 0, 0},
  {&__pyx_kp_u__136, __pyx_k__136, sizeof(__pyx_k__136), 0, 1, 0, 0},
  {&__pyx_kp_u__142, __pyx_k__142, sizeof(__pyx_k__142), 0, 1, 0, 0},
  {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
  {&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0},
  {&__pyx_kp_u__32, __pyx_k__32, sizeof(__pyx_k__32), 0, 1, 0, 0},
  {&__pyx_kp_u__33, __pyx_k__33, sizeof(__pyx_k__33), 0, 1, 0, 0},
  {&__pyx_kp_u__34, __pyx_k__34, sizeof(__pyx_k__34), 0, 1, 0, 0},
  {&__pyx_kp_u__35, __pyx_k__35, sizeof(__pyx_k__35), 0, 1, 0, 0},
  {&__pyx_kp_u__36, __pyx_k__36, sizeof(__pyx_k__36), 0, 1, 0, 0},
  {&__pyx_kp_u__37, __pyx_k__37, sizeof(__pyx_k__37), 0, 1, 0, 0},
  {&__pyx_kp_u__48, __pyx_k__48, sizeof(__pyx_k__48), 0, 1, 0, 0},
  {&__pyx_kp_u__60, __pyx_k__60, sizeof(__pyx_k__60), 0, 1, 0, 0},
  {&__pyx_kp_u__84, __pyx_k__84, sizeof(__pyx_k__84), 0, 1, 0, 0},
  {&__pyx_kp_u_alias_0, __pyx_k_alias_0, sizeof(__pyx_k_alias_0), 0, 1, 0, 0},
  {&__pyx_kp_u_alias_0_2, __pyx_k_alias_0_2, sizeof(__pyx_k_alias_0_2), 0, 1, 0, 0},
  {&__pyx_n_s_aliases, __pyx_k_aliases, sizeof(__pyx_k_aliases), 0, 0, 1, 1},
  {&__pyx_n_s_allow, __pyx_k_allow, sizeof(__pyx_k_allow), 0, 0, 1, 1},
  {&__pyx_n_s_allowxperm, __pyx_k_allowxperm, sizeof(__pyx_k_allowxperm), 0, 0, 1, 1},
  {&__pyx_n_u_and, __pyx_k_and, sizeof(__pyx_k_and), 0, 1, 0, 1},
  {&__pyx_n_u_any_socket, __pyx_k_any_socket, sizeof(__pyx_k_any_socket), 0, 1, 0, 1},
  {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
  {&__pyx_kp_u_attribute_0, __pyx_k_attribute_0, sizeof(__pyx_k_attribute_0), 0, 1, 0, 0},
  {&__pyx_n_s_auditallow, __pyx_k_auditallow, sizeof(__pyx_k_auditallow), 0, 0, 1, 1},
  {&__pyx_n_s_auditallowxperm, __pyx_k_auditallowxperm, sizeof(__pyx_k_auditallowxperm), 0, 0, 1, 1},
  {&__pyx_kp_u_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 1, 0, 0},
  {&__pyx_n_u_blk_file, __pyx_k_blk_file, sizeof(__pyx_k_blk_file), 0, 1, 0, 1},
  {&__pyx_kp_u_bool_0_1, __pyx_k_bool_0_1, sizeof(__pyx_k_bool_0_1), 0, 1, 0, 0},
  {&__pyx_n_s_bools, __pyx_k_bools, sizeof(__pyx_k_bools), 0, 0, 1, 1},
  {&__pyx_n_s_bound, __pyx_k_bound, sizeof(__pyx_k_bound), 0, 0, 1, 1},
  {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1},
  {&__pyx_kp_u_c_2, __pyx_k_c_2, sizeof(__pyx_k_c_2), 0, 1, 0, 0},
  {&__pyx_n_s_categories, __pyx_k_categories, sizeof(__pyx_k_categories), 0, 0, 1, 1},
  {&__pyx_kp_u_category_0, __pyx_k_category_0, sizeof(__pyx_k_category_0), 0, 1, 0, 0},
  {&__pyx_n_s_chain, __pyx_k_chain, sizeof(__pyx_k_chain), 0, 0, 1, 1},
  {&__pyx_n_s_child, __pyx_k_child, sizeof(__pyx_k_child), 0, 0, 1, 1},
  {&__pyx_n_u_chr_file, __pyx_k_chr_file, sizeof(__pyx_k_chr_file), 0, 1, 0, 1},
  {&__pyx_kp_u_class_0, __pyx_k_class_0, sizeof(__pyx_k_class_0), 0, 1, 0, 0},
  {&__pyx_n_s_classes, __pyx_k_classes, sizeof(__pyx_k_classes), 0, 0, 1, 1},
  {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
  {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
  {&__pyx_n_s_cls, __pyx_k_cls, sizeof(__pyx_k_cls), 0, 0, 1, 1},
  {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1},
  {&__pyx_n_s_common, __pyx_k_common, sizeof(__pyx_k_common), 0, 0, 1, 1},
  {&__pyx_kp_u_common_0_1, __pyx_k_common_0_1, sizeof(__pyx_k_common_0_1), 0, 1, 0, 0},
  {&__pyx_n_s_commons, __pyx_k_commons, sizeof(__pyx_k_commons), 0, 0, 1, 1},
  {&__pyx_n_s_cond_expr_val_to_details, __pyx_k_cond_expr_val_to_details, sizeof(__pyx_k_cond_expr_val_to_details), 0, 0, 1, 1},
  {&__pyx_n_s_conditionals, __pyx_k_conditionals, sizeof(__pyx_k_conditionals), 0, 0, 1, 1},
  {&__pyx_n_s_constrain, __pyx_k_constrain, sizeof(__pyx_k_constrain), 0, 0, 1, 1},
  {&__pyx_n_s_constraints, __pyx_k_constraints, sizeof(__pyx_k_constraints), 0, 0, 1, 1},
  {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1},
  {&__pyx_kp_u_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 1, 0, 0},
  {&__pyx_n_s_dccp, __pyx_k_dccp, sizeof(__pyx_k_dccp), 0, 0, 1, 1},
  {&__pyx_n_s_debug, __pyx_k_debug, sizeof(__pyx_k_debug), 0, 0, 1, 1},
  {&__pyx_n_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 1},
  {&__pyx_n_s_default_factory, __pyx_k_default_factory, sizeof(__pyx_k_default_factory), 0, 0, 1, 1},
  {&__pyx_n_s_default_map, __pyx_k_default_map, sizeof(__pyx_k_default_map), 0, 0, 1, 1},
  {&__pyx_n_s_default_range, __pyx_k_default_range, sizeof(__pyx_k_default_range), 0, 0, 1, 1},
  {&__pyx_n_s_default_role, __pyx_k_default_role, sizeof(__pyx_k_default_role), 0, 0, 1, 1},
  {&__pyx_n_s_default_type, __pyx_k_default_type, sizeof(__pyx_k_default_type), 0, 0, 1, 1},
  {&__pyx_n_s_default_user, __pyx_k_default_user, sizeof(__pyx_k_default_user), 0, 0, 1, 1},
  {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1},
  {&__pyx_n_s_defaultvalue, __pyx_k_defaultvalue, sizeof(__pyx_k_defaultvalue), 0, 0, 1, 1},
  {&__pyx_n_s_deny, __pyx_k_deny, sizeof(__pyx_k_deny), 0, 0, 1, 1},
  {&__pyx_n_s_deref, __pyx_k_deref, sizeof(__pyx_k_deref), 0, 0, 1, 1},
  {&__pyx_n_s_derive_expanded_locals_genexpr, __pyx_k_derive_expanded_locals_genexpr, sizeof(__pyx_k_derive_expanded_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_u_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 1, 0, 1},
  {&__pyx_kp_u_devicetreecon_0_path_0_context, __pyx_k_devicetreecon_0_path_0_context, sizeof(__pyx_k_devicetreecon_0_path_0_context), 0, 1, 0, 0},
  {&__pyx_n_s_devicetreecons, __pyx_k_devicetreecons, sizeof(__pyx_k_devicetreecons), 0, 0, 1, 1},
  {&__pyx_n_u_devnull, __pyx_k_devnull, sizeof(__pyx_k_devnull), 0, 1, 0, 1},
  {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
  {&__pyx_n_u_dir, __pyx_k_dir, sizeof(__pyx_k_dir), 0, 1, 0, 1},
  {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
  {&__pyx_n_u_dom, __pyx_k_dom, sizeof(__pyx_k_dom), 0, 1, 0, 1},
  {&__pyx_n_u_dom0, __pyx_k_dom0, sizeof(__pyx_k_dom0), 0, 1, 0, 1},
  {&__pyx_n_u_domDM, __pyx_k_domDM, sizeof(__pyx_k_domDM), 0, 1, 0, 1},
  {&__pyx_n_u_domU, __pyx_k_domU, sizeof(__pyx_k_domU), 0, 1, 0, 1},
  {&__pyx_n_u_domby, __pyx_k_domby, sizeof(__pyx_k_domby), 0, 1, 0, 1},
  {&__pyx_n_u_domio, __pyx_k_domio, sizeof(__pyx_k_domio), 0, 1, 0, 1},
  {&__pyx_n_u_domxen, __pyx_k_domxen, sizeof(__pyx_k_domxen), 0, 1, 0, 1},
  {&__pyx_n_s_dontaudit, __pyx_k_dontaudit, sizeof(__pyx_k_dontaudit), 0, 0, 1, 1},
  {&__pyx_n_s_dontauditxperm, __pyx_k_dontauditxperm, sizeof(__pyx_k_dontauditxperm), 0, 0, 1, 1},
  {&__pyx_n_s_e, __pyx_k_e, sizeof(__pyx_k_e), 0, 0, 1, 1},
  {&__pyx_n_s_enum, __pyx_k_enum, sizeof(__pyx_k_enum), 0, 0, 1, 1},
  {&__pyx_n_s_eq, __pyx_k_eq, sizeof(__pyx_k_eq), 0, 0, 1, 1},
  {&__pyx_n_s_errno, __pyx_k_errno, sizeof(__pyx_k_errno), 0, 0, 1, 1},
  {&__pyx_n_s_evaluate, __pyx_k_evaluate, sizeof(__pyx_k_evaluate), 0, 0, 1, 1},
  {&__pyx_n_s_exception, __pyx_k_exception, sizeof(__pyx_k_exception), 0, 0, 1, 1},
  {&__pyx_n_s_expand, __pyx_k_expand, sizeof(__pyx_k_expand), 0, 0, 1, 1},
  {&__pyx_n_s_expr_op_to_text, __pyx_k_expr_op_to_text, sizeof(__pyx_k_expr_op_to_text), 0, 0, 1, 1},
  {&__pyx_n_s_expr_type_to_text, __pyx_k_expr_type_to_text, sizeof(__pyx_k_expr_type_to_text), 0, 0, 1, 1},
  {&__pyx_n_s_expression, __pyx_k_expression, sizeof(__pyx_k_expression), 0, 0, 1, 1},
  {&__pyx_n_s_false_rules, __pyx_k_false_rules, sizeof(__pyx_k_false_rules), 0, 0, 1, 1},
  {&__pyx_n_u_fifo_file, __pyx_k_fifo_file, sizeof(__pyx_k_fifo_file), 0, 1, 0, 1},
  {&__pyx_n_u_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 1, 0, 1},
  {&__pyx_n_u_file_labels, __pyx_k_file_labels, sizeof(__pyx_k_file_labels), 0, 1, 0, 1},
  {&__pyx_n_s_filetype_to_text, __pyx_k_filetype_to_text, sizeof(__pyx_k_filetype_to_text), 0, 0, 1, 1},
  {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
  {&__pyx_n_s_format_2, __pyx_k_format_2, sizeof(__pyx_k_format_2), 0, 0, 1, 1},
  {&__pyx_n_s_format___locals_lambda, __pyx_k_format___locals_lambda, sizeof(__pyx_k_format___locals_lambda), 0, 0, 1, 1},
  {&__pyx_n_s_from_default_range, __pyx_k_from_default_range, sizeof(__pyx_k_from_default_range), 0, 0, 1, 1},
  {&__pyx_n_u_fs, __pyx_k_fs, sizeof(__pyx_k_fs), 0, 1, 0, 1},
  {&__pyx_n_s_fs_use_task, __pyx_k_fs_use_task, sizeof(__pyx_k_fs_use_task), 0, 0, 1, 1},
  {&__pyx_n_s_fs_use_trans, __pyx_k_fs_use_trans, sizeof(__pyx_k_fs_use_trans), 0, 0, 1, 1},
  {&__pyx_n_s_fs_use_xattr, __pyx_k_fs_use_xattr, sizeof(__pyx_k_fs_use_xattr), 0, 0, 1, 1},
  {&__pyx_n_s_fs_uses, __pyx_k_fs_uses, sizeof(__pyx_k_fs_uses), 0, 0, 1, 1},
  {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1},
  {&__pyx_kp_u_genfscon_0_fs_0_path_0_filetype, __pyx_k_genfscon_0_fs_0_path_0_filetype, sizeof(__pyx_k_genfscon_0_fs_0_path_0_filetype), 0, 1, 0, 0},
  {&__pyx_kp_u_genfscon_0_fs_0_path_0_filetype_2, __pyx_k_genfscon_0_fs_0_path_0_filetype_2, sizeof(__pyx_k_genfscon_0_fs_0_path_0_filetype_2), 0, 1, 0, 0},
  {&__pyx_n_s_genfscons, __pyx_k_genfscons, sizeof(__pyx_k_genfscons), 0, 0, 1, 1},
  {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1},
  {&__pyx_n_s_getLogger, __pyx_k_getLogger, sizeof(__pyx_k_getLogger), 0, 0, 1, 1},
  {&__pyx_n_s_getitem, __pyx_k_getitem, sizeof(__pyx_k_getitem), 0, 0, 1, 1},
  {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
  {&__pyx_n_s_glblub, __pyx_k_glblub, sizeof(__pyx_k_glblub), 0, 0, 1, 1},
  {&__pyx_n_s_groupby, __pyx_k_groupby, sizeof(__pyx_k_groupby), 0, 0, 1, 1},
  {&__pyx_n_u_h1, __pyx_k_h1, sizeof(__pyx_k_h1), 0, 1, 0, 1},
  {&__pyx_n_u_h2, __pyx_k_h2, sizeof(__pyx_k_h2), 0, 1, 0, 1},
  {&__pyx_n_s_hash, __pyx_k_hash, sizeof(__pyx_k_hash), 0, 0, 1, 1},
  {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1},
  {&__pyx_n_u_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 1, 0, 1},
  {&__pyx_kp_u_ibendportcon_0_name_0_port, __pyx_k_ibendportcon_0_name_0_port, sizeof(__pyx_k_ibendportcon_0_name_0_port), 0, 1, 0, 0},
  {&__pyx_kp_u_ibendportcon_0_name_0_port_0_con, __pyx_k_ibendportcon_0_name_0_port_0_con, sizeof(__pyx_k_ibendportcon_0_name_0_port_0_con), 0, 1, 0, 0},
  {&__pyx_n_s_ibendportcons, __pyx_k_ibendportcons, sizeof(__pyx_k_ibendportcons), 0, 0, 1, 1},
  {&__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey, __pyx_k_ibpkeycon_0_subnet_prefix_0_pkey, sizeof(__pyx_k_ibpkeycon_0_subnet_prefix_0_pkey), 0, 1, 0, 0},
  {&__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey_2, __pyx_k_ibpkeycon_0_subnet_prefix_0_pkey_2, sizeof(__pyx_k_ibpkeycon_0_subnet_prefix_0_pkey_2), 0, 1, 0, 0},
  {&__pyx_kp_u_ibpkeycon_0_subnet_prefix_0_pkey_3, __pyx_k_ibpkeycon_0_subnet_prefix_0_pkey_3, sizeof(__pyx_k_ibpkeycon_0_subnet_prefix_0_pkey_3), 0, 1, 0, 0},
  {&__pyx_n_s_ibpkeycons, __pyx_k_ibpkeycons, sizeof(__pyx_k_ibpkeycons), 0, 0, 1, 1},
  {&__pyx_n_u_icmp_socket, __pyx_k_icmp_socket, sizeof(__pyx_k_icmp_socket), 0, 1, 0, 1},
  {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1},
  {&__pyx_n_u_igmp_packet, __pyx_k_igmp_packet, sizeof(__pyx_k_igmp_packet), 0, 1, 0, 1},
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
  {&__pyx_n_u_incomp, __pyx_k_incomp, sizeof(__pyx_k_incomp), 0, 1, 0, 1},
  {&__pyx_n_s_infix, __pyx_k_infix, sizeof(__pyx_k_infix), 0, 0, 1, 1},
  {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1},
  {&__pyx_kp_u_inherits_0, __pyx_k_inherits_0, sizeof(__pyx_k_inherits_0), 0, 1, 0, 0},
  {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
  {&__pyx_n_u_init_2, __pyx_k_init_2, sizeof(__pyx_k_init_2), 0, 1, 0, 1},
  {&__pyx_n_s_initialsids, __pyx_k_initialsids, sizeof(__pyx_k_initialsids), 0, 0, 1, 1},
  {&__pyx_n_u_ioctl, __pyx_k_ioctl, sizeof(__pyx_k_ioctl), 0, 1, 0, 1},
  {&__pyx_n_u_iomem, __pyx_k_iomem, sizeof(__pyx_k_iomem), 0, 1, 0, 1},
  {&__pyx_kp_u_iomemcon_0_1, __pyx_k_iomemcon_0_1, sizeof(__pyx_k_iomemcon_0_1), 0, 1, 0, 0},
  {&__pyx_kp_u_iomemcon_0_1_2, __pyx_k_iomemcon_0_1_2, sizeof(__pyx_k_iomemcon_0_1_2), 0, 1, 0, 0},
  {&__pyx_n_s_iomemcons, __pyx_k_iomemcons, sizeof(__pyx_k_iomemcons), 0, 0, 1, 1},
  {&__pyx_n_u_ioport, __pyx_k_ioport, sizeof(__pyx_k_ioport), 0, 1, 0, 1},
  {&__pyx_kp_u_ioportcon_0_1, __pyx_k_ioportcon_0_1, sizeof(__pyx_k_ioportcon_0_1), 0, 1, 0, 0},
  {&__pyx_kp_u_ioportcon_0_1_2, __pyx_k_ioportcon_0_1_2, sizeof(__pyx_k_ioportcon_0_1_2), 0, 1, 0, 0},
  {&__pyx_n_s_ioportcons, __pyx_k_ioportcons, sizeof(__pyx_k_ioportcons), 0, 0, 1, 1},
  {&__pyx_n_s_ip_network, __pyx_k_ip_network, sizeof(__pyx_k_ip_network), 0, 0, 1, 1},
  {&__pyx_n_s_ipaddress, __pyx_k_ipaddress, sizeof(__pyx_k_ipaddress), 0, 0, 1, 1},
  {&__pyx_n_s_ipv4, __pyx_k_ipv4, sizeof(__pyx_k_ipv4), 0, 0, 1, 1},
  {&__pyx_n_s_ipv6, __pyx_k_ipv6, sizeof(__pyx_k_ipv6), 0, 0, 1, 1},
  {&__pyx_n_u_irq, __pyx_k_irq, sizeof(__pyx_k_irq), 0, 1, 0, 1},
  {&__pyx_n_s_ispermissive, __pyx_k_ispermissive, sizeof(__pyx_k_ispermissive), 0, 0, 1, 1},
  {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1},
  {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1},
  {&__pyx_n_u_kernel, __pyx_k_kernel, sizeof(__pyx_k_kernel), 0, 1, 0, 1},
  {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1},
  {&__pyx_n_u_kmod, __pyx_k_kmod, sizeof(__pyx_k_kmod), 0, 1, 0, 1},
  {&__pyx_kp_u_l, __pyx_k_l, sizeof(__pyx_k_l), 0, 1, 0, 0},
  {&__pyx_n_u_l1, __pyx_k_l1, sizeof(__pyx_k_l1), 0, 1, 0, 1},
  {&__pyx_n_u_l2, __pyx_k_l2, sizeof(__pyx_k_l2), 0, 1, 0, 1},
  {&__pyx_n_s_len___locals_genexpr, __pyx_k_len___locals_genexpr, sizeof(__pyx_k_len___locals_genexpr), 0, 0, 1, 1},
  {&__pyx_kp_u_level_0, __pyx_k_level_0, sizeof(__pyx_k_level_0), 0, 1, 0, 0},
  {&__pyx_kp_u_level_0_mls_level_range_0_mls_r, __pyx_k_level_0_mls_level_range_0_mls_r, sizeof(__pyx_k_level_0_mls_level_range_0_mls_r), 0, 1, 0, 0},
  {&__pyx_n_s_level_decl, __pyx_k_level_decl, sizeof(__pyx_k_level_decl), 0, 0, 1, 1},
  {&__pyx_n_s_levels, __pyx_k_levels, sizeof(__pyx_k_levels), 0, 0, 1, 1},
  {&__pyx_n_u_libsepol, __pyx_k_libsepol, sizeof(__pyx_k_libsepol), 0, 1, 0, 1},
  {&__pyx_n_u_lnk_file, __pyx_k_lnk_file, sizeof(__pyx_k_lnk_file), 0, 1, 0, 1},
  {&__pyx_n_s_logging, __pyx_k_logging, sizeof(__pyx_k_logging), 0, 0, 1, 1},
  {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1},
  {&__pyx_n_s_lookup_boolean_name_sub, __pyx_k_lookup_boolean_name_sub, sizeof(__pyx_k_lookup_boolean_name_sub), 0, 0, 1, 1},
  {&__pyx_n_s_lookup_category, __pyx_k_lookup_category, sizeof(__pyx_k_lookup_category), 0, 0, 1, 1},
  {&__pyx_n_s_lookup_sensitivity, __pyx_k_lookup_sensitivity, sizeof(__pyx_k_lookup_sensitivity), 0, 0, 1, 1},
  {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1},
  {&__pyx_n_u_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 1, 0, 1},
  {&__pyx_n_s_low_high, __pyx_k_low_high, sizeof(__pyx_k_low_high), 0, 0, 1, 1},
  {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
  {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
  {&__pyx_n_s_missing, __pyx_k_missing, sizeof(__pyx_k_missing), 0, 0, 1, 1},
  {&__pyx_n_s_mlsconstrain, __pyx_k_mlsconstrain, sizeof(__pyx_k_mlsconstrain), 0, 0, 1, 1},
  {&__pyx_n_s_mlsrules, __pyx_k_mlsrules, sizeof(__pyx_k_mlsrules), 0, 0, 1, 1},
  {&__pyx_n_s_mlsvalidatetrans, __pyx_k_mlsvalidatetrans, sizeof(__pyx_k_mlsvalidatetrans), 0, 0, 1, 1},
  {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
  {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
  {&__pyx_n_s_name_3, __pyx_k_name_3, sizeof(__pyx_k_name_3), 0, 0, 1, 1},
  {&__pyx_n_s_namedtuple, __pyx_k_namedtuple, sizeof(__pyx_k_namedtuple), 0, 0, 1, 1},
  {&__pyx_n_s_names, __pyx_k_names, sizeof(__pyx_k_names), 0, 0, 1, 1},
  {&__pyx_n_u_names, __pyx_k_names, sizeof(__pyx_k_names), 0, 1, 0, 1},
  {&__pyx_n_u_netif, __pyx_k_netif, sizeof(__pyx_k_netif), 0, 1, 0, 1},
  {&__pyx_kp_u_netifcon_0_netif, __pyx_k_netifcon_0_netif, sizeof(__pyx_k_netifcon_0_netif), 0, 1, 0, 0},
  {&__pyx_kp_u_netifcon_0_netif_0_context_0_pac, __pyx_k_netifcon_0_netif_0_context_0_pac, sizeof(__pyx_k_netifcon_0_netif_0_context_0_pac), 0, 1, 0, 0},
  {&__pyx_n_s_netifcons, __pyx_k_netifcons, sizeof(__pyx_k_netifcons), 0, 0, 1, 1},
  {&__pyx_n_u_netmsg, __pyx_k_netmsg, sizeof(__pyx_k_netmsg), 0, 1, 0, 1},
  {&__pyx_n_s_neverallow, __pyx_k_neverallow, sizeof(__pyx_k_neverallow), 0, 0, 1, 1},
  {&__pyx_n_s_neverallowxperm, __pyx_k_neverallowxperm, sizeof(__pyx_k_neverallowxperm), 0, 0, 1, 1},
  {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
  {&__pyx_n_s_new_name, __pyx_k_new_name, sizeof(__pyx_k_new_name), 0, 0, 1, 1},
  {&__pyx_n_s_next, __pyx_k_next, sizeof(__pyx_k_next), 0, 0, 1, 1},
  {&__pyx_n_s_next_stype, __pyx_k_next_stype, sizeof(__pyx_k_next_stype), 0, 0, 1, 1},
  {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
  {&__pyx_n_u_node, __pyx_k_node, sizeof(__pyx_k_node), 0, 1, 0, 1},
  {&__pyx_kp_u_nodecon, __pyx_k_nodecon, sizeof(__pyx_k_nodecon), 0, 1, 0, 0},
  {&__pyx_kp_u_nodecon_1_0_context, __pyx_k_nodecon_1_0_context, sizeof(__pyx_k_nodecon_1_0_context), 0, 1, 0, 0},
  {&__pyx_n_s_nodecons, __pyx_k_nodecons, sizeof(__pyx_k_nodecons), 0, 0, 1, 1},
  {&__pyx_n_u_not, __pyx_k_not, sizeof(__pyx_k_not), 0, 1, 0, 1},
  {&__pyx_n_u_object_r, __pyx_k_object_r, sizeof(__pyx_k_object_r), 0, 1, 0, 1},
  {&__pyx_n_u_or, __pyx_k_or, sizeof(__pyx_k_or), 0, 1, 0, 1},
  {&__pyx_kp_u_or_in_the_type_set_this_is_not, __pyx_k_or_in_the_type_set_this_is_not, sizeof(__pyx_k_or_in_the_type_set_this_is_not), 0, 1, 0, 0},
  {&__pyx_n_s_other, __pyx_k_other, sizeof(__pyx_k_other), 0, 0, 1, 1},
  {&__pyx_kp_u_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 1, 0, 0},
  {&__pyx_n_s_parent, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1},
  {&__pyx_kp_u_pcidevicecon_0_device_0_context, __pyx_k_pcidevicecon_0_device_0_context, sizeof(__pyx_k_pcidevicecon_0_device_0_context), 0, 1, 0, 0},
  {&__pyx_n_s_pcidevicecons, __pyx_k_pcidevicecons, sizeof(__pyx_k_pcidevicecons), 0, 0, 1, 1},
  {&__pyx_n_s_perms, __pyx_k_perms, sizeof(__pyx_k_perms), 0, 0, 1, 1},
  {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
  {&__pyx_kp_u_pirqcon_0_irq_0_context, __pyx_k_pirqcon_0_irq_0_context, sizeof(__pyx_k_pirqcon_0_irq_0_context), 0, 1, 0, 0},
  {&__pyx_n_s_pirqcons, __pyx_k_pirqcons, sizeof(__pyx_k_pirqcons), 0, 0, 1, 1},
  {&__pyx_n_s_polcaps, __pyx_k_polcaps, sizeof(__pyx_k_polcaps), 0, 0, 1, 1},
  {&__pyx_n_s_policy, __pyx_k_policy, sizeof(__pyx_k_policy), 0, 0, 1, 1},
  {&__pyx_n_u_policy, __pyx_k_policy, sizeof(__pyx_k_policy), 0, 1, 0, 1},
  {&__pyx_kp_u_policycap_0, __pyx_k_policycap_0, sizeof(__pyx_k_policycap_0), 0, 1, 0, 0},
  {&__pyx_n_s_policyfile, __pyx_k_policyfile, sizeof(__pyx_k_policyfile), 0, 0, 1, 1},
  {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1},
  {&__pyx_n_u_port, __pyx_k_port, sizeof(__pyx_k_port), 0, 1, 0, 1},
  {&__pyx_kp_u_portcon_0_protocol_1_0_context, __pyx_k_portcon_0_protocol_1_0_context, sizeof(__pyx_k_portcon_0_protocol_1_0_context), 0, 1, 0, 0},
  {&__pyx_kp_u_portcon_0_protocol_1_2_0_context, __pyx_k_portcon_0_protocol_1_2_0_context, sizeof(__pyx_k_portcon_0_protocol_1_2_0_context), 0, 1, 0, 0},
  {&__pyx_kp_u_portcon_0_protocol_1_low_1_high, __pyx_k_portcon_0_protocol_1_low_1_high, sizeof(__pyx_k_portcon_0_protocol_1_low_1_high), 0, 1, 0, 0},
  {&__pyx_n_s_portcons, __pyx_k_portcons, sizeof(__pyx_k_portcons), 0, 0, 1, 1},
  {&__pyx_n_s_precedence, __pyx_k_precedence, sizeof(__pyx_k_precedence), 0, 0, 1, 1},
  {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
  {&__pyx_n_s_product, __pyx_k_product, sizeof(__pyx_k_product), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_AVRule, __pyx_k_pyx_unpickle_AVRule, sizeof(__pyx_k_pyx_unpickle_AVRule), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_AVRuleXperm, __pyx_k_pyx_unpickle_AVRuleXperm, sizeof(__pyx_k_pyx_unpickle_AVRuleXperm), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_BaseConstraint, __pyx_k_pyx_unpickle_BaseConstraint, sizeof(__pyx_k_pyx_unpickle_BaseConstraint), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_BaseMLSLevel, __pyx_k_pyx_unpickle_BaseMLSLevel, sizeof(__pyx_k_pyx_unpickle_BaseMLSLevel), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_BaseTERule, __pyx_k_pyx_unpickle_BaseTERule, sizeof(__pyx_k_pyx_unpickle_BaseTERule), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_BaseType, __pyx_k_pyx_unpickle_BaseType, sizeof(__pyx_k_pyx_unpickle_BaseType), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Boolean, __pyx_k_pyx_unpickle_Boolean, sizeof(__pyx_k_pyx_unpickle_Boolean), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Bounds, __pyx_k_pyx_unpickle_Bounds, sizeof(__pyx_k_pyx_unpickle_Bounds), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Category, __pyx_k_pyx_unpickle_Category, sizeof(__pyx_k_pyx_unpickle_Category), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Common, __pyx_k_pyx_unpickle_Common, sizeof(__pyx_k_pyx_unpickle_Common), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Conditional, __pyx_k_pyx_unpickle_Conditional, sizeof(__pyx_k_pyx_unpickle_Conditional), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_ConditionalOperat, __pyx_k_pyx_unpickle_ConditionalOperat, sizeof(__pyx_k_pyx_unpickle_ConditionalOperat), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Constraint, __pyx_k_pyx_unpickle_Constraint, sizeof(__pyx_k_pyx_unpickle_Constraint), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_ConstraintExprNod, __pyx_k_pyx_unpickle_ConstraintExprNod, sizeof(__pyx_k_pyx_unpickle_ConstraintExprNod), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_ConstraintExpress, __pyx_k_pyx_unpickle_ConstraintExpress, sizeof(__pyx_k_pyx_unpickle_ConstraintExpress), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Context, __pyx_k_pyx_unpickle_Context, sizeof(__pyx_k_pyx_unpickle_Context), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Default, __pyx_k_pyx_unpickle_Default, sizeof(__pyx_k_pyx_unpickle_Default), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_DefaultRange, __pyx_k_pyx_unpickle_DefaultRange, sizeof(__pyx_k_pyx_unpickle_DefaultRange), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Devicetreecon, __pyx_k_pyx_unpickle_Devicetreecon, sizeof(__pyx_k_pyx_unpickle_Devicetreecon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_FSUse, __pyx_k_pyx_unpickle_FSUse, sizeof(__pyx_k_pyx_unpickle_FSUse), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_FileNameTERule, __pyx_k_pyx_unpickle_FileNameTERule, sizeof(__pyx_k_pyx_unpickle_FileNameTERule), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_GenfsFiletype, __pyx_k_pyx_unpickle_GenfsFiletype, sizeof(__pyx_k_pyx_unpickle_GenfsFiletype), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Genfscon, __pyx_k_pyx_unpickle_Genfscon, sizeof(__pyx_k_pyx_unpickle_Genfscon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Ibendportcon, __pyx_k_pyx_unpickle_Ibendportcon, sizeof(__pyx_k_pyx_unpickle_Ibendportcon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Ibpkeycon, __pyx_k_pyx_unpickle_Ibpkeycon, sizeof(__pyx_k_pyx_unpickle_Ibpkeycon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_InitialSID, __pyx_k_pyx_unpickle_InitialSID, sizeof(__pyx_k_pyx_unpickle_InitialSID), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_IoctlSet, __pyx_k_pyx_unpickle_IoctlSet, sizeof(__pyx_k_pyx_unpickle_IoctlSet), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Iomemcon, __pyx_k_pyx_unpickle_Iomemcon, sizeof(__pyx_k_pyx_unpickle_Iomemcon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Ioportcon, __pyx_k_pyx_unpickle_Ioportcon, sizeof(__pyx_k_pyx_unpickle_Ioportcon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Level, __pyx_k_pyx_unpickle_Level, sizeof(__pyx_k_pyx_unpickle_Level), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_LevelDecl, __pyx_k_pyx_unpickle_LevelDecl, sizeof(__pyx_k_pyx_unpickle_LevelDecl), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_MLSRule, __pyx_k_pyx_unpickle_MLSRule, sizeof(__pyx_k_pyx_unpickle_MLSRule), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Netifcon, __pyx_k_pyx_unpickle_Netifcon, sizeof(__pyx_k_pyx_unpickle_Netifcon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Nodecon, __pyx_k_pyx_unpickle_Nodecon, sizeof(__pyx_k_pyx_unpickle_Nodecon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_ObjClass, __pyx_k_pyx_unpickle_ObjClass, sizeof(__pyx_k_pyx_unpickle_ObjClass), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Ocontext, __pyx_k_pyx_unpickle_Ocontext, sizeof(__pyx_k_pyx_unpickle_Ocontext), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Pcidevicecon, __pyx_k_pyx_unpickle_Pcidevicecon, sizeof(__pyx_k_pyx_unpickle_Pcidevicecon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PermissionVectorI, __pyx_k_pyx_unpickle_PermissionVectorI, sizeof(__pyx_k_pyx_unpickle_PermissionVectorI), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Pirqcon, __pyx_k_pyx_unpickle_Pirqcon, sizeof(__pyx_k_pyx_unpickle_Pirqcon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PolicyCapability, __pyx_k_pyx_unpickle_PolicyCapability, sizeof(__pyx_k_pyx_unpickle_PolicyCapability), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PolicyIterator, __pyx_k_pyx_unpickle_PolicyIterator, sizeof(__pyx_k_pyx_unpickle_PolicyIterator), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PolicyObject, __pyx_k_pyx_unpickle_PolicyObject, sizeof(__pyx_k_pyx_unpickle_PolicyObject), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PolicyRule, __pyx_k_pyx_unpickle_PolicyRule, sizeof(__pyx_k_pyx_unpickle_PolicyRule), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PolicySymbol, __pyx_k_pyx_unpickle_PolicySymbol, sizeof(__pyx_k_pyx_unpickle_PolicySymbol), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Portcon, __pyx_k_pyx_unpickle_Portcon, sizeof(__pyx_k_pyx_unpickle_Portcon), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Range, __pyx_k_pyx_unpickle_Range, sizeof(__pyx_k_pyx_unpickle_Range), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Role, __pyx_k_pyx_unpickle_Role, sizeof(__pyx_k_pyx_unpickle_Role), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_RoleAllow, __pyx_k_pyx_unpickle_RoleAllow, sizeof(__pyx_k_pyx_unpickle_RoleAllow), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_RoleTransition, __pyx_k_pyx_unpickle_RoleTransition, sizeof(__pyx_k_pyx_unpickle_RoleTransition), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Sensitivity, __pyx_k_pyx_unpickle_Sensitivity, sizeof(__pyx_k_pyx_unpickle_Sensitivity), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_TERule, __pyx_k_pyx_unpickle_TERule, sizeof(__pyx_k_pyx_unpickle_TERule), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Type, __pyx_k_pyx_unpickle_Type, sizeof(__pyx_k_pyx_unpickle_Type), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_TypeAttribute, __pyx_k_pyx_unpickle_TypeAttribute, sizeof(__pyx_k_pyx_unpickle_TypeAttribute), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_User, __pyx_k_pyx_unpickle_User, sizeof(__pyx_k_pyx_unpickle_User), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_Validatetrans, __pyx_k_pyx_unpickle_Validatetrans, sizeof(__pyx_k_pyx_unpickle_Validatetrans), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
  {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
  {&__pyx_n_u_r1, __pyx_k_r1, sizeof(__pyx_k_r1), 0, 1, 0, 1},
  {&__pyx_n_u_r2, __pyx_k_r2, sizeof(__pyx_k_r2), 0, 1, 0, 1},
  {&__pyx_n_u_r3, __pyx_k_r3, sizeof(__pyx_k_r3), 0, 1, 0, 1},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_range_2, __pyx_k_range_2, sizeof(__pyx_k_range_2), 0, 0, 1, 1},
  {&__pyx_n_s_range_transition, __pyx_k_range_transition, sizeof(__pyx_k_range_transition), 0, 0, 1, 1},
  {&__pyx_n_s_ranges, __pyx_k_ranges, sizeof(__pyx_k_ranges), 0, 0, 1, 1},
  {&__pyx_n_s_ranges_locals_genexpr, __pyx_k_ranges_locals_genexpr, sizeof(__pyx_k_ranges_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_ranges_locals_genexpr_locals_lam, __pyx_k_ranges_locals_genexpr_locals_lam, sizeof(__pyx_k_ranges_locals_genexpr_locals_lam), 0, 0, 1, 1},
  {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
  {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
  {&__pyx_n_s_reject, __pyx_k_reject, sizeof(__pyx_k_reject), 0, 0, 1, 1},
  {&__pyx_n_s_repeat, __pyx_k_repeat, sizeof(__pyx_k_repeat), 0, 0, 1, 1},
  {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1},
  {&__pyx_n_s_reset, __pyx_k_reset, sizeof(__pyx_k_reset), 0, 0, 1, 1},
  {&__pyx_n_u_result, __pyx_k_result, sizeof(__pyx_k_result), 0, 1, 0, 1},
  {&__pyx_kp_u_role_0, __pyx_k_role_0, sizeof(__pyx_k_role_0), 0, 1, 0, 0},
  {&__pyx_n_s_role_syms, __pyx_k_role_syms, sizeof(__pyx_k_role_syms), 0, 0, 1, 1},
  {&__pyx_n_s_role_transition, __pyx_k_role_transition, sizeof(__pyx_k_role_transition), 0, 0, 1, 1},
  {&__pyx_n_s_roles, __pyx_k_roles, sizeof(__pyx_k_roles), 0, 0, 1, 1},
  {&__pyx_n_s_ruletype, __pyx_k_ruletype, sizeof(__pyx_k_ruletype), 0, 0, 1, 1},
  {&__pyx_n_s_ruletype_count, __pyx_k_ruletype_count, sizeof(__pyx_k_ruletype_count), 0, 0, 1, 1},
  {&__pyx_kp_u_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 1, 0, 0},
  {&__pyx_n_s_sclass_to_stat, __pyx_k_sclass_to_stat, sizeof(__pyx_k_sclass_to_stat), 0, 0, 1, 1},
  {&__pyx_n_u_scmp_packet, __pyx_k_scmp_packet, sizeof(__pyx_k_scmp_packet), 0, 1, 0, 1},
  {&__pyx_n_s_sctp, __pyx_k_sctp, sizeof(__pyx_k_sctp), 0, 0, 1, 1},
  {&__pyx_n_u_security, __pyx_k_security, sizeof(__pyx_k_security), 0, 1, 0, 1},
  {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
  {&__pyx_kp_s_self_bmap_self_node_cannot_be_co, __pyx_k_self_bmap_self_node_cannot_be_co, sizeof(__pyx_k_self_bmap_self_node_cannot_be_co), 0, 0, 1, 0},
  {&__pyx_kp_s_self_curr_self_datum_self_node_s, __pyx_k_self_curr_self_datum_self_node_s, sizeof(__pyx_k_self_curr_self_datum_self_node_s), 0, 0, 1, 0},
  {&__pyx_kp_s_self_curr_self_head_cannot_be_co, __pyx_k_self_curr_self_head_cannot_be_co, sizeof(__pyx_k_self_curr_self_head_cannot_be_co), 0, 0, 1, 0},
  {&__pyx_kp_s_self_curr_self_head_self_ocon_ca, __pyx_k_self_curr_self_head_self_ocon_ca, sizeof(__pyx_k_self_curr_self_head_self_ocon_ca), 0, 0, 1, 0},
  {&__pyx_kp_s_self_curr_self_node_self_table_c, __pyx_k_self_curr_self_node_self_table_c, sizeof(__pyx_k_self_curr_self_node_self_table_c), 0, 0, 1, 0},
  {&__pyx_kp_s_self_node_self_table_cannot_be_c, __pyx_k_self_node_self_table_cannot_be_c, sizeof(__pyx_k_self_node_self_table_cannot_be_c), 0, 0, 1, 0},
  {&__pyx_n_s_selinux, __pyx_k_selinux, sizeof(__pyx_k_selinux), 0, 0, 1, 1},
  {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
  {&__pyx_n_s_sensitivities, __pyx_k_sensitivities, sizeof(__pyx_k_sensitivities), 0, 0, 1, 1},
  {&__pyx_n_s_sensitivity, __pyx_k_sensitivity, sizeof(__pyx_k_sensitivity), 0, 0, 1, 1},
  {&__pyx_kp_u_sensitivity_0, __pyx_k_sensitivity_0, sizeof(__pyx_k_sensitivity_0), 0, 1, 0, 0},
  {&__pyx_n_s_setdefault, __pyx_k_setdefault, sizeof(__pyx_k_setdefault), 0, 0, 1, 1},
  {&__pyx_n_s_setitem, __pyx_k_setitem, sizeof(__pyx_k_setitem), 0, 0, 1, 1},
  {&__pyx_n_s_setools_policyrep, __pyx_k_setools_policyrep, sizeof(__pyx_k_setools_policyrep), 0, 0, 1, 1},
  {&__pyx_kp_s_setools_policyrep_default_pxi, __pyx_k_setools_policyrep_default_pxi, sizeof(__pyx_k_setools_policyrep_default_pxi), 0, 0, 1, 0},
  {&__pyx_kp_s_setools_policyrep_util_pxi, __pyx_k_setools_policyrep_util_pxi, sizeof(__pyx_k_setools_policyrep_util_pxi), 0, 0, 1, 0},
  {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
  {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
  {&__pyx_kp_u_sid_0_0_context, __pyx_k_sid_0_0_context, sizeof(__pyx_k_sid_0_0_context), 0, 1, 0, 0},
  {&__pyx_n_u_sock_file, __pyx_k_sock_file, sizeof(__pyx_k_sock_file), 0, 1, 0, 1},
  {&__pyx_n_s_sorted, __pyx_k_sorted, sizeof(__pyx_k_sorted), 0, 0, 1, 1},
  {&__pyx_n_s_source, __pyx_k_source, sizeof(__pyx_k_source), 0, 0, 1, 1},
  {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1},
  {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1},
  {&__pyx_n_s_statement, __pyx_k_statement, sizeof(__pyx_k_statement), 0, 0, 1, 1},
  {&__pyx_n_s_statement_locals_genexpr, __pyx_k_statement_locals_genexpr, sizeof(__pyx_k_statement_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1},
  {&__pyx_n_s_str___locals_genexpr, __pyx_k_str___locals_genexpr, sizeof(__pyx_k_str___locals_genexpr), 0, 0, 1, 1},
  {&__pyx_n_s_str___locals_lambda, __pyx_k_str___locals_lambda, sizeof(__pyx_k_str___locals_lambda), 0, 0, 1, 1},
  {&__pyx_n_s_strict, __pyx_k_strict, sizeof(__pyx_k_strict), 0, 0, 1, 1},
  {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
  {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1},
  {&__pyx_n_s_sum, __pyx_k_sum, sizeof(__pyx_k_sum), 0, 0, 1, 1},
  {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1},
  {&__pyx_n_s_sym_to_text, __pyx_k_sym_to_text, sizeof(__pyx_k_sym_to_text), 0, 0, 1, 1},
  {&__pyx_n_s_symbol_type, __pyx_k_symbol_type, sizeof(__pyx_k_symbol_type), 0, 0, 1, 1},
  {&__pyx_n_u_symbol_type, __pyx_k_symbol_type, sizeof(__pyx_k_symbol_type), 0, 1, 0, 1},
  {&__pyx_n_u_sysctl, __pyx_k_sysctl, sizeof(__pyx_k_sysctl), 0, 1, 0, 1},
  {&__pyx_n_u_sysctl_dev, __pyx_k_sysctl_dev, sizeof(__pyx_k_sysctl_dev), 0, 1, 0, 1},
  {&__pyx_n_u_sysctl_fs, __pyx_k_sysctl_fs, sizeof(__pyx_k_sysctl_fs), 0, 1, 0, 1},
  {&__pyx_n_u_sysctl_kernel, __pyx_k_sysctl_kernel, sizeof(__pyx_k_sysctl_kernel), 0, 1, 0, 1},
  {&__pyx_n_u_sysctl_modprobe, __pyx_k_sysctl_modprobe, sizeof(__pyx_k_sysctl_modprobe), 0, 1, 0, 1},
  {&__pyx_n_u_sysctl_net, __pyx_k_sysctl_net, sizeof(__pyx_k_sysctl_net), 0, 1, 0, 1},
  {&__pyx_n_u_sysctl_net_unix, __pyx_k_sysctl_net_unix, sizeof(__pyx_k_sysctl_net_unix), 0, 1, 0, 1},
  {&__pyx_n_u_sysctl_vm, __pyx_k_sysctl_vm, sizeof(__pyx_k_sysctl_vm), 0, 1, 0, 1},
  {&__pyx_n_u_t1, __pyx_k_t1, sizeof(__pyx_k_t1), 0, 1, 0, 1},
  {&__pyx_n_u_t2, __pyx_k_t2, sizeof(__pyx_k_t2), 0, 1, 0, 1},
  {&__pyx_n_u_t3, __pyx_k_t3, sizeof(__pyx_k_t3), 0, 1, 0, 1},
  {&__pyx_n_s_target, __pyx_k_target, sizeof(__pyx_k_target), 0, 0, 1, 1},
  {&__pyx_n_s_tclass, __pyx_k_tclass, sizeof(__pyx_k_tclass), 0, 0, 1, 1},
  {&__pyx_n_s_tcp, __pyx_k_tcp, sizeof(__pyx_k_tcp), 0, 0, 1, 1},
  {&__pyx_n_u_tcp_socket, __pyx_k_tcp_socket, sizeof(__pyx_k_tcp_socket), 0, 1, 0, 1},
  {&__pyx_n_s_terules, __pyx_k_terules, sizeof(__pyx_k_terules), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
  {&__pyx_n_s_true_rules, __pyx_k_true_rules, sizeof(__pyx_k_true_rules), 0, 0, 1, 1},
  {&__pyx_n_s_truth_table_locals_genexpr, __pyx_k_truth_table_locals_genexpr, sizeof(__pyx_k_truth_table_locals_genexpr), 0, 0, 1, 1},
  {&__pyx_kp_u_type_0, __pyx_k_type_0, sizeof(__pyx_k_type_0), 0, 1, 0, 0},
  {&__pyx_n_s_type_change, __pyx_k_type_change, sizeof(__pyx_k_type_change), 0, 0, 1, 1},
  {&__pyx_n_s_type_member, __pyx_k_type_member, sizeof(__pyx_k_type_member), 0, 0, 1, 1},
  {&__pyx_n_s_type_syms, __pyx_k_type_syms, sizeof(__pyx_k_type_syms), 0, 0, 1, 1},
  {&__pyx_n_s_type_transition, __pyx_k_type_transition, sizeof(__pyx_k_type_transition), 0, 0, 1, 1},
  {&__pyx_n_s_typeattributes, __pyx_k_typeattributes, sizeof(__pyx_k_typeattributes), 0, 0, 1, 1},
  {&__pyx_n_s_typebounds, __pyx_k_typebounds, sizeof(__pyx_k_typebounds), 0, 0, 1, 1},
  {&__pyx_n_s_types, __pyx_k_types, sizeof(__pyx_k_types), 0, 0, 1, 1},
  {&__pyx_kp_u_types_0, __pyx_k_types_0, sizeof(__pyx_k_types_0), 0, 1, 0, 0},
  {&__pyx_kp_u_types_0_2, __pyx_k_types_0_2, sizeof(__pyx_k_types_0_2), 0, 1, 0, 0},
  {&__pyx_n_s_typing, __pyx_k_typing, sizeof(__pyx_k_typing), 0, 0, 1, 1},
  {&__pyx_n_u_u1, __pyx_k_u1, sizeof(__pyx_k_u1), 0, 1, 0, 1},
  {&__pyx_n_u_u2, __pyx_k_u2, sizeof(__pyx_k_u2), 0, 1, 0, 1},
  {&__pyx_n_u_u3, __pyx_k_u3, sizeof(__pyx_k_u3), 0, 1, 0, 1},
  {&__pyx_n_s_udp, __pyx_k_udp, sizeof(__pyx_k_udp), 0, 0, 1, 1},
  {&__pyx_n_s_unary, __pyx_k_unary, sizeof(__pyx_k_unary), 0, 0, 1, 1},
  {&__pyx_n_u_undefined, __pyx_k_undefined, sizeof(__pyx_k_undefined), 0, 1, 0, 1},
  {&__pyx_n_u_unlabeled, __pyx_k_unlabeled, sizeof(__pyx_k_unlabeled), 0, 1, 0, 1},
  {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
  {&__pyx_kp_u_user_0_roles, __pyx_k_user_0_roles, sizeof(__pyx_k_user_0_roles), 0, 1, 0, 0},
  {&__pyx_n_s_user_syms, __pyx_k_user_syms, sizeof(__pyx_k_user_syms), 0, 0, 1, 1},
  {&__pyx_n_s_users, __pyx_k_users, sizeof(__pyx_k_users), 0, 0, 1, 1},
  {&__pyx_n_s_validatetrans, __pyx_k_validatetrans, sizeof(__pyx_k_validatetrans), 0, 0, 1, 1},
  {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
  {&__pyx_n_s_value_2, __pyx_k_value_2, sizeof(__pyx_k_value_2), 0, 0, 1, 1},
  {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
  {&__pyx_n_u_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 1, 0, 1},
  {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1},
  {&__pyx_n_s_warning, __pyx_k_warning, sizeof(__pyx_k_warning), 0, 0, 1, 1},
  {&__pyx_n_s_warnings, __pyx_k_warnings, sizeof(__pyx_k_warnings), 0, 0, 1, 1},
  {&__pyx_n_s_weakref, __pyx_k_weakref, sizeof(__pyx_k_weakref), 0, 0, 1, 1},
  {&__pyx_n_s_with_netmask, __pyx_k_with_netmask, sizeof(__pyx_k_with_netmask), 0, 0, 1, 1},
  {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
  {&__pyx_n_s_xen, __pyx_k_xen, sizeof(__pyx_k_xen), 0, 0, 1, 1},
  {&__pyx_n_u_xen, __pyx_k_xen, sizeof(__pyx_k_xen), 0, 1, 0, 1},
  {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1},
  {0, 0, 0, 0, 0, 0, 0}
};
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 40, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 54, __pyx_L1_error)
  __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(0, 77, __pyx_L1_error)
  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 100, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 138, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(1, 219, __pyx_L1_error)
  __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) __PYX_ERR(1, 304, __pyx_L1_error)
  __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(2, 51, __pyx_L1_error)
  __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(2, 361, __pyx_L1_error)
  __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) __PYX_ERR(3, 182, __pyx_L1_error)
  __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(3, 320, __pyx_L1_error)
  __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(4, 41, __pyx_L1_error)
  __pyx_builtin_sum = __Pyx_GetBuiltinName(__pyx_n_s_sum); if (!__pyx_builtin_sum) __PYX_ERR(5, 137, __pyx_L1_error)
  __pyx_builtin_OSError = __Pyx_GetBuiltinName(__pyx_n_s_OSError); if (!__pyx_builtin_OSError) __PYX_ERR(5, 695, __pyx_L1_error)
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(5, 780, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__7);
  __Pyx_GIVEREF(__pyx_tuple__7);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__8);
  __Pyx_GIVEREF(__pyx_tuple__8);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__9);
  __Pyx_GIVEREF(__pyx_tuple__9);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__11);
  __Pyx_GIVEREF(__pyx_tuple__11);

  /* "setools/policyrep/constraint.pxi":404
 *     def names(self):
 *         if self._names is None:
 *             raise AttributeError("names")             # <<<<<<<<<<<<<<
 * 
 *         return self._names
 */
  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_n_u_names); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(2, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);

  /* "setools/policyrep/constraint.pxi":411
 *     def symbol_type(self):
 *         if self._symbol_type is None:
 *             raise AttributeError("symbol_type")             # <<<<<<<<<<<<<<
 * 
 *         return self._symbol_type
 */
  __pyx_tuple__15 = PyTuple_Pack(1, __pyx_n_u_symbol_type); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(2, 411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__15);
  __Pyx_GIVEREF(__pyx_tuple__15);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__16);
  __Pyx_GIVEREF(__pyx_tuple__16);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);

  /* "setools/policyrep/default.pxi":141
 *             return objr
 * 
 *         raise ValueError("At least one of user, role, type_, or range_ must be specified.")             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, other):
 */
  __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_u_At_least_one_of_user_role_type); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(9, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__22);
  __Pyx_GIVEREF(__pyx_tuple__22);

  /* "setools/policyrep/fscontext.pxi":126
 *                 log.warning("Genfscon {} {} object class {} does not match a file object class. "
 *                             "Dropping file type.".format(g.fs, g.path, g.tclass.name))
 *                 g.filetype = GenfsFiletype(0)             # <<<<<<<<<<<<<<
 *                 g.tclass = None
 * 
 */
  __pyx_tuple__23 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(10, 126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__23);
  __Pyx_GIVEREF(__pyx_tuple__23);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__28);
  __Pyx_GIVEREF(__pyx_tuple__28);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__43);
  __Pyx_GIVEREF(__pyx_tuple__43);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__45 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__45);
  __Pyx_GIVEREF(__pyx_tuple__45);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__46 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__47 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);

  /* "setools/policyrep/netcontext.pxi":249
 * 
 *     def statement(self):
 *         return "nodecon {1} {0.context}".format(self, self.network.with_netmask.replace("/", " "))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__49 = PyTuple_Pack(2, __pyx_kp_u__48, __pyx_kp_u__3); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(13, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__49);
  __Pyx_GIVEREF(__pyx_tuple__49);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__50 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__50);
  __Pyx_GIVEREF(__pyx_tuple__50);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__51 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__52 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__52);
  __Pyx_GIVEREF(__pyx_tuple__52);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__53 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__54 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__54);
  __Pyx_GIVEREF(__pyx_tuple__54);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__55);
  __Pyx_GIVEREF(__pyx_tuple__55);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__57 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__58 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__58);
  __Pyx_GIVEREF(__pyx_tuple__58);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__59 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__61 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__62);
  __Pyx_GIVEREF(__pyx_tuple__62);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__63 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__63);
  __Pyx_GIVEREF(__pyx_tuple__63);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__66);
  __Pyx_GIVEREF(__pyx_tuple__66);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__67 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__67);
  __Pyx_GIVEREF(__pyx_tuple__67);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__68 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__68);
  __Pyx_GIVEREF(__pyx_tuple__68);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__69 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__70 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__70);
  __Pyx_GIVEREF(__pyx_tuple__70);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__71 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__71);
  __Pyx_GIVEREF(__pyx_tuple__71);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__72 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__72);
  __Pyx_GIVEREF(__pyx_tuple__72);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__73 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__73);
  __Pyx_GIVEREF(__pyx_tuple__73);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__74 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__74);
  __Pyx_GIVEREF(__pyx_tuple__74);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__75 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__75);
  __Pyx_GIVEREF(__pyx_tuple__75);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__76 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__76);
  __Pyx_GIVEREF(__pyx_tuple__76);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__77 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__77);
  __Pyx_GIVEREF(__pyx_tuple__77);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__78 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__78)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__78);
  __Pyx_GIVEREF(__pyx_tuple__78);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__80 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__80);
  __Pyx_GIVEREF(__pyx_tuple__80);

  /* "setools/policyrep/selinuxpolicy.pxi":780
 *                 break
 *         else:
 *             raise RuntimeError("Unable to locate an SELinux policy to load.")             # <<<<<<<<<<<<<<
 * 
 *     cdef _set_permissive_flags(self):
 */
  __pyx_tuple__81 = PyTuple_Pack(1, __pyx_kp_u_Unable_to_locate_an_SELinux_poli); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(5, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__81);
  __Pyx_GIVEREF(__pyx_tuple__81);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__82 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__82)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__82);
  __Pyx_GIVEREF(__pyx_tuple__82);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__83 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__83);
  __Pyx_GIVEREF(__pyx_tuple__83);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__85 = PyTuple_Pack(1, __pyx_kp_s_self_node_self_table_cannot_be_c); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__85);
  __Pyx_GIVEREF(__pyx_tuple__85);

  /* "(tree fragment)":4
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__86 = PyTuple_Pack(1, __pyx_kp_s_self_node_self_table_cannot_be_c); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__86);
  __Pyx_GIVEREF(__pyx_tuple__86);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__87 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__87);
  __Pyx_GIVEREF(__pyx_tuple__87);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__88 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_cannot_be_co); if (unlikely(!__pyx_tuple__88)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__88);
  __Pyx_GIVEREF(__pyx_tuple__88);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__89 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_datum_self_node_s); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__89);
  __Pyx_GIVEREF(__pyx_tuple__89);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.datum,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__90 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_datum_self_node_s); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__90);
  __Pyx_GIVEREF(__pyx_tuple__90);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__91 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__92 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__92)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__92);
  __Pyx_GIVEREF(__pyx_tuple__92);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__93 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__94 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__94);
  __Pyx_GIVEREF(__pyx_tuple__94);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__95 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__95);
  __Pyx_GIVEREF(__pyx_tuple__95);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__96 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__96)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__96);
  __Pyx_GIVEREF(__pyx_tuple__96);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__97 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__97);
  __Pyx_GIVEREF(__pyx_tuple__97);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__98 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__98);
  __Pyx_GIVEREF(__pyx_tuple__98);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__99 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__99);
  __Pyx_GIVEREF(__pyx_tuple__99);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__100 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__100)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__100);
  __Pyx_GIVEREF(__pyx_tuple__100);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__101 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__101);
  __Pyx_GIVEREF(__pyx_tuple__101);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.node,self.table cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__102 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_node_self_table_c); if (unlikely(!__pyx_tuple__102)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__102);
  __Pyx_GIVEREF(__pyx_tuple__102);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__103 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__103);
  __Pyx_GIVEREF(__pyx_tuple__103);

  /* "(tree fragment)":4
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.bmap,self.node cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__104 = PyTuple_Pack(1, __pyx_kp_s_self_bmap_self_node_cannot_be_co); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__104);
  __Pyx_GIVEREF(__pyx_tuple__104);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__105 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__105);
  __Pyx_GIVEREF(__pyx_tuple__105);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__106 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__106);
  __Pyx_GIVEREF(__pyx_tuple__106);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__107 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__107);
  __Pyx_GIVEREF(__pyx_tuple__107);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__108 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__108)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__108);
  __Pyx_GIVEREF(__pyx_tuple__108);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__109 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__109);
  __Pyx_GIVEREF(__pyx_tuple__109);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__110 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__110)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__110);
  __Pyx_GIVEREF(__pyx_tuple__110);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__111 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__111);
  __Pyx_GIVEREF(__pyx_tuple__111);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__112 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__112)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__112);
  __Pyx_GIVEREF(__pyx_tuple__112);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__113 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(6, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__113);
  __Pyx_GIVEREF(__pyx_tuple__113);

  /* "(tree fragment)":4
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.curr,self.head,self.ocon cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__114 = PyTuple_Pack(1, __pyx_kp_s_self_curr_self_head_self_ocon_ca); if (unlikely(!__pyx_tuple__114)) __PYX_ERR(6, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__114);
  __Pyx_GIVEREF(__pyx_tuple__114);

  /* "setools/policyrep/util.pxi":33
 *     """
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */
  __pyx_tuple__115 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__115);
  __Pyx_GIVEREF(__pyx_tuple__115);
  __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_str, 33, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(0, 33, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":36
 *         return self.name
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         if not spec:
 *             return self.name
 */
  __pyx_tuple__117 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_spec); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__117);
  __Pyx_GIVEREF(__pyx_tuple__117);
  __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_format, 36, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(0, 36, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":42
 *             return super(PolicyEnum, self).__format__(spec)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 */
  __pyx_tuple__119 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_other); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(0, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__119);
  __Pyx_GIVEREF(__pyx_tuple__119);
  __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_eq, 42, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(0, 42, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":45
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */
  __pyx_tuple__121 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__121);
  __Pyx_GIVEREF(__pyx_tuple__121);
  __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_hash, 45, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(0, 45, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":49
 * 
 *     @classmethod
 *     def lookup(cls, value):             # <<<<<<<<<<<<<<
 *         """Look up an enumeration by name or value."""
 * 
 */
  __pyx_tuple__123 = PyTuple_Pack(2, __pyx_n_s_cls, __pyx_n_s_value); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__123);
  __Pyx_GIVEREF(__pyx_tuple__123);
  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_lookup, 49, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(0, 49, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":70
 *     """
 * 
 *     def __init__(self, default_factory, *args):             # <<<<<<<<<<<<<<
 *         self.default_factory = default_factory
 *         super().__init__(args)
 */
  __pyx_tuple__125 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_default_factory, __pyx_n_s_args); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__125);
  __Pyx_GIVEREF(__pyx_tuple__125);
  __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_init, 70, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(0, 70, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":74
 *         super().__init__(args)
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         try:
 *             return super().__getitem__(key)
 */
  __pyx_tuple__127 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__127);
  __Pyx_GIVEREF(__pyx_tuple__127);
  __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_getitem, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(0, 74, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":80
 *             return self.__missing__(key)
 * 
 *     def __missing__(self, key):             # <<<<<<<<<<<<<<
 *         if self.default_factory is None:
 *             raise KeyError(key)
 */
  __pyx_tuple__129 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_defaultvalue); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(0, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__129);
  __Pyx_GIVEREF(__pyx_tuple__129);
  __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_missing, 80, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(0, 80, __pyx_L1_error)

  /* "setools/policyrep/util.pxi":235
 * 
 * 
 * def lookup_boolean_name_sub(name):             # <<<<<<<<<<<<<<
 *     """
 *     Read the /etc/selinux/TYPE/booleans.subs_dist file looking
 */
  __pyx_tuple__131 = PyTuple_Pack(3, __pyx_n_s_name, __pyx_n_s_name_3, __pyx_n_s_new_name); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__131);
  __Pyx_GIVEREF(__pyx_tuple__131);
  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_util_pxi, __pyx_n_s_lookup_boolean_name_sub, 235, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 235, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":24
 * # Typing
 * #
 * AnyConstraint = TypeVar("AnyConstraint", bound=BaseConstraint)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__137 = PyTuple_Pack(1, __pyx_n_u_AnyConstraint); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(2, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__137);
  __Pyx_GIVEREF(__pyx_tuple__137);

  /* "setools/policyrep/default.pxi":46
 * 
 *     @classmethod
 *     def from_default_range(cls, range_):             # <<<<<<<<<<<<<<
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 */
  __pyx_tuple__138 = PyTuple_Pack(4, __pyx_n_s_cls, __pyx_n_s_range_2, __pyx_n_s_default_map, __pyx_n_s_e); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(9, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__138);
  __Pyx_GIVEREF(__pyx_tuple__138);
  __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_default_pxi, __pyx_n_s_from_default_range, 46, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(9, 46, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":70
 * 
 *     @classmethod
 *     def from_default_range(cls, range_):             # <<<<<<<<<<<<<<
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 */
  __pyx_tuple__140 = PyTuple_Pack(5, __pyx_n_s_cls, __pyx_n_s_range_2, __pyx_n_s_default_map, __pyx_n_s_value, __pyx_n_s_e); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(9, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__140);
  __Pyx_GIVEREF(__pyx_tuple__140);
  __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_setools_policyrep_default_pxi, __pyx_n_s_from_default_range, 70, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(9, 70, __pyx_L1_error)

  /* "setools/policyrep/initsid.pxi":25
 * #
 * # Binary policy does not contain the SID names
 * SELINUX_SIDNAMES = ("undefined", "kernel", "security", "unlabeled", "fs", "file", "file_labels",             # <<<<<<<<<<<<<<
 *     "init", "any_socket", "port", "netif", "netmsg", "node", "igmp_packet", "icmp_socket",
 *     "tcp_socket", "sysctl_modprobe", "sysctl", "sysctl_fs", "sysctl_kernel", "sysctl_net",
 */
  __pyx_tuple__143 = PyTuple_Pack(28, __pyx_n_u_undefined, __pyx_n_u_kernel, __pyx_n_u_security, __pyx_n_u_unlabeled, __pyx_n_u_fs, __pyx_n_u_file, __pyx_n_u_file_labels, __pyx_n_u_init_2, __pyx_n_u_any_socket, __pyx_n_u_port, __pyx_n_u_netif, __pyx_n_u_netmsg, __pyx_n_u_node, __pyx_n_u_igmp_packet, __pyx_n_u_icmp_socket, __pyx_n_u_tcp_socket, __pyx_n_u_sysctl_modprobe, __pyx_n_u_sysctl, __pyx_n_u_sysctl_fs, __pyx_n_u_sysctl_kernel, __pyx_n_u_sysctl_net, __pyx_n_u_sysctl_net_unix, __pyx_n_u_sysctl_vm, __pyx_n_u_sysctl_dev, __pyx_n_u_kmod, __pyx_n_u_policy, __pyx_n_u_scmp_packet, __pyx_n_u_devnull); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(11, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__143);
  __Pyx_GIVEREF(__pyx_tuple__143);

  /* "setools/policyrep/initsid.pxi":31
 * 
 * 
 * XEN_SIDNAMES = ("xen", "dom0", "domxen", "domio", "unlabeled", "security", "irq", "iomem", "ioport",             # <<<<<<<<<<<<<<
 *     "device", "domU", "domDM")
 * 
 */
  __pyx_tuple__144 = PyTuple_Pack(12, __pyx_n_u_xen, __pyx_n_u_dom0, __pyx_n_u_domxen, __pyx_n_u_domio, __pyx_n_u_unlabeled, __pyx_n_u_security, __pyx_n_u_irq, __pyx_n_u_iomem, __pyx_n_u_ioport, __pyx_n_u_device, __pyx_n_u_domU, __pyx_n_u_domDM); if (unlikely(!__pyx_tuple__144)) __PYX_ERR(11, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__144);
  __Pyx_GIVEREF(__pyx_tuple__144);

  /* "setools/policyrep/terule.pxi":25
 * # Typing
 * #
 * AnyTERule = TypeVar("AnyTERule", bound=BaseTERule)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_tuple__145 = PyTuple_Pack(1, __pyx_n_u_AnyTERule); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(19, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__145);
  __Pyx_GIVEREF(__pyx_tuple__145);

  /* "setools/policyrep/typeattr.pxi":30
 * # Typing
 * #
 * TypeOrAttr = TypeVar("TypeOrAttr", bound=BaseType)             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __pyx_tuple__146 = PyTuple_Pack(1, __pyx_n_u_TypeOrAttr); if (unlikely(!__pyx_tuple__146)) __PYX_ERR(20, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__146);
  __Pyx_GIVEREF(__pyx_tuple__146);

  /* "(tree fragment)":1
 * def __pyx_unpickle_Boolean(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_tuple__147 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__147);
  __Pyx_GIVEREF(__pyx_tuple__147);
  __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Boolean, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__149 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__149);
  __Pyx_GIVEREF(__pyx_tuple__149);
  __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Conditional, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__151 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__151);
  __Pyx_GIVEREF(__pyx_tuple__151);
  __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ConditionalOperat, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__153 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__153);
  __Pyx_GIVEREF(__pyx_tuple__153);
  __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Bounds, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__155 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__155);
  __Pyx_GIVEREF(__pyx_tuple__155);
  __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_BaseConstraint, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__157 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__157);
  __Pyx_GIVEREF(__pyx_tuple__157);
  __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Constraint, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__159 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__159)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__159);
  __Pyx_GIVEREF(__pyx_tuple__159);
  __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Validatetrans, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__161 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__161)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__161);
  __Pyx_GIVEREF(__pyx_tuple__161);
  __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ConstraintExpress, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__163 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__163);
  __Pyx_GIVEREF(__pyx_tuple__163);
  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ConstraintExprNod, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__165 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__165);
  __Pyx_GIVEREF(__pyx_tuple__165);
  __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Context, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__167 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__167);
  __Pyx_GIVEREF(__pyx_tuple__167);
  __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Default, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__169 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__169);
  __Pyx_GIVEREF(__pyx_tuple__169);
  __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_DefaultRange, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__171 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__171);
  __Pyx_GIVEREF(__pyx_tuple__171);
  __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_FSUse, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__173 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__173);
  __Pyx_GIVEREF(__pyx_tuple__173);
  __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_GenfsFiletype, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__175 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__175);
  __Pyx_GIVEREF(__pyx_tuple__175);
  __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Genfscon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__177 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__177)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__177);
  __Pyx_GIVEREF(__pyx_tuple__177);
  __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_InitialSID, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__179 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__179)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__179);
  __Pyx_GIVEREF(__pyx_tuple__179);
  __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Category, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__181 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__181);
  __Pyx_GIVEREF(__pyx_tuple__181);
  __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Sensitivity, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__183 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__183);
  __Pyx_GIVEREF(__pyx_tuple__183);
  __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_BaseMLSLevel, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__185 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__185)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__185);
  __Pyx_GIVEREF(__pyx_tuple__185);
  __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_LevelDecl, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__187 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__187);
  __Pyx_GIVEREF(__pyx_tuple__187);
  __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Level, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__189 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__189);
  __Pyx_GIVEREF(__pyx_tuple__189);
  __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Range, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__191 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__191)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__191);
  __Pyx_GIVEREF(__pyx_tuple__191);
  __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_MLSRule, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__193 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__193)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__193);
  __Pyx_GIVEREF(__pyx_tuple__193);
  __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Ibendportcon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__195 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__195);
  __Pyx_GIVEREF(__pyx_tuple__195);
  __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Ibpkeycon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__197 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__197)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__197);
  __Pyx_GIVEREF(__pyx_tuple__197);
  __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Netifcon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__199 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__199)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__199);
  __Pyx_GIVEREF(__pyx_tuple__199);
  __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nodecon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__201 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__201)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__201);
  __Pyx_GIVEREF(__pyx_tuple__201);
  __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Portcon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__203 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__203)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__203);
  __Pyx_GIVEREF(__pyx_tuple__203);
  __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__203, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Common, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__205 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__205);
  __Pyx_GIVEREF(__pyx_tuple__205);
  __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ObjClass, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__207 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__207);
  __Pyx_GIVEREF(__pyx_tuple__207);
  __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PermissionVectorI, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__209 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__209)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__209);
  __Pyx_GIVEREF(__pyx_tuple__209);
  __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__209, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PolicyObject, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__211 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__211)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__211);
  __Pyx_GIVEREF(__pyx_tuple__211);
  __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__211, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PolicySymbol, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__213 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__213);
  __Pyx_GIVEREF(__pyx_tuple__213);
  __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Ocontext, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__215 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__215);
  __Pyx_GIVEREF(__pyx_tuple__215);
  __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PolicyIterator, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__217 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__217);
  __Pyx_GIVEREF(__pyx_tuple__217);
  __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PolicyCapability, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__219 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__219);
  __Pyx_GIVEREF(__pyx_tuple__219);
  __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__219, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RoleAllow, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__221 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__221)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__221);
  __Pyx_GIVEREF(__pyx_tuple__221);
  __pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__221, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RoleTransition, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__223 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__223);
  __Pyx_GIVEREF(__pyx_tuple__223);
  __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Role, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__225 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__225)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__225);
  __Pyx_GIVEREF(__pyx_tuple__225);
  __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__225, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PolicyRule, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__227 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__227)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__227);
  __Pyx_GIVEREF(__pyx_tuple__227);
  __pyx_codeobj__228 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__227, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_BaseTERule, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__228)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__229 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__229)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__229);
  __Pyx_GIVEREF(__pyx_tuple__229);
  __pyx_codeobj__230 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__229, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AVRule, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__230)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__231 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__231)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__231);
  __Pyx_GIVEREF(__pyx_tuple__231);
  __pyx_codeobj__232 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__231, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_IoctlSet, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__233 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__233)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__233);
  __Pyx_GIVEREF(__pyx_tuple__233);
  __pyx_codeobj__234 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__233, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AVRuleXperm, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__234)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__235 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__235)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__235);
  __Pyx_GIVEREF(__pyx_tuple__235);
  __pyx_codeobj__236 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__235, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_TERule, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__237 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__237)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__237);
  __Pyx_GIVEREF(__pyx_tuple__237);
  __pyx_codeobj__238 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__237, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_FileNameTERule, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__238)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__239 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__239)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__239);
  __Pyx_GIVEREF(__pyx_tuple__239);
  __pyx_codeobj__240 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__239, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_BaseType, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__240)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__241 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__241);
  __Pyx_GIVEREF(__pyx_tuple__241);
  __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Type, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__243 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__243)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__243);
  __Pyx_GIVEREF(__pyx_tuple__243);
  __pyx_codeobj__244 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_TypeAttribute, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__245 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__245)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__245);
  __Pyx_GIVEREF(__pyx_tuple__245);
  __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__245, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_User, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__247 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__247);
  __Pyx_GIVEREF(__pyx_tuple__247);
  __pyx_codeobj__248 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__247, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Devicetreecon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__248)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__249 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__249);
  __Pyx_GIVEREF(__pyx_tuple__249);
  __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Iomemcon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__251 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__251)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__251);
  __Pyx_GIVEREF(__pyx_tuple__251);
  __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__251, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Ioportcon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__253 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__253)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__253);
  __Pyx_GIVEREF(__pyx_tuple__253);
  __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__253, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Pcidevicecon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(6, 1, __pyx_L1_error)
  __pyx_tuple__255 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__255)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__255);
  __Pyx_GIVEREF(__pyx_tuple__255);
  __pyx_codeobj__256 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__255, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Pirqcon, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__256)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  __pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyDict_Type_setdefault.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyList_Type_pop.type = (PyObject*)&PyList_Type;
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(23, 1, __pyx_L1_error);
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_25291058 = PyInt_FromLong(25291058L); if (unlikely(!__pyx_int_25291058)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_26029694 = PyInt_FromLong(26029694L); if (unlikely(!__pyx_int_26029694)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_46041621 = PyInt_FromLong(46041621L); if (unlikely(!__pyx_int_46041621)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_47039003 = PyInt_FromLong(47039003L); if (unlikely(!__pyx_int_47039003)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_48073796 = PyInt_FromLong(48073796L); if (unlikely(!__pyx_int_48073796)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_58809211 = PyInt_FromLong(58809211L); if (unlikely(!__pyx_int_58809211)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_60418571 = PyInt_FromLong(60418571L); if (unlikely(!__pyx_int_60418571)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_73097080 = PyInt_FromLong(73097080L); if (unlikely(!__pyx_int_73097080)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_78114951 = PyInt_FromLong(78114951L); if (unlikely(!__pyx_int_78114951)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_82942606 = PyInt_FromLong(82942606L); if (unlikely(!__pyx_int_82942606)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_98277146 = PyInt_FromLong(98277146L); if (unlikely(!__pyx_int_98277146)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_105072095 = PyInt_FromLong(105072095L); if (unlikely(!__pyx_int_105072095)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_106968687 = PyInt_FromLong(106968687L); if (unlikely(!__pyx_int_106968687)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_108357528 = PyInt_FromLong(108357528L); if (unlikely(!__pyx_int_108357528)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_108427564 = PyInt_FromLong(108427564L); if (unlikely(!__pyx_int_108427564)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_111450362 = PyInt_FromLong(111450362L); if (unlikely(!__pyx_int_111450362)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_115261232 = PyInt_FromLong(115261232L); if (unlikely(!__pyx_int_115261232)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_126274049 = PyInt_FromLong(126274049L); if (unlikely(!__pyx_int_126274049)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_130137006 = PyInt_FromLong(130137006L); if (unlikely(!__pyx_int_130137006)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_154850352 = PyInt_FromLong(154850352L); if (unlikely(!__pyx_int_154850352)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_159260084 = PyInt_FromLong(159260084L); if (unlikely(!__pyx_int_159260084)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_162073369 = PyInt_FromLong(162073369L); if (unlikely(!__pyx_int_162073369)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_173393463 = PyInt_FromLong(173393463L); if (unlikely(!__pyx_int_173393463)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_173396620 = PyInt_FromLong(173396620L); if (unlikely(!__pyx_int_173396620)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_174173316 = PyInt_FromLong(174173316L); if (unlikely(!__pyx_int_174173316)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_178203351 = PyInt_FromLong(178203351L); if (unlikely(!__pyx_int_178203351)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_178998772 = PyInt_FromLong(178998772L); if (unlikely(!__pyx_int_178998772)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_184567453 = PyInt_FromLong(184567453L); if (unlikely(!__pyx_int_184567453)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_189326887 = PyInt_FromLong(189326887L); if (unlikely(!__pyx_int_189326887)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_193457800 = PyInt_FromLong(193457800L); if (unlikely(!__pyx_int_193457800)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_197552485 = PyInt_FromLong(197552485L); if (unlikely(!__pyx_int_197552485)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_209890851 = PyInt_FromLong(209890851L); if (unlikely(!__pyx_int_209890851)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_211503955 = PyInt_FromLong(211503955L); if (unlikely(!__pyx_int_211503955)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_218389193 = PyInt_FromLong(218389193L); if (unlikely(!__pyx_int_218389193)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_219516990 = PyInt_FromLong(219516990L); if (unlikely(!__pyx_int_219516990)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_222419149 = PyInt_FromLong(222419149L); if (unlikely(!__pyx_int_222419149)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_223953213 = PyInt_FromLong(223953213L); if (unlikely(!__pyx_int_223953213)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_230096861 = PyInt_FromLong(230096861L); if (unlikely(!__pyx_int_230096861)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_231018900 = PyInt_FromLong(231018900L); if (unlikely(!__pyx_int_231018900)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_234029960 = PyInt_FromLong(234029960L); if (unlikely(!__pyx_int_234029960)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_244981763 = PyInt_FromLong(244981763L); if (unlikely(!__pyx_int_244981763)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_249199402 = PyInt_FromLong(249199402L); if (unlikely(!__pyx_int_249199402)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_255013277 = PyInt_FromLong(255013277L); if (unlikely(!__pyx_int_255013277)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_256571573 = PyInt_FromLong(256571573L); if (unlikely(!__pyx_int_256571573)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_261229992 = PyInt_FromLong(261229992L); if (unlikely(!__pyx_int_261229992)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_266321039 = PyInt_FromLong(266321039L); if (unlikely(!__pyx_int_266321039)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_int_267343564 = PyInt_FromLong(267343564L); if (unlikely(!__pyx_int_267343564)) __PYX_ERR(23, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/

static int __Pyx_modinit_global_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __pyx_v_7setools_9policyrep__cond_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__cat_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__sens_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__leveldecl_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__common_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__objclass_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__type_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__typeattr_cache = Py_None; Py_INCREF(Py_None);
  __pyx_v_7setools_9policyrep__user_cache = Py_None; Py_INCREF(Py_None);
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __pyx_vtabptr_7setools_9policyrep_PolicyObject = &__pyx_vtable_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_PolicyObject._eq = (int (*)(struct __pyx_obj_7setools_9policyrep_PolicyObject *, struct __pyx_obj_7setools_9policyrep_PolicyObject *))__pyx_f_7setools_9policyrep_12PolicyObject__eq;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PolicyObject) < 0) __PYX_ERR(4, 24, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PolicyObject.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PolicyObject.tp_dictoffset && __pyx_type_7setools_9policyrep_PolicyObject.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PolicyObject.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PolicyObject.tp_dict, __pyx_vtabptr_7setools_9policyrep_PolicyObject) < 0) __PYX_ERR(4, 24, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PolicyObject, (PyObject *)&__pyx_type_7setools_9policyrep_PolicyObject) < 0) __PYX_ERR(4, 24, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PolicyObject) < 0) __PYX_ERR(4, 24, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PolicyObject = &__pyx_type_7setools_9policyrep_PolicyObject;
  __pyx_vtabptr_7setools_9policyrep_PolicySymbol = &__pyx_vtable_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_PolicySymbol.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_type_7setools_9policyrep_PolicySymbol.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PolicySymbol) < 0) __PYX_ERR(4, 83, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PolicySymbol.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PolicySymbol.tp_dictoffset && __pyx_type_7setools_9policyrep_PolicySymbol.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PolicySymbol.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PolicySymbol.tp_dict, __pyx_vtabptr_7setools_9policyrep_PolicySymbol) < 0) __PYX_ERR(4, 83, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PolicySymbol, (PyObject *)&__pyx_type_7setools_9policyrep_PolicySymbol) < 0) __PYX_ERR(4, 83, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PolicySymbol) < 0) __PYX_ERR(4, 83, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PolicySymbol = &__pyx_type_7setools_9policyrep_PolicySymbol;
  __pyx_vtabptr_7setools_9policyrep_Boolean = &__pyx_vtable_7setools_9policyrep_Boolean;
  __pyx_vtable_7setools_9policyrep_Boolean.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Boolean.factory = (struct __pyx_obj_7setools_9policyrep_Boolean *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_bool_datum_t *))__pyx_f_7setools_9policyrep_7Boolean_factory;
  __pyx_type_7setools_9policyrep_Boolean.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Boolean) < 0) __PYX_ERR(1, 28, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Boolean.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Boolean.tp_dictoffset && __pyx_type_7setools_9policyrep_Boolean.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Boolean.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Boolean.tp_dict, __pyx_vtabptr_7setools_9policyrep_Boolean) < 0) __PYX_ERR(1, 28, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Boolean, (PyObject *)&__pyx_type_7setools_9policyrep_Boolean) < 0) __PYX_ERR(1, 28, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Boolean) < 0) __PYX_ERR(1, 28, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Boolean = &__pyx_type_7setools_9policyrep_Boolean;
  __pyx_vtabptr_7setools_9policyrep_Conditional = &__pyx_vtable_7setools_9policyrep_Conditional;
  __pyx_vtable_7setools_9policyrep_Conditional.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Conditional.factory = (struct __pyx_obj_7setools_9policyrep_Conditional *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *))__pyx_f_7setools_9policyrep_11Conditional_factory;
  __pyx_type_7setools_9policyrep_Conditional.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Conditional) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Conditional.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Conditional.tp_dictoffset && __pyx_type_7setools_9policyrep_Conditional.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Conditional.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Conditional.tp_dict, __pyx_vtabptr_7setools_9policyrep_Conditional) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Conditional, (PyObject *)&__pyx_type_7setools_9policyrep_Conditional) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Conditional) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Conditional = &__pyx_type_7setools_9policyrep_Conditional;
  __pyx_vtabptr_7setools_9policyrep_ConditionalOperator = &__pyx_vtable_7setools_9policyrep_ConditionalOperator;
  __pyx_vtable_7setools_9policyrep_ConditionalOperator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_ConditionalOperator.factory = (struct __pyx_obj_7setools_9policyrep_ConditionalOperator *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *))__pyx_f_7setools_9policyrep_19ConditionalOperator_factory;
  __pyx_type_7setools_9policyrep_ConditionalOperator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ConditionalOperator) < 0) __PYX_ERR(1, 225, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ConditionalOperator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ConditionalOperator.tp_dictoffset && __pyx_type_7setools_9policyrep_ConditionalOperator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ConditionalOperator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ConditionalOperator.tp_dict, __pyx_vtabptr_7setools_9policyrep_ConditionalOperator) < 0) __PYX_ERR(1, 225, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConditionalOperator, (PyObject *)&__pyx_type_7setools_9policyrep_ConditionalOperator) < 0) __PYX_ERR(1, 225, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ConditionalOperator) < 0) __PYX_ERR(1, 225, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ConditionalOperator = &__pyx_type_7setools_9policyrep_ConditionalOperator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PolicyIterator) < 0) __PYX_ERR(4, 103, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PolicyIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PolicyIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_PolicyIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PolicyIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PolicyIterator, (PyObject *)&__pyx_type_7setools_9policyrep_PolicyIterator) < 0) __PYX_ERR(4, 103, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PolicyIterator) < 0) __PYX_ERR(4, 103, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PolicyIterator = &__pyx_type_7setools_9policyrep_PolicyIterator;
  __pyx_vtabptr_7setools_9policyrep_HashtabIterator = &__pyx_vtable_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_HashtabIterator._next_bucket = (void (*)(struct __pyx_obj_7setools_9policyrep_HashtabIterator *))__pyx_f_7setools_9policyrep_15HashtabIterator__next_bucket;
  __pyx_vtable_7setools_9policyrep_HashtabIterator._next_node = (void (*)(struct __pyx_obj_7setools_9policyrep_HashtabIterator *))__pyx_f_7setools_9policyrep_15HashtabIterator__next_node;
  __pyx_type_7setools_9policyrep_HashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_HashtabIterator) < 0) __PYX_ERR(4, 180, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_HashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_HashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_HashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_HashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_HashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_HashtabIterator) < 0) __PYX_ERR(4, 180, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_HashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_HashtabIterator) < 0) __PYX_ERR(4, 180, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_HashtabIterator) < 0) __PYX_ERR(4, 180, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_HashtabIterator = &__pyx_type_7setools_9policyrep_HashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_BooleanHashtabIterator = &__pyx_vtable_7setools_9policyrep_BooleanHashtabIterator;
  __pyx_vtable_7setools_9policyrep_BooleanHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_BooleanHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_22BooleanHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_BooleanHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_BooleanHashtabIterator) < 0) __PYX_ERR(1, 267, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_BooleanHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_BooleanHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_BooleanHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_BooleanHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_BooleanHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_BooleanHashtabIterator) < 0) __PYX_ERR(1, 267, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BooleanHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_BooleanHashtabIterator) < 0) __PYX_ERR(1, 267, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_BooleanHashtabIterator) < 0) __PYX_ERR(1, 267, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_BooleanHashtabIterator = &__pyx_type_7setools_9policyrep_BooleanHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_ConditionalIterator = &__pyx_vtable_7setools_9policyrep_ConditionalIterator;
  __pyx_vtable_7setools_9policyrep_ConditionalIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_node_t *))__pyx_f_7setools_9policyrep_19ConditionalIterator_factory;
  __pyx_type_7setools_9policyrep_ConditionalIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ConditionalIterator) < 0) __PYX_ERR(1, 285, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ConditionalIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ConditionalIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_ConditionalIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ConditionalIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ConditionalIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_ConditionalIterator) < 0) __PYX_ERR(1, 285, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConditionalIterator, (PyObject *)&__pyx_type_7setools_9policyrep_ConditionalIterator) < 0) __PYX_ERR(1, 285, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ConditionalIterator) < 0) __PYX_ERR(1, 285, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ConditionalIterator = &__pyx_type_7setools_9policyrep_ConditionalIterator;
  __pyx_vtabptr_7setools_9policyrep_ConditionalExprIterator = &__pyx_vtable_7setools_9policyrep_ConditionalExprIterator;
  __pyx_vtable_7setools_9policyrep_ConditionalExprIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_expr_t *))__pyx_f_7setools_9policyrep_23ConditionalExprIterator_factory;
  __pyx_type_7setools_9policyrep_ConditionalExprIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ConditionalExprIterator) < 0) __PYX_ERR(1, 327, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ConditionalExprIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ConditionalExprIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_ConditionalExprIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ConditionalExprIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ConditionalExprIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_ConditionalExprIterator) < 0) __PYX_ERR(1, 327, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConditionalExprIterator, (PyObject *)&__pyx_type_7setools_9policyrep_ConditionalExprIterator) < 0) __PYX_ERR(1, 327, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ConditionalExprIterator) < 0) __PYX_ERR(1, 327, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ConditionalExprIterator = &__pyx_type_7setools_9policyrep_ConditionalExprIterator;
  __pyx_vtabptr_7setools_9policyrep_Bounds = &__pyx_vtable_7setools_9policyrep_Bounds;
  __pyx_vtable_7setools_9policyrep_Bounds.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Bounds.factory = (struct __pyx_obj_7setools_9policyrep_Bounds *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_6Bounds_factory;
  __pyx_type_7setools_9policyrep_Bounds.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Bounds) < 0) __PYX_ERR(7, 32, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Bounds.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Bounds.tp_dictoffset && __pyx_type_7setools_9policyrep_Bounds.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Bounds.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Bounds.tp_dict, __pyx_vtabptr_7setools_9policyrep_Bounds) < 0) __PYX_ERR(7, 32, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Bounds, (PyObject *)&__pyx_type_7setools_9policyrep_Bounds) < 0) __PYX_ERR(7, 32, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Bounds) < 0) __PYX_ERR(7, 32, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Bounds = &__pyx_type_7setools_9policyrep_Bounds;
  __pyx_vtabptr_7setools_9policyrep_TypeboundsIterator = &__pyx_vtable_7setools_9policyrep_TypeboundsIterator;
  __pyx_vtable_7setools_9policyrep_TypeboundsIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeboundsIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_18TypeboundsIterator_factory;
  __pyx_type_7setools_9policyrep_TypeboundsIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TypeboundsIterator) < 0) __PYX_ERR(7, 71, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TypeboundsIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TypeboundsIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_TypeboundsIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TypeboundsIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TypeboundsIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_TypeboundsIterator) < 0) __PYX_ERR(7, 71, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TypeboundsIterator, (PyObject *)&__pyx_type_7setools_9policyrep_TypeboundsIterator) < 0) __PYX_ERR(7, 71, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TypeboundsIterator) < 0) __PYX_ERR(7, 71, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TypeboundsIterator = &__pyx_type_7setools_9policyrep_TypeboundsIterator;
  __pyx_vtabptr_7setools_9policyrep_BaseConstraint = &__pyx_vtable_7setools_9policyrep_BaseConstraint;
  __pyx_vtable_7setools_9policyrep_BaseConstraint.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_type_7setools_9policyrep_BaseConstraint.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_BaseConstraint) < 0) __PYX_ERR(2, 40, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_BaseConstraint.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_BaseConstraint.tp_dictoffset && __pyx_type_7setools_9policyrep_BaseConstraint.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_BaseConstraint.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_BaseConstraint.tp_dict, __pyx_vtabptr_7setools_9policyrep_BaseConstraint) < 0) __PYX_ERR(2, 40, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseConstraint, (PyObject *)&__pyx_type_7setools_9policyrep_BaseConstraint) < 0) __PYX_ERR(2, 40, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_BaseConstraint) < 0) __PYX_ERR(2, 40, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_BaseConstraint = &__pyx_type_7setools_9policyrep_BaseConstraint;
  __pyx_vtabptr_7setools_9policyrep_Constraint = &__pyx_vtable_7setools_9policyrep_Constraint;
  __pyx_vtable_7setools_9policyrep_Constraint.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseConstraint;
  __pyx_vtable_7setools_9policyrep_Constraint.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *))__pyx_f_7setools_9policyrep_10Constraint_factory;
  __pyx_type_7setools_9policyrep_Constraint.tp_base = __pyx_ptype_7setools_9policyrep_BaseConstraint;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Constraint) < 0) __PYX_ERR(2, 54, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Constraint.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Constraint.tp_dictoffset && __pyx_type_7setools_9policyrep_Constraint.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Constraint.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Constraint.tp_dict, __pyx_vtabptr_7setools_9policyrep_Constraint) < 0) __PYX_ERR(2, 54, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Constraint, (PyObject *)&__pyx_type_7setools_9policyrep_Constraint) < 0) __PYX_ERR(2, 54, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Constraint) < 0) __PYX_ERR(2, 54, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Constraint = &__pyx_type_7setools_9policyrep_Constraint;
  __pyx_vtabptr_7setools_9policyrep_Validatetrans = &__pyx_vtable_7setools_9policyrep_Validatetrans;
  __pyx_vtable_7setools_9policyrep_Validatetrans.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseConstraint;
  __pyx_vtable_7setools_9policyrep_Validatetrans.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *))__pyx_f_7setools_9policyrep_13Validatetrans_factory;
  __pyx_type_7setools_9policyrep_Validatetrans.tp_base = __pyx_ptype_7setools_9policyrep_BaseConstraint;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Validatetrans) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Validatetrans.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Validatetrans.tp_dictoffset && __pyx_type_7setools_9policyrep_Validatetrans.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Validatetrans.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Validatetrans.tp_dict, __pyx_vtabptr_7setools_9policyrep_Validatetrans) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Validatetrans, (PyObject *)&__pyx_type_7setools_9policyrep_Validatetrans) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Validatetrans) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Validatetrans = &__pyx_type_7setools_9policyrep_Validatetrans;
  __pyx_vtabptr_7setools_9policyrep_ConstraintExpression = &__pyx_vtable_7setools_9policyrep_ConstraintExpression;
  __pyx_vtable_7setools_9policyrep_ConstraintExpression.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_ConstraintExpression.factory = (struct __pyx_obj_7setools_9policyrep_ConstraintExpression *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *))__pyx_f_7setools_9policyrep_20ConstraintExpression_factory;
  __pyx_type_7setools_9policyrep_ConstraintExpression.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ConstraintExpression) < 0) __PYX_ERR(2, 107, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ConstraintExpression.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ConstraintExpression.tp_dictoffset && __pyx_type_7setools_9policyrep_ConstraintExpression.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ConstraintExpression.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ConstraintExpression.tp_dict, __pyx_vtabptr_7setools_9policyrep_ConstraintExpression) < 0) __PYX_ERR(2, 107, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConstraintExpression, (PyObject *)&__pyx_type_7setools_9policyrep_ConstraintExpression) < 0) __PYX_ERR(2, 107, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ConstraintExpression) < 0) __PYX_ERR(2, 107, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ConstraintExpression = &__pyx_type_7setools_9policyrep_ConstraintExpression;
  __pyx_vtabptr_7setools_9policyrep_ConstraintExprNode = &__pyx_vtable_7setools_9policyrep_ConstraintExprNode;
  __pyx_vtable_7setools_9policyrep_ConstraintExprNode.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_ConstraintExprNode.factory = (struct __pyx_obj_7setools_9policyrep_ConstraintExprNode *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *))__pyx_f_7setools_9policyrep_18ConstraintExprNode_factory;
  __pyx_type_7setools_9policyrep_ConstraintExprNode.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ConstraintExprNode) < 0) __PYX_ERR(2, 250, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ConstraintExprNode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ConstraintExprNode.tp_dictoffset && __pyx_type_7setools_9policyrep_ConstraintExprNode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ConstraintExprNode.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ConstraintExprNode.tp_dict, __pyx_vtabptr_7setools_9policyrep_ConstraintExprNode) < 0) __PYX_ERR(2, 250, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConstraintExprNode, (PyObject *)&__pyx_type_7setools_9policyrep_ConstraintExprNode) < 0) __PYX_ERR(2, 250, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ConstraintExprNode) < 0) __PYX_ERR(2, 250, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ConstraintExprNode = &__pyx_type_7setools_9policyrep_ConstraintExprNode;
  __pyx_vtabptr_7setools_9policyrep_ConstraintIterator = &__pyx_vtable_7setools_9policyrep_ConstraintIterator;
  __pyx_vtable_7setools_9policyrep_ConstraintIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *))__pyx_f_7setools_9policyrep_18ConstraintIterator_factory;
  __pyx_type_7setools_9policyrep_ConstraintIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ConstraintIterator) < 0) __PYX_ERR(2, 422, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ConstraintIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ConstraintIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_ConstraintIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ConstraintIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ConstraintIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_ConstraintIterator) < 0) __PYX_ERR(2, 422, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConstraintIterator, (PyObject *)&__pyx_type_7setools_9policyrep_ConstraintIterator) < 0) __PYX_ERR(2, 422, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ConstraintIterator) < 0) __PYX_ERR(2, 422, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ConstraintIterator = &__pyx_type_7setools_9policyrep_ConstraintIterator;
  __pyx_vtabptr_7setools_9policyrep_ValidatetransIterator = &__pyx_vtable_7setools_9policyrep_ValidatetransIterator;
  __pyx_vtable_7setools_9policyrep_ValidatetransIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_ConstraintIterator;
  __pyx_vtable_7setools_9policyrep_ValidatetransIterator.__pyx_base.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, constraint_node_t *))__pyx_f_7setools_9policyrep_21ValidatetransIterator_factory;
  __pyx_type_7setools_9policyrep_ValidatetransIterator.tp_base = __pyx_ptype_7setools_9policyrep_ConstraintIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ValidatetransIterator) < 0) __PYX_ERR(2, 466, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ValidatetransIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ValidatetransIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_ValidatetransIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ValidatetransIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ValidatetransIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_ValidatetransIterator) < 0) __PYX_ERR(2, 466, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ValidatetransIterator, (PyObject *)&__pyx_type_7setools_9policyrep_ValidatetransIterator) < 0) __PYX_ERR(2, 466, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ValidatetransIterator) < 0) __PYX_ERR(2, 466, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ValidatetransIterator = &__pyx_type_7setools_9policyrep_ValidatetransIterator;
  __pyx_vtabptr_7setools_9policyrep_ConstraintExprIterator = &__pyx_vtable_7setools_9policyrep_ConstraintExprIterator;
  __pyx_vtable_7setools_9policyrep_ConstraintExprIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, constraint_expr_t *))__pyx_f_7setools_9policyrep_22ConstraintExprIterator_factory;
  __pyx_type_7setools_9policyrep_ConstraintExprIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ConstraintExprIterator) < 0) __PYX_ERR(2, 489, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ConstraintExprIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ConstraintExprIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_ConstraintExprIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ConstraintExprIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ConstraintExprIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_ConstraintExprIterator) < 0) __PYX_ERR(2, 489, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConstraintExprIterator, (PyObject *)&__pyx_type_7setools_9policyrep_ConstraintExprIterator) < 0) __PYX_ERR(2, 489, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ConstraintExprIterator) < 0) __PYX_ERR(2, 489, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ConstraintExprIterator = &__pyx_type_7setools_9policyrep_ConstraintExprIterator;
  __pyx_vtabptr_7setools_9policyrep_Context = &__pyx_vtable_7setools_9policyrep_Context;
  __pyx_vtable_7setools_9policyrep_Context.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Context.factory = (struct __pyx_obj_7setools_9policyrep_Context *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, context_struct_t *))__pyx_f_7setools_9policyrep_7Context_factory;
  __pyx_type_7setools_9policyrep_Context.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Context) < 0) __PYX_ERR(8, 21, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Context.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Context.tp_dictoffset && __pyx_type_7setools_9policyrep_Context.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Context.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Context.tp_dict, __pyx_vtabptr_7setools_9policyrep_Context) < 0) __PYX_ERR(8, 21, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Context, (PyObject *)&__pyx_type_7setools_9policyrep_Context) < 0) __PYX_ERR(8, 21, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Context) < 0) __PYX_ERR(8, 21, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Context = &__pyx_type_7setools_9policyrep_Context;
  __pyx_vtabptr_7setools_9policyrep_Default = &__pyx_vtable_7setools_9policyrep_Default;
  __pyx_vtable_7setools_9policyrep_Default.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Default.factory = (struct __pyx_obj_7setools_9policyrep_Default *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, PyObject *, PyObject *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_7Default_factory;
  __pyx_type_7setools_9policyrep_Default.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Default) < 0) __PYX_ERR(9, 89, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Default.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Default.tp_dictoffset && __pyx_type_7setools_9policyrep_Default.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Default.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Default.tp_dict, __pyx_vtabptr_7setools_9policyrep_Default) < 0) __PYX_ERR(9, 89, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Default, (PyObject *)&__pyx_type_7setools_9policyrep_Default) < 0) __PYX_ERR(9, 89, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Default) < 0) __PYX_ERR(9, 89, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Default = &__pyx_type_7setools_9policyrep_Default;
  __pyx_vtabptr_7setools_9policyrep_DefaultRange = &__pyx_vtable_7setools_9policyrep_DefaultRange;
  __pyx_vtable_7setools_9policyrep_DefaultRange.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Default;
  __pyx_type_7setools_9policyrep_DefaultRange.tp_base = __pyx_ptype_7setools_9policyrep_Default;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_DefaultRange) < 0) __PYX_ERR(9, 163, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_DefaultRange.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_DefaultRange.tp_dictoffset && __pyx_type_7setools_9policyrep_DefaultRange.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_DefaultRange.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_DefaultRange.tp_dict, __pyx_vtabptr_7setools_9policyrep_DefaultRange) < 0) __PYX_ERR(9, 163, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DefaultRange, (PyObject *)&__pyx_type_7setools_9policyrep_DefaultRange) < 0) __PYX_ERR(9, 163, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_DefaultRange) < 0) __PYX_ERR(9, 163, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_DefaultRange = &__pyx_type_7setools_9policyrep_DefaultRange;
  __pyx_vtabptr_7setools_9policyrep_Ocontext = &__pyx_vtable_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Ocontext.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_type_7setools_9policyrep_Ocontext.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Ocontext) < 0) __PYX_ERR(4, 93, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Ocontext.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Ocontext.tp_dictoffset && __pyx_type_7setools_9policyrep_Ocontext.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Ocontext.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Ocontext.tp_dict, __pyx_vtabptr_7setools_9policyrep_Ocontext) < 0) __PYX_ERR(4, 93, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ocontext, (PyObject *)&__pyx_type_7setools_9policyrep_Ocontext) < 0) __PYX_ERR(4, 93, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Ocontext) < 0) __PYX_ERR(4, 93, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Ocontext = &__pyx_type_7setools_9policyrep_Ocontext;
  __pyx_vtabptr_7setools_9policyrep_FSUse = &__pyx_vtable_7setools_9policyrep_FSUse;
  __pyx_vtable_7setools_9policyrep_FSUse.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_FSUse.factory = (struct __pyx_obj_7setools_9policyrep_FSUse *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_5FSUse_factory;
  __pyx_type_7setools_9policyrep_FSUse.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_FSUse) < 0) __PYX_ERR(10, 35, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_FSUse.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_FSUse.tp_dictoffset && __pyx_type_7setools_9policyrep_FSUse.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_FSUse.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_FSUse.tp_dict, __pyx_vtabptr_7setools_9policyrep_FSUse) < 0) __PYX_ERR(10, 35, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FSUse, (PyObject *)&__pyx_type_7setools_9policyrep_FSUse) < 0) __PYX_ERR(10, 35, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_FSUse) < 0) __PYX_ERR(10, 35, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_FSUse = &__pyx_type_7setools_9policyrep_FSUse;
  __pyx_type_7setools_9policyrep_GenfsFiletype.tp_base = (&PyInt_Type);
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_GenfsFiletype) < 0) __PYX_ERR(10, 64, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_GenfsFiletype.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_GenfsFiletype.tp_dictoffset && __pyx_type_7setools_9policyrep_GenfsFiletype.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_GenfsFiletype.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_GenfsFiletype, (PyObject *)&__pyx_type_7setools_9policyrep_GenfsFiletype) < 0) __PYX_ERR(10, 64, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_GenfsFiletype) < 0) __PYX_ERR(10, 64, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_GenfsFiletype = &__pyx_type_7setools_9policyrep_GenfsFiletype;
  __pyx_vtabptr_7setools_9policyrep_Genfscon = &__pyx_vtable_7setools_9policyrep_Genfscon;
  __pyx_vtable_7setools_9policyrep_Genfscon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Genfscon.factory = (struct __pyx_obj_7setools_9policyrep_Genfscon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *))__pyx_f_7setools_9policyrep_8Genfscon_factory;
  __pyx_type_7setools_9policyrep_Genfscon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Genfscon) < 0) __PYX_ERR(10, 90, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Genfscon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Genfscon.tp_dictoffset && __pyx_type_7setools_9policyrep_Genfscon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Genfscon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Genfscon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Genfscon) < 0) __PYX_ERR(10, 90, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Genfscon, (PyObject *)&__pyx_type_7setools_9policyrep_Genfscon) < 0) __PYX_ERR(10, 90, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Genfscon) < 0) __PYX_ERR(10, 90, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Genfscon = &__pyx_type_7setools_9policyrep_Genfscon;
  __pyx_type_7setools_9policyrep_OcontextIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_OcontextIterator) < 0) __PYX_ERR(4, 246, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_OcontextIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_OcontextIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_OcontextIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_OcontextIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_OcontextIterator, (PyObject *)&__pyx_type_7setools_9policyrep_OcontextIterator) < 0) __PYX_ERR(4, 246, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_OcontextIterator) < 0) __PYX_ERR(4, 246, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_OcontextIterator = &__pyx_type_7setools_9policyrep_OcontextIterator;
  __pyx_vtabptr_7setools_9policyrep_FSUseIterator = &__pyx_vtable_7setools_9policyrep_FSUseIterator;
  __pyx_vtable_7setools_9policyrep_FSUseIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_13FSUseIterator_factory;
  __pyx_type_7setools_9policyrep_FSUseIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_FSUseIterator) < 0) __PYX_ERR(10, 150, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_FSUseIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_FSUseIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_FSUseIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_FSUseIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_FSUseIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_FSUseIterator) < 0) __PYX_ERR(10, 150, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FSUseIterator, (PyObject *)&__pyx_type_7setools_9policyrep_FSUseIterator) < 0) __PYX_ERR(10, 150, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_FSUseIterator) < 0) __PYX_ERR(10, 150, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_FSUseIterator = &__pyx_type_7setools_9policyrep_FSUseIterator;
  __pyx_vtabptr_7setools_9policyrep_GenfsconIterator = &__pyx_vtable_7setools_9policyrep_GenfsconIterator;
  __pyx_vtable_7setools_9policyrep_GenfsconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, genfs_t *))__pyx_f_7setools_9policyrep_16GenfsconIterator_factory;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_GenfsconIterator) < 0) __PYX_ERR(10, 166, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_GenfsconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_GenfsconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_GenfsconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_GenfsconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_GenfsconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_GenfsconIterator) < 0) __PYX_ERR(10, 166, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_GenfsconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_GenfsconIterator) < 0) __PYX_ERR(10, 166, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_GenfsconIterator) < 0) __PYX_ERR(10, 166, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_GenfsconIterator = &__pyx_type_7setools_9policyrep_GenfsconIterator;
  __pyx_vtabptr_7setools_9policyrep_GenfsconOcontextIterator = &__pyx_vtable_7setools_9policyrep_GenfsconOcontextIterator;
  __pyx_vtable_7setools_9policyrep_GenfsconOcontextIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *))__pyx_f_7setools_9policyrep_24GenfsconOcontextIterator_factory;
  __pyx_type_7setools_9policyrep_GenfsconOcontextIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_GenfsconOcontextIterator) < 0) __PYX_ERR(10, 218, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_GenfsconOcontextIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_GenfsconOcontextIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_GenfsconOcontextIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_GenfsconOcontextIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_GenfsconOcontextIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_GenfsconOcontextIterator) < 0) __PYX_ERR(10, 218, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_GenfsconOcontextIterator, (PyObject *)&__pyx_type_7setools_9policyrep_GenfsconOcontextIterator) < 0) __PYX_ERR(10, 218, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_GenfsconOcontextIterator) < 0) __PYX_ERR(10, 218, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_GenfsconOcontextIterator = &__pyx_type_7setools_9policyrep_GenfsconOcontextIterator;
  __pyx_vtabptr_7setools_9policyrep_InitialSID = &__pyx_vtable_7setools_9policyrep_InitialSID;
  __pyx_vtable_7setools_9policyrep_InitialSID.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_InitialSID.factory = (struct __pyx_obj_7setools_9policyrep_InitialSID *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct ocontext *))__pyx_f_7setools_9policyrep_10InitialSID_factory;
  __pyx_type_7setools_9policyrep_InitialSID.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_InitialSID) < 0) __PYX_ERR(11, 38, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_InitialSID.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_InitialSID.tp_dictoffset && __pyx_type_7setools_9policyrep_InitialSID.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_InitialSID.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_InitialSID.tp_dict, __pyx_vtabptr_7setools_9policyrep_InitialSID) < 0) __PYX_ERR(11, 38, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_InitialSID, (PyObject *)&__pyx_type_7setools_9policyrep_InitialSID) < 0) __PYX_ERR(11, 38, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_InitialSID) < 0) __PYX_ERR(11, 38, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_InitialSID = &__pyx_type_7setools_9policyrep_InitialSID;
  __pyx_vtabptr_7setools_9policyrep_InitialSIDIterator = &__pyx_vtable_7setools_9policyrep_InitialSIDIterator;
  __pyx_vtable_7setools_9policyrep_InitialSIDIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_18InitialSIDIterator_factory;
  __pyx_type_7setools_9policyrep_InitialSIDIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_InitialSIDIterator) < 0) __PYX_ERR(11, 70, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_InitialSIDIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_InitialSIDIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_InitialSIDIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_InitialSIDIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_InitialSIDIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_InitialSIDIterator) < 0) __PYX_ERR(11, 70, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_InitialSIDIterator, (PyObject *)&__pyx_type_7setools_9policyrep_InitialSIDIterator) < 0) __PYX_ERR(11, 70, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_InitialSIDIterator) < 0) __PYX_ERR(11, 70, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_InitialSIDIterator = &__pyx_type_7setools_9policyrep_InitialSIDIterator;
  __pyx_vtabptr_7setools_9policyrep_Category = &__pyx_vtable_7setools_9policyrep_Category;
  __pyx_vtable_7setools_9policyrep_Category.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Category.factory = (struct __pyx_obj_7setools_9policyrep_Category *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cat_datum_t *))__pyx_f_7setools_9policyrep_8Category_factory;
  __pyx_type_7setools_9policyrep_Category.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Category) < 0) __PYX_ERR(3, 45, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Category.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Category.tp_dictoffset && __pyx_type_7setools_9policyrep_Category.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Category.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Category.tp_dict, __pyx_vtabptr_7setools_9policyrep_Category) < 0) __PYX_ERR(3, 45, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Category, (PyObject *)&__pyx_type_7setools_9policyrep_Category) < 0) __PYX_ERR(3, 45, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Category) < 0) __PYX_ERR(3, 45, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Category = &__pyx_type_7setools_9policyrep_Category;
  __pyx_vtabptr_7setools_9policyrep_Sensitivity = &__pyx_vtable_7setools_9policyrep_Sensitivity;
  __pyx_vtable_7setools_9policyrep_Sensitivity.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Sensitivity.factory = (struct __pyx_obj_7setools_9policyrep_Sensitivity *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *))__pyx_f_7setools_9policyrep_11Sensitivity_factory;
  __pyx_type_7setools_9policyrep_Sensitivity.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Sensitivity) < 0) __PYX_ERR(3, 99, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Sensitivity.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Sensitivity.tp_dictoffset && __pyx_type_7setools_9policyrep_Sensitivity.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Sensitivity.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Sensitivity.tp_dict, __pyx_vtabptr_7setools_9policyrep_Sensitivity) < 0) __PYX_ERR(3, 99, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Sensitivity, (PyObject *)&__pyx_type_7setools_9policyrep_Sensitivity) < 0) __PYX_ERR(3, 99, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Sensitivity) < 0) __PYX_ERR(3, 99, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Sensitivity = &__pyx_type_7setools_9policyrep_Sensitivity;
  __pyx_vtabptr_7setools_9policyrep_BaseMLSLevel = &__pyx_vtable_7setools_9policyrep_BaseMLSLevel;
  __pyx_vtable_7setools_9policyrep_BaseMLSLevel.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_type_7setools_9policyrep_BaseMLSLevel.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_BaseMLSLevel) < 0) __PYX_ERR(3, 170, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_BaseMLSLevel.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_BaseMLSLevel.tp_dictoffset && __pyx_type_7setools_9policyrep_BaseMLSLevel.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_BaseMLSLevel.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_BaseMLSLevel.tp_dict, __pyx_vtabptr_7setools_9policyrep_BaseMLSLevel) < 0) __PYX_ERR(3, 170, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseMLSLevel, (PyObject *)&__pyx_type_7setools_9policyrep_BaseMLSLevel) < 0) __PYX_ERR(3, 170, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_BaseMLSLevel) < 0) __PYX_ERR(3, 170, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_BaseMLSLevel = &__pyx_type_7setools_9policyrep_BaseMLSLevel;
  __pyx_vtabptr_7setools_9policyrep_LevelDecl = &__pyx_vtable_7setools_9policyrep_LevelDecl;
  __pyx_vtable_7setools_9policyrep_LevelDecl.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseMLSLevel;
  __pyx_vtable_7setools_9policyrep_LevelDecl.factory = (struct __pyx_obj_7setools_9policyrep_LevelDecl *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, level_datum_t *))__pyx_f_7setools_9policyrep_9LevelDecl_factory;
  __pyx_type_7setools_9policyrep_LevelDecl.tp_base = __pyx_ptype_7setools_9policyrep_BaseMLSLevel;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_LevelDecl) < 0) __PYX_ERR(3, 208, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_LevelDecl.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_LevelDecl.tp_dictoffset && __pyx_type_7setools_9policyrep_LevelDecl.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_LevelDecl.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_LevelDecl.tp_dict, __pyx_vtabptr_7setools_9policyrep_LevelDecl) < 0) __PYX_ERR(3, 208, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LevelDecl, (PyObject *)&__pyx_type_7setools_9policyrep_LevelDecl) < 0) __PYX_ERR(3, 208, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_LevelDecl) < 0) __PYX_ERR(3, 208, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_LevelDecl = &__pyx_type_7setools_9policyrep_LevelDecl;
  __pyx_vtabptr_7setools_9policyrep_Level = &__pyx_vtable_7setools_9policyrep_Level;
  __pyx_vtable_7setools_9policyrep_Level.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseMLSLevel;
  __pyx_vtable_7setools_9policyrep_Level.factory = (struct __pyx_obj_7setools_9policyrep_Level *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_level_t *))__pyx_f_7setools_9policyrep_5Level_factory;
  __pyx_vtable_7setools_9policyrep_Level.factory_from_string = (struct __pyx_obj_7setools_9policyrep_Level *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *))__pyx_f_7setools_9policyrep_5Level_factory_from_string;
  __pyx_type_7setools_9policyrep_Level.tp_base = __pyx_ptype_7setools_9policyrep_BaseMLSLevel;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Level) < 0) __PYX_ERR(3, 271, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Level.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Level.tp_dictoffset && __pyx_type_7setools_9policyrep_Level.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Level.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Level.tp_dict, __pyx_vtabptr_7setools_9policyrep_Level) < 0) __PYX_ERR(3, 271, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Level, (PyObject *)&__pyx_type_7setools_9policyrep_Level) < 0) __PYX_ERR(3, 271, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Level) < 0) __PYX_ERR(3, 271, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Level = &__pyx_type_7setools_9policyrep_Level;
  __pyx_vtabptr_7setools_9policyrep_Range = &__pyx_vtable_7setools_9policyrep_Range;
  __pyx_vtable_7setools_9policyrep_Range.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_vtable_7setools_9policyrep_Range.factory = (struct __pyx_obj_7setools_9policyrep_Range *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, mls_range_t *))__pyx_f_7setools_9policyrep_5Range_factory;
  __pyx_vtable_7setools_9policyrep_Range.factory_from_string = (struct __pyx_obj_7setools_9policyrep_Range *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *))__pyx_f_7setools_9policyrep_5Range_factory_from_string;
  __pyx_type_7setools_9policyrep_Range.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Range) < 0) __PYX_ERR(3, 392, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Range.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Range.tp_dictoffset && __pyx_type_7setools_9policyrep_Range.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Range.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Range.tp_dict, __pyx_vtabptr_7setools_9policyrep_Range) < 0) __PYX_ERR(3, 392, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Range, (PyObject *)&__pyx_type_7setools_9policyrep_Range) < 0) __PYX_ERR(3, 392, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Range) < 0) __PYX_ERR(3, 392, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Range = &__pyx_type_7setools_9policyrep_Range;
  __pyx_vtabptr_7setools_9policyrep_CategoryHashtabIterator = &__pyx_vtable_7setools_9policyrep_CategoryHashtabIterator;
  __pyx_vtable_7setools_9policyrep_CategoryHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_CategoryHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_23CategoryHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_CategoryHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_CategoryHashtabIterator) < 0) __PYX_ERR(3, 474, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_CategoryHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_CategoryHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_CategoryHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_CategoryHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_CategoryHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_CategoryHashtabIterator) < 0) __PYX_ERR(3, 474, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CategoryHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_CategoryHashtabIterator) < 0) __PYX_ERR(3, 474, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_CategoryHashtabIterator) < 0) __PYX_ERR(3, 474, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_CategoryHashtabIterator = &__pyx_type_7setools_9policyrep_CategoryHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_SensitivityHashtabIterator = &__pyx_vtable_7setools_9policyrep_SensitivityHashtabIterator;
  __pyx_vtable_7setools_9policyrep_SensitivityHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_SensitivityHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_26SensitivityHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_SensitivityHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_SensitivityHashtabIterator) < 0) __PYX_ERR(3, 531, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_SensitivityHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_SensitivityHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_SensitivityHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_SensitivityHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_SensitivityHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_SensitivityHashtabIterator) < 0) __PYX_ERR(3, 531, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SensitivityHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_SensitivityHashtabIterator) < 0) __PYX_ERR(3, 531, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_SensitivityHashtabIterator) < 0) __PYX_ERR(3, 531, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_SensitivityHashtabIterator = &__pyx_type_7setools_9policyrep_SensitivityHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_LevelDeclHashtabIterator = &__pyx_vtable_7setools_9policyrep_LevelDeclHashtabIterator;
  __pyx_vtable_7setools_9policyrep_LevelDeclHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_LevelDeclHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_24LevelDeclHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator) < 0) __PYX_ERR(3, 588, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_LevelDeclHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_LevelDeclHashtabIterator) < 0) __PYX_ERR(3, 588, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LevelDeclHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator) < 0) __PYX_ERR(3, 588, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator) < 0) __PYX_ERR(3, 588, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_LevelDeclHashtabIterator = &__pyx_type_7setools_9policyrep_LevelDeclHashtabIterator;
  __pyx_type_7setools_9policyrep_EbitmapIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_EbitmapIterator) < 0) __PYX_ERR(4, 123, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_EbitmapIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_EbitmapIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_EbitmapIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_EbitmapIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_EbitmapIterator, (PyObject *)&__pyx_type_7setools_9policyrep_EbitmapIterator) < 0) __PYX_ERR(4, 123, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_EbitmapIterator) < 0) __PYX_ERR(4, 123, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_EbitmapIterator = &__pyx_type_7setools_9policyrep_EbitmapIterator;
  __pyx_vtabptr_7setools_9policyrep_CategoryEbitmapIterator = &__pyx_vtable_7setools_9policyrep_CategoryEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_CategoryEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_23CategoryEbitmapIterator_factory;
  __pyx_type_7setools_9policyrep_CategoryEbitmapIterator.tp_base = __pyx_ptype_7setools_9policyrep_EbitmapIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_CategoryEbitmapIterator) < 0) __PYX_ERR(3, 648, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_CategoryEbitmapIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_CategoryEbitmapIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_CategoryEbitmapIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_CategoryEbitmapIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_CategoryEbitmapIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_CategoryEbitmapIterator) < 0) __PYX_ERR(3, 648, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CategoryEbitmapIterator, (PyObject *)&__pyx_type_7setools_9policyrep_CategoryEbitmapIterator) < 0) __PYX_ERR(3, 648, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_CategoryEbitmapIterator) < 0) __PYX_ERR(3, 648, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_CategoryEbitmapIterator = &__pyx_type_7setools_9policyrep_CategoryEbitmapIterator;
  __pyx_vtabptr_7setools_9policyrep_PolicyRule = &__pyx_vtable_7setools_9policyrep_PolicyRule;
  __pyx_vtable_7setools_9policyrep_PolicyRule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyObject;
  __pyx_type_7setools_9policyrep_PolicyRule.tp_base = __pyx_ptype_7setools_9policyrep_PolicyObject;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PolicyRule) < 0) __PYX_ERR(18, 21, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PolicyRule.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PolicyRule.tp_dictoffset && __pyx_type_7setools_9policyrep_PolicyRule.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PolicyRule.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PolicyRule.tp_dict, __pyx_vtabptr_7setools_9policyrep_PolicyRule) < 0) __PYX_ERR(18, 21, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PolicyRule, (PyObject *)&__pyx_type_7setools_9policyrep_PolicyRule) < 0) __PYX_ERR(18, 21, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PolicyRule) < 0) __PYX_ERR(18, 21, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PolicyRule = &__pyx_type_7setools_9policyrep_PolicyRule;
  __pyx_vtabptr_7setools_9policyrep_MLSRule = &__pyx_vtable_7setools_9policyrep_MLSRule;
  __pyx_vtable_7setools_9policyrep_MLSRule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  __pyx_vtable_7setools_9policyrep_MLSRule.factory = (struct __pyx_obj_7setools_9policyrep_MLSRule *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, range_trans_t *, mls_range_t *))__pyx_f_7setools_9policyrep_7MLSRule_factory;
  __pyx_type_7setools_9policyrep_MLSRule.tp_base = __pyx_ptype_7setools_9policyrep_PolicyRule;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_MLSRule) < 0) __PYX_ERR(12, 29, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_MLSRule.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_MLSRule.tp_dictoffset && __pyx_type_7setools_9policyrep_MLSRule.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_MLSRule.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_MLSRule.tp_dict, __pyx_vtabptr_7setools_9policyrep_MLSRule) < 0) __PYX_ERR(12, 29, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MLSRule, (PyObject *)&__pyx_type_7setools_9policyrep_MLSRule) < 0) __PYX_ERR(12, 29, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_MLSRule) < 0) __PYX_ERR(12, 29, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_MLSRule = &__pyx_type_7setools_9policyrep_MLSRule;
  __pyx_vtabptr_7setools_9policyrep_MLSRuleIterator = &__pyx_vtable_7setools_9policyrep_MLSRuleIterator;
  __pyx_vtable_7setools_9policyrep_MLSRuleIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_MLSRuleIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_15MLSRuleIterator_factory;
  __pyx_type_7setools_9policyrep_MLSRuleIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_MLSRuleIterator) < 0) __PYX_ERR(12, 90, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_MLSRuleIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_MLSRuleIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_MLSRuleIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_MLSRuleIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_MLSRuleIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_MLSRuleIterator) < 0) __PYX_ERR(12, 90, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MLSRuleIterator, (PyObject *)&__pyx_type_7setools_9policyrep_MLSRuleIterator) < 0) __PYX_ERR(12, 90, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_MLSRuleIterator) < 0) __PYX_ERR(12, 90, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_MLSRuleIterator = &__pyx_type_7setools_9policyrep_MLSRuleIterator;
  __pyx_vtabptr_7setools_9policyrep_Ibendportcon = &__pyx_vtable_7setools_9policyrep_Ibendportcon;
  __pyx_vtable_7setools_9policyrep_Ibendportcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Ibendportcon.factory = (struct __pyx_obj_7setools_9policyrep_Ibendportcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_12Ibendportcon_factory;
  __pyx_type_7setools_9policyrep_Ibendportcon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Ibendportcon) < 0) __PYX_ERR(13, 27, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Ibendportcon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Ibendportcon.tp_dictoffset && __pyx_type_7setools_9policyrep_Ibendportcon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Ibendportcon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Ibendportcon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Ibendportcon) < 0) __PYX_ERR(13, 27, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ibendportcon, (PyObject *)&__pyx_type_7setools_9policyrep_Ibendportcon) < 0) __PYX_ERR(13, 27, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Ibendportcon) < 0) __PYX_ERR(13, 27, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Ibendportcon = &__pyx_type_7setools_9policyrep_Ibendportcon;
  __pyx_vtabptr_7setools_9policyrep_Ibpkeycon = &__pyx_vtable_7setools_9policyrep_Ibpkeycon;
  __pyx_vtable_7setools_9policyrep_Ibpkeycon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Ibpkeycon.factory = (struct __pyx_obj_7setools_9policyrep_Ibpkeycon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_9Ibpkeycon_factory;
  __pyx_type_7setools_9policyrep_Ibpkeycon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Ibpkeycon) < 0) __PYX_ERR(13, 57, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Ibpkeycon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Ibpkeycon.tp_dictoffset && __pyx_type_7setools_9policyrep_Ibpkeycon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Ibpkeycon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Ibpkeycon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Ibpkeycon) < 0) __PYX_ERR(13, 57, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ibpkeycon, (PyObject *)&__pyx_type_7setools_9policyrep_Ibpkeycon) < 0) __PYX_ERR(13, 57, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Ibpkeycon) < 0) __PYX_ERR(13, 57, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Ibpkeycon = &__pyx_type_7setools_9policyrep_Ibpkeycon;
  __pyx_vtabptr_7setools_9policyrep_Netifcon = &__pyx_vtable_7setools_9policyrep_Netifcon;
  __pyx_vtable_7setools_9policyrep_Netifcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Netifcon.factory = (struct __pyx_obj_7setools_9policyrep_Netifcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_8Netifcon_factory;
  __pyx_type_7setools_9policyrep_Netifcon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Netifcon) < 0) __PYX_ERR(13, 119, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Netifcon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Netifcon.tp_dictoffset && __pyx_type_7setools_9policyrep_Netifcon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Netifcon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Netifcon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Netifcon) < 0) __PYX_ERR(13, 119, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Netifcon, (PyObject *)&__pyx_type_7setools_9policyrep_Netifcon) < 0) __PYX_ERR(13, 119, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Netifcon) < 0) __PYX_ERR(13, 119, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Netifcon = &__pyx_type_7setools_9policyrep_Netifcon;
  __pyx_vtabptr_7setools_9policyrep_Nodecon = &__pyx_vtable_7setools_9policyrep_Nodecon;
  __pyx_vtable_7setools_9policyrep_Nodecon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Nodecon.factory = (struct __pyx_obj_7setools_9policyrep_Nodecon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *))__pyx_f_7setools_9policyrep_7Nodecon_factory;
  __pyx_type_7setools_9policyrep_Nodecon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Nodecon) < 0) __PYX_ERR(13, 157, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Nodecon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Nodecon.tp_dictoffset && __pyx_type_7setools_9policyrep_Nodecon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Nodecon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Nodecon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Nodecon) < 0) __PYX_ERR(13, 157, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nodecon, (PyObject *)&__pyx_type_7setools_9policyrep_Nodecon) < 0) __PYX_ERR(13, 157, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Nodecon) < 0) __PYX_ERR(13, 157, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Nodecon = &__pyx_type_7setools_9policyrep_Nodecon;
  __pyx_vtabptr_7setools_9policyrep_Portcon = &__pyx_vtable_7setools_9policyrep_Portcon;
  __pyx_vtable_7setools_9policyrep_Portcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Portcon.factory = (struct __pyx_obj_7setools_9policyrep_Portcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_7Portcon_factory;
  __pyx_type_7setools_9policyrep_Portcon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Portcon) < 0) __PYX_ERR(13, 262, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Portcon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Portcon.tp_dictoffset && __pyx_type_7setools_9policyrep_Portcon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Portcon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Portcon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Portcon) < 0) __PYX_ERR(13, 262, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Portcon, (PyObject *)&__pyx_type_7setools_9policyrep_Portcon) < 0) __PYX_ERR(13, 262, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Portcon) < 0) __PYX_ERR(13, 262, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Portcon = &__pyx_type_7setools_9policyrep_Portcon;
  __pyx_vtabptr_7setools_9policyrep_IbendportconIterator = &__pyx_vtable_7setools_9policyrep_IbendportconIterator;
  __pyx_vtable_7setools_9policyrep_IbendportconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_20IbendportconIterator_factory;
  __pyx_type_7setools_9policyrep_IbendportconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_IbendportconIterator) < 0) __PYX_ERR(13, 300, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_IbendportconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_IbendportconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_IbendportconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_IbendportconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_IbendportconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_IbendportconIterator) < 0) __PYX_ERR(13, 300, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_IbendportconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_IbendportconIterator) < 0) __PYX_ERR(13, 300, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_IbendportconIterator) < 0) __PYX_ERR(13, 300, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_IbendportconIterator = &__pyx_type_7setools_9policyrep_IbendportconIterator;
  __pyx_vtabptr_7setools_9policyrep_IbpkeyconIterator = &__pyx_vtable_7setools_9policyrep_IbpkeyconIterator;
  __pyx_vtable_7setools_9policyrep_IbpkeyconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_17IbpkeyconIterator_factory;
  __pyx_type_7setools_9policyrep_IbpkeyconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_IbpkeyconIterator) < 0) __PYX_ERR(13, 317, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_IbpkeyconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_IbpkeyconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_IbpkeyconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_IbpkeyconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_IbpkeyconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_IbpkeyconIterator) < 0) __PYX_ERR(13, 317, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_IbpkeyconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_IbpkeyconIterator) < 0) __PYX_ERR(13, 317, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_IbpkeyconIterator) < 0) __PYX_ERR(13, 317, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_IbpkeyconIterator = &__pyx_type_7setools_9policyrep_IbpkeyconIterator;
  __pyx_vtabptr_7setools_9policyrep_NetifconIterator = &__pyx_vtable_7setools_9policyrep_NetifconIterator;
  __pyx_vtable_7setools_9policyrep_NetifconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_16NetifconIterator_factory;
  __pyx_type_7setools_9policyrep_NetifconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_NetifconIterator) < 0) __PYX_ERR(13, 334, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_NetifconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_NetifconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_NetifconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_NetifconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_NetifconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_NetifconIterator) < 0) __PYX_ERR(13, 334, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_NetifconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_NetifconIterator) < 0) __PYX_ERR(13, 334, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_NetifconIterator) < 0) __PYX_ERR(13, 334, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_NetifconIterator = &__pyx_type_7setools_9policyrep_NetifconIterator;
  __pyx_vtabptr_7setools_9policyrep_NodeconIterator = &__pyx_vtable_7setools_9policyrep_NodeconIterator;
  __pyx_vtable_7setools_9policyrep_NodeconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *, PyObject *))__pyx_f_7setools_9policyrep_15NodeconIterator_factory;
  __pyx_type_7setools_9policyrep_NodeconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_NodeconIterator) < 0) __PYX_ERR(13, 351, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_NodeconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_NodeconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_NodeconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_NodeconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_NodeconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_NodeconIterator) < 0) __PYX_ERR(13, 351, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_NodeconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_NodeconIterator) < 0) __PYX_ERR(13, 351, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_NodeconIterator) < 0) __PYX_ERR(13, 351, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_NodeconIterator = &__pyx_type_7setools_9policyrep_NodeconIterator;
  __pyx_vtabptr_7setools_9policyrep_PortconIterator = &__pyx_vtable_7setools_9policyrep_PortconIterator;
  __pyx_vtable_7setools_9policyrep_PortconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_15PortconIterator_factory;
  __pyx_type_7setools_9policyrep_PortconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PortconIterator) < 0) __PYX_ERR(13, 371, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PortconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PortconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_PortconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PortconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PortconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_PortconIterator) < 0) __PYX_ERR(13, 371, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PortconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_PortconIterator) < 0) __PYX_ERR(13, 371, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PortconIterator) < 0) __PYX_ERR(13, 371, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PortconIterator = &__pyx_type_7setools_9policyrep_PortconIterator;
  __pyx_vtabptr_7setools_9policyrep_Common = &__pyx_vtable_7setools_9policyrep_Common;
  __pyx_vtable_7setools_9policyrep_Common.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Common.factory = (struct __pyx_obj_7setools_9policyrep_Common *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, common_datum_t *))__pyx_f_7setools_9policyrep_6Common_factory;
  __pyx_type_7setools_9policyrep_Common.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Common) < 0) __PYX_ERR(14, 28, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Common.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Common.tp_dictoffset && __pyx_type_7setools_9policyrep_Common.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Common.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Common.tp_dict, __pyx_vtabptr_7setools_9policyrep_Common) < 0) __PYX_ERR(14, 28, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Common, (PyObject *)&__pyx_type_7setools_9policyrep_Common) < 0) __PYX_ERR(14, 28, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Common) < 0) __PYX_ERR(14, 28, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Common = &__pyx_type_7setools_9policyrep_Common;
  __pyx_vtabptr_7setools_9policyrep_ObjClass = &__pyx_vtable_7setools_9policyrep_ObjClass;
  __pyx_vtable_7setools_9policyrep_ObjClass.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_ObjClass.factory = (struct __pyx_obj_7setools_9policyrep_ObjClass *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, class_datum_t *))__pyx_f_7setools_9policyrep_8ObjClass_factory;
  __pyx_type_7setools_9policyrep_ObjClass.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ObjClass) < 0) __PYX_ERR(14, 81, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ObjClass.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ObjClass.tp_dictoffset && __pyx_type_7setools_9policyrep_ObjClass.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ObjClass.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ObjClass.tp_dict, __pyx_vtabptr_7setools_9policyrep_ObjClass) < 0) __PYX_ERR(14, 81, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ObjClass, (PyObject *)&__pyx_type_7setools_9policyrep_ObjClass) < 0) __PYX_ERR(14, 81, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ObjClass) < 0) __PYX_ERR(14, 81, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ObjClass = &__pyx_type_7setools_9policyrep_ObjClass;
  __pyx_vtabptr_7setools_9policyrep_CommonHashtabIterator = &__pyx_vtable_7setools_9policyrep_CommonHashtabIterator;
  __pyx_vtable_7setools_9policyrep_CommonHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_CommonHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_21CommonHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_CommonHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_CommonHashtabIterator) < 0) __PYX_ERR(14, 223, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_CommonHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_CommonHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_CommonHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_CommonHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_CommonHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_CommonHashtabIterator) < 0) __PYX_ERR(14, 223, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CommonHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_CommonHashtabIterator) < 0) __PYX_ERR(14, 223, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_CommonHashtabIterator) < 0) __PYX_ERR(14, 223, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_CommonHashtabIterator = &__pyx_type_7setools_9policyrep_CommonHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_ObjClassHashtabIterator = &__pyx_vtable_7setools_9policyrep_ObjClassHashtabIterator;
  __pyx_vtable_7setools_9policyrep_ObjClassHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_ObjClassHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_23ObjClassHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_ObjClassHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ObjClassHashtabIterator) < 0) __PYX_ERR(14, 241, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ObjClassHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ObjClassHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_ObjClassHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ObjClassHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ObjClassHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_ObjClassHashtabIterator) < 0) __PYX_ERR(14, 241, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ObjClassHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_ObjClassHashtabIterator) < 0) __PYX_ERR(14, 241, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ObjClassHashtabIterator) < 0) __PYX_ERR(14, 241, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ObjClassHashtabIterator = &__pyx_type_7setools_9policyrep_ObjClassHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_PermissionVectorIterator = &__pyx_vtable_7setools_9policyrep_PermissionVectorIterator;
  __pyx_vtable_7setools_9policyrep_PermissionVectorIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct __pyx_obj_7setools_9policyrep_ObjClass *, uint32_t))__pyx_f_7setools_9policyrep_24PermissionVectorIterator_factory;
  __pyx_type_7setools_9policyrep_PermissionVectorIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PermissionVectorIterator) < 0) __PYX_ERR(14, 259, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PermissionVectorIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PermissionVectorIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_PermissionVectorIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PermissionVectorIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PermissionVectorIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_PermissionVectorIterator) < 0) __PYX_ERR(14, 259, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PermissionVectorIterator, (PyObject *)&__pyx_type_7setools_9policyrep_PermissionVectorIterator) < 0) __PYX_ERR(14, 259, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PermissionVectorIterator) < 0) __PYX_ERR(14, 259, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PermissionVectorIterator = &__pyx_type_7setools_9policyrep_PermissionVectorIterator;
  __pyx_vtabptr_7setools_9policyrep_PolicyCapability = &__pyx_vtable_7setools_9policyrep_PolicyCapability;
  __pyx_vtable_7setools_9policyrep_PolicyCapability.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_PolicyCapability.factory = (struct __pyx_obj_7setools_9policyrep_PolicyCapability *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_16PolicyCapability_factory;
  __pyx_type_7setools_9policyrep_PolicyCapability.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PolicyCapability) < 0) __PYX_ERR(15, 22, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PolicyCapability.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PolicyCapability.tp_dictoffset && __pyx_type_7setools_9policyrep_PolicyCapability.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PolicyCapability.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PolicyCapability.tp_dict, __pyx_vtabptr_7setools_9policyrep_PolicyCapability) < 0) __PYX_ERR(15, 22, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PolicyCapability, (PyObject *)&__pyx_type_7setools_9policyrep_PolicyCapability) < 0) __PYX_ERR(15, 22, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PolicyCapability) < 0) __PYX_ERR(15, 22, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PolicyCapability = &__pyx_type_7setools_9policyrep_PolicyCapability;
  __pyx_vtabptr_7setools_9policyrep_PolicyCapabilityIterator = &__pyx_vtable_7setools_9policyrep_PolicyCapabilityIterator;
  __pyx_vtable_7setools_9policyrep_PolicyCapabilityIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_24PolicyCapabilityIterator_factory;
  __pyx_type_7setools_9policyrep_PolicyCapabilityIterator.tp_base = __pyx_ptype_7setools_9policyrep_EbitmapIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PolicyCapabilityIterator) < 0) __PYX_ERR(15, 48, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PolicyCapabilityIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PolicyCapabilityIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_PolicyCapabilityIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PolicyCapabilityIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PolicyCapabilityIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_PolicyCapabilityIterator) < 0) __PYX_ERR(15, 48, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PolicyCapabilityIterator, (PyObject *)&__pyx_type_7setools_9policyrep_PolicyCapabilityIterator) < 0) __PYX_ERR(15, 48, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PolicyCapabilityIterator) < 0) __PYX_ERR(15, 48, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PolicyCapabilityIterator = &__pyx_type_7setools_9policyrep_PolicyCapabilityIterator;
  __pyx_vtabptr_7setools_9policyrep_RoleAllow = &__pyx_vtable_7setools_9policyrep_RoleAllow;
  __pyx_vtable_7setools_9policyrep_RoleAllow.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  __pyx_vtable_7setools_9policyrep_RoleAllow.factory = (struct __pyx_obj_7setools_9policyrep_RoleAllow *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *))__pyx_f_7setools_9policyrep_9RoleAllow_factory;
  __pyx_type_7setools_9policyrep_RoleAllow.tp_base = __pyx_ptype_7setools_9policyrep_PolicyRule;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_RoleAllow) < 0) __PYX_ERR(16, 38, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_RoleAllow.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_RoleAllow.tp_dictoffset && __pyx_type_7setools_9policyrep_RoleAllow.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_RoleAllow.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_RoleAllow.tp_dict, __pyx_vtabptr_7setools_9policyrep_RoleAllow) < 0) __PYX_ERR(16, 38, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RoleAllow, (PyObject *)&__pyx_type_7setools_9policyrep_RoleAllow) < 0) __PYX_ERR(16, 38, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_RoleAllow) < 0) __PYX_ERR(16, 38, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_RoleAllow = &__pyx_type_7setools_9policyrep_RoleAllow;
  __pyx_vtabptr_7setools_9policyrep_RoleTransition = &__pyx_vtable_7setools_9policyrep_RoleTransition;
  __pyx_vtable_7setools_9policyrep_RoleTransition.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  __pyx_vtable_7setools_9policyrep_RoleTransition.factory = (struct __pyx_obj_7setools_9policyrep_RoleTransition *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *))__pyx_f_7setools_9policyrep_14RoleTransition_factory;
  __pyx_type_7setools_9policyrep_RoleTransition.tp_base = __pyx_ptype_7setools_9policyrep_PolicyRule;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_RoleTransition) < 0) __PYX_ERR(16, 93, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_RoleTransition.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_RoleTransition.tp_dictoffset && __pyx_type_7setools_9policyrep_RoleTransition.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_RoleTransition.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_RoleTransition.tp_dict, __pyx_vtabptr_7setools_9policyrep_RoleTransition) < 0) __PYX_ERR(16, 93, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RoleTransition, (PyObject *)&__pyx_type_7setools_9policyrep_RoleTransition) < 0) __PYX_ERR(16, 93, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_RoleTransition) < 0) __PYX_ERR(16, 93, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_RoleTransition = &__pyx_type_7setools_9policyrep_RoleTransition;
  __pyx_vtabptr_7setools_9policyrep_RoleAllowIterator = &__pyx_vtable_7setools_9policyrep_RoleAllowIterator;
  __pyx_vtable_7setools_9policyrep_RoleAllowIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_allow_t *))__pyx_f_7setools_9policyrep_17RoleAllowIterator_factory;
  __pyx_type_7setools_9policyrep_RoleAllowIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_RoleAllowIterator) < 0) __PYX_ERR(16, 155, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_RoleAllowIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_RoleAllowIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_RoleAllowIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_RoleAllowIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_RoleAllowIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_RoleAllowIterator) < 0) __PYX_ERR(16, 155, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RoleAllowIterator, (PyObject *)&__pyx_type_7setools_9policyrep_RoleAllowIterator) < 0) __PYX_ERR(16, 155, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_RoleAllowIterator) < 0) __PYX_ERR(16, 155, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_RoleAllowIterator = &__pyx_type_7setools_9policyrep_RoleAllowIterator;
  __pyx_vtabptr_7setools_9policyrep_RoleTransitionIterator = &__pyx_vtable_7setools_9policyrep_RoleTransitionIterator;
  __pyx_vtable_7setools_9policyrep_RoleTransitionIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_trans_t *))__pyx_f_7setools_9policyrep_22RoleTransitionIterator_factory;
  __pyx_type_7setools_9policyrep_RoleTransitionIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_RoleTransitionIterator) < 0) __PYX_ERR(16, 197, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_RoleTransitionIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_RoleTransitionIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_RoleTransitionIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_RoleTransitionIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_RoleTransitionIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_RoleTransitionIterator) < 0) __PYX_ERR(16, 197, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RoleTransitionIterator, (PyObject *)&__pyx_type_7setools_9policyrep_RoleTransitionIterator) < 0) __PYX_ERR(16, 197, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_RoleTransitionIterator) < 0) __PYX_ERR(16, 197, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_RoleTransitionIterator = &__pyx_type_7setools_9policyrep_RoleTransitionIterator;
  __pyx_vtabptr_7setools_9policyrep_Role = &__pyx_vtable_7setools_9policyrep_Role;
  __pyx_vtable_7setools_9policyrep_Role.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_Role.factory = (struct __pyx_obj_7setools_9policyrep_Role *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, role_datum_t *))__pyx_f_7setools_9policyrep_4Role_factory;
  __pyx_type_7setools_9policyrep_Role.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Role) < 0) __PYX_ERR(17, 22, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Role.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Role.tp_dictoffset && __pyx_type_7setools_9policyrep_Role.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Role.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Role.tp_dict, __pyx_vtabptr_7setools_9policyrep_Role) < 0) __PYX_ERR(17, 22, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Role, (PyObject *)&__pyx_type_7setools_9policyrep_Role) < 0) __PYX_ERR(17, 22, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Role) < 0) __PYX_ERR(17, 22, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Role = &__pyx_type_7setools_9policyrep_Role;
  __pyx_vtabptr_7setools_9policyrep_RoleHashtabIterator = &__pyx_vtable_7setools_9policyrep_RoleHashtabIterator;
  __pyx_vtable_7setools_9policyrep_RoleHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_RoleHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_19RoleHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_RoleHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_RoleHashtabIterator) < 0) __PYX_ERR(17, 70, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_RoleHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_RoleHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_RoleHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_RoleHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_RoleHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_RoleHashtabIterator) < 0) __PYX_ERR(17, 70, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RoleHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_RoleHashtabIterator) < 0) __PYX_ERR(17, 70, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_RoleHashtabIterator) < 0) __PYX_ERR(17, 70, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_RoleHashtabIterator = &__pyx_type_7setools_9policyrep_RoleHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_RoleEbitmapIterator = &__pyx_vtable_7setools_9policyrep_RoleEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_RoleEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_19RoleEbitmapIterator_factory;
  __pyx_type_7setools_9policyrep_RoleEbitmapIterator.tp_base = __pyx_ptype_7setools_9policyrep_EbitmapIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_RoleEbitmapIterator) < 0) __PYX_ERR(17, 88, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_RoleEbitmapIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_RoleEbitmapIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_RoleEbitmapIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_RoleEbitmapIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_RoleEbitmapIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_RoleEbitmapIterator) < 0) __PYX_ERR(17, 88, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RoleEbitmapIterator, (PyObject *)&__pyx_type_7setools_9policyrep_RoleEbitmapIterator) < 0) __PYX_ERR(17, 88, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_RoleEbitmapIterator) < 0) __PYX_ERR(17, 88, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_RoleEbitmapIterator = &__pyx_type_7setools_9policyrep_RoleEbitmapIterator;
  __pyx_vtabptr_7setools_9policyrep_SELinuxPolicy = &__pyx_vtable_7setools_9policyrep_SELinuxPolicy;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.boolean_value_to_datum = (cond_bool_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.boolean_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_boolean_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.category_value_to_datum = (cat_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.category_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_category_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.class_value_to_datum = (class_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.class_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_class_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.common_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_common_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.level_value_to_datum = (level_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.level_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_level_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.role_value_to_datum = (role_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.role_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_role_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.type_value_to_datum = (type_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.type_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_type_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.user_value_to_datum = (user_datum_t *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_datum;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy.user_value_to_name = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, size_t))__pyx_f_7setools_9policyrep_13SELinuxPolicy_user_value_to_name;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_policy = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, PyObject *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_policy;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_running_policy = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_running_policy;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._set_permissive_flags = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__set_permissive_flags;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._create_mls_val_to_struct = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__create_mls_val_to_struct;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_category_aliases = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_category_aliases;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_sensitivity_aliases = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_sensitivity_aliases;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._load_type_aliases = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__load_type_aliases;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._rebuild_attrs_from_map = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__rebuild_attrs_from_map;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._synthesize_attrs = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__synthesize_attrs;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._cache_constraint_counts = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_constraint_counts;
  __pyx_vtable_7setools_9policyrep_SELinuxPolicy._cache_terule_counts = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *))__pyx_f_7setools_9policyrep_13SELinuxPolicy__cache_terule_counts;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_SELinuxPolicy) < 0) __PYX_ERR(5, 40, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_SELinuxPolicy.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_SELinuxPolicy.tp_dictoffset && __pyx_type_7setools_9policyrep_SELinuxPolicy.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_SELinuxPolicy.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_SELinuxPolicy.tp_dict, __pyx_vtabptr_7setools_9policyrep_SELinuxPolicy) < 0) __PYX_ERR(5, 40, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SELinuxPolicy, (PyObject *)&__pyx_type_7setools_9policyrep_SELinuxPolicy) < 0) __PYX_ERR(5, 40, __pyx_L1_error)
  if (__pyx_type_7setools_9policyrep_SELinuxPolicy.tp_weaklistoffset == 0) __pyx_type_7setools_9policyrep_SELinuxPolicy.tp_weaklistoffset = offsetof(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy, __weakref__);
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_SELinuxPolicy) < 0) __PYX_ERR(5, 40, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_SELinuxPolicy = &__pyx_type_7setools_9policyrep_SELinuxPolicy;
  __pyx_vtabptr_7setools_9policyrep_BaseTERule = &__pyx_vtable_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_BaseTERule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicyRule;
  __pyx_type_7setools_9policyrep_BaseTERule.tp_base = __pyx_ptype_7setools_9policyrep_PolicyRule;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_BaseTERule) < 0) __PYX_ERR(19, 48, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_BaseTERule.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_BaseTERule.tp_dictoffset && __pyx_type_7setools_9policyrep_BaseTERule.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_BaseTERule.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_BaseTERule.tp_dict, __pyx_vtabptr_7setools_9policyrep_BaseTERule) < 0) __PYX_ERR(19, 48, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseTERule, (PyObject *)&__pyx_type_7setools_9policyrep_BaseTERule) < 0) __PYX_ERR(19, 48, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_BaseTERule) < 0) __PYX_ERR(19, 48, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_BaseTERule = &__pyx_type_7setools_9policyrep_BaseTERule;
  __pyx_vtabptr_7setools_9policyrep_AVRule = &__pyx_vtable_7setools_9policyrep_AVRule;
  __pyx_vtable_7setools_9policyrep_AVRule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_AVRule.factory = (struct __pyx_obj_7setools_9policyrep_AVRule *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_6AVRule_factory;
  __pyx_type_7setools_9policyrep_AVRule.tp_base = __pyx_ptype_7setools_9policyrep_BaseTERule;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_AVRule) < 0) __PYX_ERR(19, 115, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_AVRule.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_AVRule.tp_dictoffset && __pyx_type_7setools_9policyrep_AVRule.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_AVRule.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_AVRule.tp_dict, __pyx_vtabptr_7setools_9policyrep_AVRule) < 0) __PYX_ERR(19, 115, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AVRule, (PyObject *)&__pyx_type_7setools_9policyrep_AVRule) < 0) __PYX_ERR(19, 115, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_AVRule) < 0) __PYX_ERR(19, 115, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_AVRule = &__pyx_type_7setools_9policyrep_AVRule;
  __pyx_type_7setools_9policyrep_IoctlSet.tp_base = (&PyFrozenSet_Type);
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_IoctlSet) < 0) __PYX_ERR(19, 219, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_IoctlSet.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_IoctlSet.tp_dictoffset && __pyx_type_7setools_9policyrep_IoctlSet.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_IoctlSet.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_IoctlSet, (PyObject *)&__pyx_type_7setools_9policyrep_IoctlSet) < 0) __PYX_ERR(19, 219, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_IoctlSet) < 0) __PYX_ERR(19, 219, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_IoctlSet = &__pyx_type_7setools_9policyrep_IoctlSet;
  __pyx_vtabptr_7setools_9policyrep_AVRuleXperm = &__pyx_vtable_7setools_9policyrep_AVRuleXperm;
  __pyx_vtable_7setools_9policyrep_AVRuleXperm.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_AVRuleXperm.factory = (struct __pyx_obj_7setools_9policyrep_AVRuleXperm *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_11AVRuleXperm_factory;
  __pyx_type_7setools_9policyrep_AVRuleXperm.tp_base = __pyx_ptype_7setools_9policyrep_BaseTERule;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_AVRuleXperm) < 0) __PYX_ERR(19, 273, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_AVRuleXperm.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_AVRuleXperm.tp_dictoffset && __pyx_type_7setools_9policyrep_AVRuleXperm.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_AVRuleXperm.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_AVRuleXperm.tp_dict, __pyx_vtabptr_7setools_9policyrep_AVRuleXperm) < 0) __PYX_ERR(19, 273, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AVRuleXperm, (PyObject *)&__pyx_type_7setools_9policyrep_AVRuleXperm) < 0) __PYX_ERR(19, 273, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_AVRuleXperm) < 0) __PYX_ERR(19, 273, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_AVRuleXperm = &__pyx_type_7setools_9policyrep_AVRuleXperm;
  __pyx_vtabptr_7setools_9policyrep_TERule = &__pyx_vtable_7setools_9policyrep_TERule;
  __pyx_vtable_7setools_9policyrep_TERule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_TERule.factory = (struct __pyx_obj_7setools_9policyrep_TERule *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, avtab_key_t *, avtab_datum_t *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_6TERule_factory;
  __pyx_type_7setools_9policyrep_TERule.tp_base = __pyx_ptype_7setools_9policyrep_BaseTERule;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TERule) < 0) __PYX_ERR(19, 389, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TERule.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TERule.tp_dictoffset && __pyx_type_7setools_9policyrep_TERule.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TERule.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TERule.tp_dict, __pyx_vtabptr_7setools_9policyrep_TERule) < 0) __PYX_ERR(19, 389, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TERule, (PyObject *)&__pyx_type_7setools_9policyrep_TERule) < 0) __PYX_ERR(19, 389, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TERule) < 0) __PYX_ERR(19, 389, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TERule = &__pyx_type_7setools_9policyrep_TERule;
  __pyx_vtabptr_7setools_9policyrep_FileNameTERule = &__pyx_vtable_7setools_9policyrep_FileNameTERule;
  __pyx_vtable_7setools_9policyrep_FileNameTERule.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseTERule;
  __pyx_vtable_7setools_9policyrep_FileNameTERule.factory = (struct __pyx_obj_7setools_9policyrep_FileNameTERule *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, filename_trans_key_t *, struct __pyx_obj_7setools_9policyrep_Type *, size_t))__pyx_f_7setools_9policyrep_14FileNameTERule_factory;
  __pyx_type_7setools_9policyrep_FileNameTERule.tp_base = __pyx_ptype_7setools_9policyrep_BaseTERule;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_FileNameTERule) < 0) __PYX_ERR(19, 464, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_FileNameTERule.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_FileNameTERule.tp_dictoffset && __pyx_type_7setools_9policyrep_FileNameTERule.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_FileNameTERule.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_FileNameTERule.tp_dict, __pyx_vtabptr_7setools_9policyrep_FileNameTERule) < 0) __PYX_ERR(19, 464, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FileNameTERule, (PyObject *)&__pyx_type_7setools_9policyrep_FileNameTERule) < 0) __PYX_ERR(19, 464, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_FileNameTERule) < 0) __PYX_ERR(19, 464, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_FileNameTERule = &__pyx_type_7setools_9policyrep_FileNameTERule;
  __pyx_vtabptr_7setools_9policyrep_TERuleIterator = &__pyx_vtable_7setools_9policyrep_TERuleIterator;
  __pyx_vtable_7setools_9policyrep_TERuleIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, struct avtab *))__pyx_f_7setools_9policyrep_14TERuleIterator_factory;
  __pyx_vtable_7setools_9policyrep_TERuleIterator._next_bucket = (void (*)(struct __pyx_obj_7setools_9policyrep_TERuleIterator *))__pyx_f_7setools_9policyrep_14TERuleIterator__next_bucket;
  __pyx_vtable_7setools_9policyrep_TERuleIterator._next_node = (void (*)(struct __pyx_obj_7setools_9policyrep_TERuleIterator *))__pyx_f_7setools_9policyrep_14TERuleIterator__next_node;
  __pyx_type_7setools_9policyrep_TERuleIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TERuleIterator) < 0) __PYX_ERR(19, 538, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TERuleIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TERuleIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_TERuleIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TERuleIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TERuleIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_TERuleIterator) < 0) __PYX_ERR(19, 538, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TERuleIterator, (PyObject *)&__pyx_type_7setools_9policyrep_TERuleIterator) < 0) __PYX_ERR(19, 538, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TERuleIterator) < 0) __PYX_ERR(19, 538, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TERuleIterator = &__pyx_type_7setools_9policyrep_TERuleIterator;
  __pyx_vtabptr_7setools_9policyrep_ConditionalTERuleIterator = &__pyx_vtable_7setools_9policyrep_ConditionalTERuleIterator;
  __pyx_vtable_7setools_9policyrep_ConditionalTERuleIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, cond_av_list_t *, PyObject *, PyObject *))__pyx_f_7setools_9policyrep_25ConditionalTERuleIterator_factory;
  __pyx_type_7setools_9policyrep_ConditionalTERuleIterator.tp_base = __pyx_ptype_7setools_9policyrep_PolicyIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_ConditionalTERuleIterator) < 0) __PYX_ERR(19, 635, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_ConditionalTERuleIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_ConditionalTERuleIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_ConditionalTERuleIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_ConditionalTERuleIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_ConditionalTERuleIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_ConditionalTERuleIterator) < 0) __PYX_ERR(19, 635, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ConditionalTERuleIterator, (PyObject *)&__pyx_type_7setools_9policyrep_ConditionalTERuleIterator) < 0) __PYX_ERR(19, 635, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_ConditionalTERuleIterator) < 0) __PYX_ERR(19, 635, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_ConditionalTERuleIterator = &__pyx_type_7setools_9policyrep_ConditionalTERuleIterator;
  __pyx_vtabptr_7setools_9policyrep_FileNameTERuleIterator = &__pyx_vtable_7setools_9policyrep_FileNameTERuleIterator;
  __pyx_vtable_7setools_9policyrep_FileNameTERuleIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_FileNameTERuleIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_22FileNameTERuleIterator_factory;
  __pyx_type_7setools_9policyrep_FileNameTERuleIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_FileNameTERuleIterator) < 0) __PYX_ERR(19, 708, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_FileNameTERuleIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_FileNameTERuleIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_FileNameTERuleIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_FileNameTERuleIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_FileNameTERuleIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_FileNameTERuleIterator) < 0) __PYX_ERR(19, 708, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FileNameTERuleIterator, (PyObject *)&__pyx_type_7setools_9policyrep_FileNameTERuleIterator) < 0) __PYX_ERR(19, 708, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_FileNameTERuleIterator) < 0) __PYX_ERR(19, 708, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_FileNameTERuleIterator = &__pyx_type_7setools_9policyrep_FileNameTERuleIterator;
  __pyx_vtabptr_7setools_9policyrep_BaseType = &__pyx_vtable_7setools_9policyrep_BaseType;
  __pyx_vtable_7setools_9policyrep_BaseType.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_type_7setools_9policyrep_BaseType.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_BaseType) < 0) __PYX_ERR(20, 46, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_BaseType.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_BaseType.tp_dictoffset && __pyx_type_7setools_9policyrep_BaseType.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_BaseType.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_BaseType.tp_dict, __pyx_vtabptr_7setools_9policyrep_BaseType) < 0) __PYX_ERR(20, 46, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseType, (PyObject *)&__pyx_type_7setools_9policyrep_BaseType) < 0) __PYX_ERR(20, 46, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_BaseType) < 0) __PYX_ERR(20, 46, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_BaseType = &__pyx_type_7setools_9policyrep_BaseType;
  __pyx_vtabptr_7setools_9policyrep_Type = &__pyx_vtable_7setools_9policyrep_Type;
  __pyx_vtable_7setools_9policyrep_Type.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseType;
  __pyx_vtable_7setools_9policyrep_Type.factory = (struct __pyx_obj_7setools_9policyrep_Type *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *))__pyx_f_7setools_9policyrep_4Type_factory;
  __pyx_vtable_7setools_9policyrep_Type._load_attributes = (void (*)(struct __pyx_obj_7setools_9policyrep_Type *))__pyx_f_7setools_9policyrep_4Type__load_attributes;
  __pyx_type_7setools_9policyrep_Type.tp_base = __pyx_ptype_7setools_9policyrep_BaseType;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Type) < 0) __PYX_ERR(20, 63, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Type.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Type.tp_dictoffset && __pyx_type_7setools_9policyrep_Type.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Type.tp_dict, __pyx_vtabptr_7setools_9policyrep_Type) < 0) __PYX_ERR(20, 63, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Type, (PyObject *)&__pyx_type_7setools_9policyrep_Type) < 0) __PYX_ERR(20, 63, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Type) < 0) __PYX_ERR(20, 63, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Type = &__pyx_type_7setools_9policyrep_Type;
  __pyx_vtabptr_7setools_9policyrep_TypeAttribute = &__pyx_vtable_7setools_9policyrep_TypeAttribute;
  __pyx_vtable_7setools_9policyrep_TypeAttribute.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_BaseType;
  __pyx_vtable_7setools_9policyrep_TypeAttribute.factory = (struct __pyx_obj_7setools_9policyrep_TypeAttribute *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_datum_t *))__pyx_f_7setools_9policyrep_13TypeAttribute_factory;
  __pyx_vtable_7setools_9policyrep_TypeAttribute.load_types = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_TypeAttribute *))__pyx_f_7setools_9policyrep_13TypeAttribute_load_types;
  __pyx_type_7setools_9policyrep_TypeAttribute.tp_base = __pyx_ptype_7setools_9policyrep_BaseType;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TypeAttribute) < 0) __PYX_ERR(20, 134, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TypeAttribute.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TypeAttribute.tp_dictoffset && __pyx_type_7setools_9policyrep_TypeAttribute.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TypeAttribute.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TypeAttribute.tp_dict, __pyx_vtabptr_7setools_9policyrep_TypeAttribute) < 0) __PYX_ERR(20, 134, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TypeAttribute, (PyObject *)&__pyx_type_7setools_9policyrep_TypeAttribute) < 0) __PYX_ERR(20, 134, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TypeAttribute) < 0) __PYX_ERR(20, 134, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TypeAttribute = &__pyx_type_7setools_9policyrep_TypeAttribute;
  __pyx_vtabptr_7setools_9policyrep_TypeHashtabIterator = &__pyx_vtable_7setools_9policyrep_TypeHashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_19TypeHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_TypeHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TypeHashtabIterator) < 0) __PYX_ERR(20, 207, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TypeHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TypeHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_TypeHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TypeHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TypeHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_TypeHashtabIterator) < 0) __PYX_ERR(20, 207, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TypeHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_TypeHashtabIterator) < 0) __PYX_ERR(20, 207, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TypeHashtabIterator) < 0) __PYX_ERR(20, 207, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TypeHashtabIterator = &__pyx_type_7setools_9policyrep_TypeHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_TypeAttributeHashtabIterator = &__pyx_vtable_7setools_9policyrep_TypeAttributeHashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeAttributeHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_TypeAttributeHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_28TypeAttributeHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator) < 0) __PYX_ERR(20, 258, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_TypeAttributeHashtabIterator) < 0) __PYX_ERR(20, 258, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TypeAttributeHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator) < 0) __PYX_ERR(20, 258, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator) < 0) __PYX_ERR(20, 258, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TypeAttributeHashtabIterator = &__pyx_type_7setools_9policyrep_TypeAttributeHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_TypeEbitmapIterator = &__pyx_vtable_7setools_9policyrep_TypeEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_TypeEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory;
  __pyx_vtable_7setools_9policyrep_TypeEbitmapIterator.factory_from_set = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *))__pyx_f_7setools_9policyrep_19TypeEbitmapIterator_factory_from_set;
  __pyx_type_7setools_9policyrep_TypeEbitmapIterator.tp_base = __pyx_ptype_7setools_9policyrep_EbitmapIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TypeEbitmapIterator) < 0) __PYX_ERR(20, 308, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TypeEbitmapIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TypeEbitmapIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_TypeEbitmapIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TypeEbitmapIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TypeEbitmapIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_TypeEbitmapIterator) < 0) __PYX_ERR(20, 308, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TypeEbitmapIterator, (PyObject *)&__pyx_type_7setools_9policyrep_TypeEbitmapIterator) < 0) __PYX_ERR(20, 308, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TypeEbitmapIterator) < 0) __PYX_ERR(20, 308, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TypeEbitmapIterator = &__pyx_type_7setools_9policyrep_TypeEbitmapIterator;
  __pyx_vtabptr_7setools_9policyrep_TypeAttributeEbitmapIterator = &__pyx_vtable_7setools_9policyrep_TypeAttributeEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_TypeAttributeEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory;
  __pyx_vtable_7setools_9policyrep_TypeAttributeEbitmapIterator.factory_from_set = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *))__pyx_f_7setools_9policyrep_28TypeAttributeEbitmapIterator_factory_from_set;
  __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator.tp_base = __pyx_ptype_7setools_9policyrep_EbitmapIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator) < 0) __PYX_ERR(20, 336, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_TypeAttributeEbitmapIterator) < 0) __PYX_ERR(20, 336, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TypeAttributeEbitmapIterator, (PyObject *)&__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator) < 0) __PYX_ERR(20, 336, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator) < 0) __PYX_ERR(20, 336, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TypeAttributeEbitmapIterator = &__pyx_type_7setools_9policyrep_TypeAttributeEbitmapIterator;
  __pyx_vtabptr_7setools_9policyrep_TypeOrAttributeEbitmapIterator = &__pyx_vtable_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_TypeOrAttributeEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory;
  __pyx_vtable_7setools_9policyrep_TypeOrAttributeEbitmapIterator.factory_from_set = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, type_set_t *))__pyx_f_7setools_9policyrep_30TypeOrAttributeEbitmapIterator_factory_from_set;
  __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator.tp_base = __pyx_ptype_7setools_9policyrep_EbitmapIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < 0) __PYX_ERR(20, 365, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < 0) __PYX_ERR(20, 365, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TypeOrAttributeEbitmapIterator, (PyObject *)&__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < 0) __PYX_ERR(20, 365, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator) < 0) __PYX_ERR(20, 365, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_TypeOrAttributeEbitmapIterator = &__pyx_type_7setools_9policyrep_TypeOrAttributeEbitmapIterator;
  __pyx_vtabptr_7setools_9policyrep_User = &__pyx_vtable_7setools_9policyrep_User;
  __pyx_vtable_7setools_9policyrep_User.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_PolicySymbol;
  __pyx_vtable_7setools_9policyrep_User.factory = (struct __pyx_obj_7setools_9policyrep_User *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, user_datum_t *))__pyx_f_7setools_9policyrep_4User_factory;
  __pyx_type_7setools_9policyrep_User.tp_base = __pyx_ptype_7setools_9policyrep_PolicySymbol;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_User) < 0) __PYX_ERR(21, 24, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_User.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_User.tp_dictoffset && __pyx_type_7setools_9policyrep_User.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_User.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_User.tp_dict, __pyx_vtabptr_7setools_9policyrep_User) < 0) __PYX_ERR(21, 24, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_User, (PyObject *)&__pyx_type_7setools_9policyrep_User) < 0) __PYX_ERR(21, 24, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_User) < 0) __PYX_ERR(21, 24, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_User = &__pyx_type_7setools_9policyrep_User;
  __pyx_vtabptr_7setools_9policyrep_UserHashtabIterator = &__pyx_vtable_7setools_9policyrep_UserHashtabIterator;
  __pyx_vtable_7setools_9policyrep_UserHashtabIterator.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_HashtabIterator;
  __pyx_vtable_7setools_9policyrep_UserHashtabIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, hashtab_t *))__pyx_f_7setools_9policyrep_19UserHashtabIterator_factory;
  __pyx_type_7setools_9policyrep_UserHashtabIterator.tp_base = __pyx_ptype_7setools_9policyrep_HashtabIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_UserHashtabIterator) < 0) __PYX_ERR(21, 97, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_UserHashtabIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_UserHashtabIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_UserHashtabIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_UserHashtabIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_UserHashtabIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_UserHashtabIterator) < 0) __PYX_ERR(21, 97, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_UserHashtabIterator, (PyObject *)&__pyx_type_7setools_9policyrep_UserHashtabIterator) < 0) __PYX_ERR(21, 97, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_UserHashtabIterator) < 0) __PYX_ERR(21, 97, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_UserHashtabIterator = &__pyx_type_7setools_9policyrep_UserHashtabIterator;
  __pyx_vtabptr_7setools_9policyrep_UserEbitmapIterator = &__pyx_vtable_7setools_9policyrep_UserEbitmapIterator;
  __pyx_vtable_7setools_9policyrep_UserEbitmapIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ebitmap_t *))__pyx_f_7setools_9policyrep_19UserEbitmapIterator_factory;
  __pyx_type_7setools_9policyrep_UserEbitmapIterator.tp_base = __pyx_ptype_7setools_9policyrep_EbitmapIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_UserEbitmapIterator) < 0) __PYX_ERR(21, 115, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_UserEbitmapIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_UserEbitmapIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_UserEbitmapIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_UserEbitmapIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_UserEbitmapIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_UserEbitmapIterator) < 0) __PYX_ERR(21, 115, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_UserEbitmapIterator, (PyObject *)&__pyx_type_7setools_9policyrep_UserEbitmapIterator) < 0) __PYX_ERR(21, 115, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_UserEbitmapIterator) < 0) __PYX_ERR(21, 115, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_UserEbitmapIterator = &__pyx_type_7setools_9policyrep_UserEbitmapIterator;
  __pyx_vtabptr_7setools_9policyrep_Devicetreecon = &__pyx_vtable_7setools_9policyrep_Devicetreecon;
  __pyx_vtable_7setools_9policyrep_Devicetreecon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Devicetreecon.factory = (struct __pyx_obj_7setools_9policyrep_Devicetreecon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_13Devicetreecon_factory;
  __pyx_type_7setools_9policyrep_Devicetreecon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Devicetreecon) < 0) __PYX_ERR(22, 28, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Devicetreecon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Devicetreecon.tp_dictoffset && __pyx_type_7setools_9policyrep_Devicetreecon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Devicetreecon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Devicetreecon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Devicetreecon) < 0) __PYX_ERR(22, 28, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Devicetreecon, (PyObject *)&__pyx_type_7setools_9policyrep_Devicetreecon) < 0) __PYX_ERR(22, 28, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Devicetreecon) < 0) __PYX_ERR(22, 28, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Devicetreecon = &__pyx_type_7setools_9policyrep_Devicetreecon;
  __pyx_vtabptr_7setools_9policyrep_Iomemcon = &__pyx_vtable_7setools_9policyrep_Iomemcon;
  __pyx_vtable_7setools_9policyrep_Iomemcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Iomemcon.factory = (struct __pyx_obj_7setools_9policyrep_Iomemcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_8Iomemcon_factory;
  __pyx_type_7setools_9policyrep_Iomemcon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Iomemcon) < 0) __PYX_ERR(22, 48, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Iomemcon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Iomemcon.tp_dictoffset && __pyx_type_7setools_9policyrep_Iomemcon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Iomemcon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Iomemcon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Iomemcon) < 0) __PYX_ERR(22, 48, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Iomemcon, (PyObject *)&__pyx_type_7setools_9policyrep_Iomemcon) < 0) __PYX_ERR(22, 48, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Iomemcon) < 0) __PYX_ERR(22, 48, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Iomemcon = &__pyx_type_7setools_9policyrep_Iomemcon;
  __pyx_vtabptr_7setools_9policyrep_Ioportcon = &__pyx_vtable_7setools_9policyrep_Ioportcon;
  __pyx_vtable_7setools_9policyrep_Ioportcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Ioportcon.factory = (struct __pyx_obj_7setools_9policyrep_Ioportcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_9Ioportcon_factory;
  __pyx_type_7setools_9policyrep_Ioportcon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Ioportcon) < 0) __PYX_ERR(22, 73, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Ioportcon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Ioportcon.tp_dictoffset && __pyx_type_7setools_9policyrep_Ioportcon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Ioportcon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Ioportcon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Ioportcon) < 0) __PYX_ERR(22, 73, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ioportcon, (PyObject *)&__pyx_type_7setools_9policyrep_Ioportcon) < 0) __PYX_ERR(22, 73, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Ioportcon) < 0) __PYX_ERR(22, 73, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Ioportcon = &__pyx_type_7setools_9policyrep_Ioportcon;
  __pyx_vtabptr_7setools_9policyrep_Pcidevicecon = &__pyx_vtable_7setools_9policyrep_Pcidevicecon;
  __pyx_vtable_7setools_9policyrep_Pcidevicecon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Pcidevicecon.factory = (struct __pyx_obj_7setools_9policyrep_Pcidevicecon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_12Pcidevicecon_factory;
  __pyx_type_7setools_9policyrep_Pcidevicecon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Pcidevicecon) < 0) __PYX_ERR(22, 98, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Pcidevicecon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Pcidevicecon.tp_dictoffset && __pyx_type_7setools_9policyrep_Pcidevicecon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Pcidevicecon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Pcidevicecon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Pcidevicecon) < 0) __PYX_ERR(22, 98, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Pcidevicecon, (PyObject *)&__pyx_type_7setools_9policyrep_Pcidevicecon) < 0) __PYX_ERR(22, 98, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Pcidevicecon) < 0) __PYX_ERR(22, 98, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Pcidevicecon = &__pyx_type_7setools_9policyrep_Pcidevicecon;
  __pyx_vtabptr_7setools_9policyrep_Pirqcon = &__pyx_vtable_7setools_9policyrep_Pirqcon;
  __pyx_vtable_7setools_9policyrep_Pirqcon.__pyx_base = *__pyx_vtabptr_7setools_9policyrep_Ocontext;
  __pyx_vtable_7setools_9policyrep_Pirqcon.factory = (struct __pyx_obj_7setools_9policyrep_Pirqcon *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_7Pirqcon_factory;
  __pyx_type_7setools_9policyrep_Pirqcon.tp_base = __pyx_ptype_7setools_9policyrep_Ocontext;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_Pirqcon) < 0) __PYX_ERR(22, 118, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_Pirqcon.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_Pirqcon.tp_dictoffset && __pyx_type_7setools_9policyrep_Pirqcon.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_Pirqcon.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_Pirqcon.tp_dict, __pyx_vtabptr_7setools_9policyrep_Pirqcon) < 0) __PYX_ERR(22, 118, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Pirqcon, (PyObject *)&__pyx_type_7setools_9policyrep_Pirqcon) < 0) __PYX_ERR(22, 118, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_Pirqcon) < 0) __PYX_ERR(22, 118, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_Pirqcon = &__pyx_type_7setools_9policyrep_Pirqcon;
  __pyx_vtabptr_7setools_9policyrep_DevicetreeconIterator = &__pyx_vtable_7setools_9policyrep_DevicetreeconIterator;
  __pyx_vtable_7setools_9policyrep_DevicetreeconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_21DevicetreeconIterator_factory;
  __pyx_type_7setools_9policyrep_DevicetreeconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_DevicetreeconIterator) < 0) __PYX_ERR(22, 141, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_DevicetreeconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_DevicetreeconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_DevicetreeconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_DevicetreeconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_DevicetreeconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_DevicetreeconIterator) < 0) __PYX_ERR(22, 141, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DevicetreeconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_DevicetreeconIterator) < 0) __PYX_ERR(22, 141, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_DevicetreeconIterator) < 0) __PYX_ERR(22, 141, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_DevicetreeconIterator = &__pyx_type_7setools_9policyrep_DevicetreeconIterator;
  __pyx_vtabptr_7setools_9policyrep_IomemconIterator = &__pyx_vtable_7setools_9policyrep_IomemconIterator;
  __pyx_vtable_7setools_9policyrep_IomemconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_16IomemconIterator_factory;
  __pyx_type_7setools_9policyrep_IomemconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_IomemconIterator) < 0) __PYX_ERR(22, 158, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_IomemconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_IomemconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_IomemconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_IomemconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_IomemconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_IomemconIterator) < 0) __PYX_ERR(22, 158, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_IomemconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_IomemconIterator) < 0) __PYX_ERR(22, 158, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_IomemconIterator) < 0) __PYX_ERR(22, 158, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_IomemconIterator = &__pyx_type_7setools_9policyrep_IomemconIterator;
  __pyx_vtabptr_7setools_9policyrep_IoportconIterator = &__pyx_vtable_7setools_9policyrep_IoportconIterator;
  __pyx_vtable_7setools_9policyrep_IoportconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_17IoportconIterator_factory;
  __pyx_type_7setools_9policyrep_IoportconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_IoportconIterator) < 0) __PYX_ERR(22, 175, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_IoportconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_IoportconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_IoportconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_IoportconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_IoportconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_IoportconIterator) < 0) __PYX_ERR(22, 175, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_IoportconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_IoportconIterator) < 0) __PYX_ERR(22, 175, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_IoportconIterator) < 0) __PYX_ERR(22, 175, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_IoportconIterator = &__pyx_type_7setools_9policyrep_IoportconIterator;
  __pyx_vtabptr_7setools_9policyrep_PcideviceconIterator = &__pyx_vtable_7setools_9policyrep_PcideviceconIterator;
  __pyx_vtable_7setools_9policyrep_PcideviceconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_20PcideviceconIterator_factory;
  __pyx_type_7setools_9policyrep_PcideviceconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PcideviceconIterator) < 0) __PYX_ERR(22, 192, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PcideviceconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PcideviceconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_PcideviceconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PcideviceconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PcideviceconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_PcideviceconIterator) < 0) __PYX_ERR(22, 192, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PcideviceconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_PcideviceconIterator) < 0) __PYX_ERR(22, 192, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PcideviceconIterator) < 0) __PYX_ERR(22, 192, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PcideviceconIterator = &__pyx_type_7setools_9policyrep_PcideviceconIterator;
  __pyx_vtabptr_7setools_9policyrep_PirqconIterator = &__pyx_vtable_7setools_9policyrep_PirqconIterator;
  __pyx_vtable_7setools_9policyrep_PirqconIterator.factory = (PyObject *(*)(struct __pyx_obj_7setools_9policyrep_SELinuxPolicy *, ocontext_t *))__pyx_f_7setools_9policyrep_15PirqconIterator_factory;
  __pyx_type_7setools_9policyrep_PirqconIterator.tp_base = __pyx_ptype_7setools_9policyrep_OcontextIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep_PirqconIterator) < 0) __PYX_ERR(22, 209, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep_PirqconIterator.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep_PirqconIterator.tp_dictoffset && __pyx_type_7setools_9policyrep_PirqconIterator.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep_PirqconIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_7setools_9policyrep_PirqconIterator.tp_dict, __pyx_vtabptr_7setools_9policyrep_PirqconIterator) < 0) __PYX_ERR(22, 209, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PirqconIterator, (PyObject *)&__pyx_type_7setools_9policyrep_PirqconIterator) < 0) __PYX_ERR(22, 209, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_7setools_9policyrep_PirqconIterator) < 0) __PYX_ERR(22, 209, __pyx_L1_error)
  __pyx_ptype_7setools_9policyrep_PirqconIterator = &__pyx_type_7setools_9policyrep_PirqconIterator;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct__truth_table) < 0) __PYX_ERR(1, 190, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct__truth_table.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct__truth_table.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct__truth_table.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct__truth_table.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct__truth_table = &__pyx_type_7setools_9policyrep___pyx_scope_struct__truth_table;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr) < 0) __PYX_ERR(1, 211, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_1_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_1_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_2___str__) < 0) __PYX_ERR(2, 161, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_2___str__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_2___str__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_2___str__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_2___str__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_2___str__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_2___str__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(2, 166, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_3_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_3_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr) < 0) __PYX_ERR(2, 168, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_4_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_4_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_5_factory) < 0) __PYX_ERR(2, 325, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_5_factory.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_5_factory.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_5_factory.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_5_factory.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_5_factory = &__pyx_type_7setools_9policyrep___pyx_scope_struct_5_factory;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr) < 0) __PYX_ERR(2, 345, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_6_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_6_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr) < 0) __PYX_ERR(2, 350, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_7_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_7_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_8_genexpr) < 0) __PYX_ERR(2, 354, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_8_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_8_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_8_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_8_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_8_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_8_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_9_genexpr) < 0) __PYX_ERR(2, 358, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_9_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_9_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_9_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_9_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_9_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_9_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand) < 0) __PYX_ERR(12, 63, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_10_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_10_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand) < 0) __PYX_ERR(16, 70, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_11_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_11_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_12_expand) < 0) __PYX_ERR(16, 128, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_12_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_12_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_12_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_12_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_12_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_12_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_13_expand) < 0) __PYX_ERR(17, 45, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_13_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_13_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_13_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_13_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_13_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_13_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_14_statement) < 0) __PYX_ERR(17, 53, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_14_statement.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_14_statement.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_14_statement.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_14_statement.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_14_statement = &__pyx_type_7setools_9policyrep___pyx_scope_struct_14_statement;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr) < 0) __PYX_ERR(17, 55, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_15_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_15_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_16___get__) < 0) __PYX_ERR(5, 135, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_16___get__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_16___get__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_16___get__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_16___get__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_16___get__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_16___get__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr) < 0) __PYX_ERR(5, 137, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_17_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_17_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_18___get__) < 0) __PYX_ERR(5, 161, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_18___get__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_18___get__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_18___get__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_18___get__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_18___get__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_18___get__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr) < 0) __PYX_ERR(5, 163, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_19_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_19_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_20___get__) < 0) __PYX_ERR(5, 218, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_20___get__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_20___get__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_20___get__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_20___get__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_20___get__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_20___get__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_21_genexpr) < 0) __PYX_ERR(5, 220, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_21_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_21_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_21_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_21_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_21_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_21_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_22___get__) < 0) __PYX_ERR(5, 252, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_22___get__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_22___get__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_22___get__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_22___get__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_22___get__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_22___get__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr) < 0) __PYX_ERR(5, 254, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_23_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_23_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_24___get__) < 0) __PYX_ERR(5, 262, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_24___get__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_24___get__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_24___get__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_24___get__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_24___get__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_24___get__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr) < 0) __PYX_ERR(5, 264, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_25_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_25_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_26___get__) < 0) __PYX_ERR(5, 267, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_26___get__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_26___get__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_26___get__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_26___get__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_26___get__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_26___get__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr) < 0) __PYX_ERR(5, 269, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_27_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_27_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_28___get__) < 0) __PYX_ERR(5, 297, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_28___get__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_28___get__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_28___get__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_28___get__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_28___get__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_28___get__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_29_genexpr) < 0) __PYX_ERR(5, 298, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_29_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_29_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_29_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_29_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_29_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_29_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_30_defaults) < 0) __PYX_ERR(5, 475, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_30_defaults.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_30_defaults.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_30_defaults.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_30_defaults.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_30_defaults = &__pyx_type_7setools_9policyrep___pyx_scope_struct_30_defaults;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_31_terules) < 0) __PYX_ERR(5, 524, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_31_terules.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_31_terules.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_31_terules.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_31_terules.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_31_terules = &__pyx_type_7setools_9policyrep___pyx_scope_struct_31_terules;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_32_constraints) < 0) __PYX_ERR(5, 536, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_32_constraints.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_32_constraints.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_32_constraints.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_32_constraints.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_32_constraints = &__pyx_type_7setools_9policyrep___pyx_scope_struct_32_constraints;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts) < 0) __PYX_ERR(5, 1072, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts = &__pyx_type_7setools_9policyrep___pyx_scope_struct_33__cache_constraint_counts;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr) < 0) __PYX_ERR(5, 1075, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_34_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_34_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_35_factory) < 0) __PYX_ERR(19, 122, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_35_factory.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_35_factory.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_35_factory.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_35_factory.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_35_factory = &__pyx_type_7setools_9policyrep___pyx_scope_struct_35_factory;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_36_genexpr) < 0) __PYX_ERR(19, 132, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_36_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_36_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_36_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_36_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_36_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_36_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_37_derive_expanded) < 0) __PYX_ERR(19, 151, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_37_derive_expanded.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_37_derive_expanded.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_37_derive_expanded.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_37_derive_expanded.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_37_derive_expanded = &__pyx_type_7setools_9policyrep___pyx_scope_struct_37_derive_expanded;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_38_genexpr) < 0) __PYX_ERR(19, 171, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_38_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_38_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_38_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_38_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_38_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_38_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_39_expand) < 0) __PYX_ERR(19, 177, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_39_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_39_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_39_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_39_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_39_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_39_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_40_ranges) < 0) __PYX_ERR(19, 263, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_40_ranges.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_40_ranges.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_40_ranges.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_40_ranges.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_40_ranges = &__pyx_type_7setools_9policyrep___pyx_scope_struct_40_ranges;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_41_genexpr) < 0) __PYX_ERR(19, 269, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_41_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_41_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_41_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_41_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_41_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_41_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_42_expand) < 0) __PYX_ERR(19, 350, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_42_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_42_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_42_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_42_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_42_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_42_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_43_expand) < 0) __PYX_ERR(19, 429, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_43_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_43_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_43_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_43_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_43_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_43_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_44_expand) < 0) __PYX_ERR(19, 506, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_44_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_44_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_44_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_44_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_44_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_44_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_45___len__) < 0) __PYX_ERR(19, 745, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_45___len__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_45___len__.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_45___len__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_45___len__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_45___len__ = &__pyx_type_7setools_9policyrep___pyx_scope_struct_45___len__;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_46_genexpr) < 0) __PYX_ERR(19, 746, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_46_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_46_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_46_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_46_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_46_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_46_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_47_expand) < 0) __PYX_ERR(20, 102, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_47_expand.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_47_expand.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_47_expand.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_47_expand.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_47_expand = &__pyx_type_7setools_9policyrep___pyx_scope_struct_47_expand;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_48_factory) < 0) __PYX_ERR(21, 34, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_48_factory.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_48_factory.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_48_factory.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_48_factory.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_48_factory = &__pyx_type_7setools_9policyrep___pyx_scope_struct_48_factory;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_49_genexpr) < 0) __PYX_ERR(21, 50, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_49_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_49_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_49_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_49_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_49_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_49_genexpr;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_50_statement) < 0) __PYX_ERR(21, 75, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_50_statement.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_50_statement.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_50_statement.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_50_statement.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_50_statement = &__pyx_type_7setools_9policyrep___pyx_scope_struct_50_statement;
  if (PyType_Ready(&__pyx_type_7setools_9policyrep___pyx_scope_struct_51_genexpr) < 0) __PYX_ERR(21, 77, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_7setools_9policyrep___pyx_scope_struct_51_genexpr.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_7setools_9policyrep___pyx_scope_struct_51_genexpr.tp_dictoffset && __pyx_type_7setools_9policyrep___pyx_scope_struct_51_genexpr.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_7setools_9policyrep___pyx_scope_struct_51_genexpr.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_7setools_9policyrep___pyx_scope_struct_51_genexpr = &__pyx_type_7setools_9policyrep___pyx_scope_struct_51_genexpr;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(24, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}


#ifndef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#elif PY_MAJOR_VERSION < 3
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" void
#else
#define __Pyx_PyMODINIT_FUNC void
#endif
#else
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyObject *
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC initpolicyrep(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initpolicyrep(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_policyrep(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_policyrep(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    #if PY_VERSION_HEX >= 0x030700A1
    static PY_INT64_T main_interpreter_id = -1;
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return (unlikely(current_id == -1)) ? -1 : 0;
    } else if (unlikely(main_interpreter_id != current_id))
    #else
    static PyInterpreterState *main_interpreter = NULL;
    PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
    if (!main_interpreter) {
        main_interpreter = current_interpreter;
    } else if (unlikely(main_interpreter != current_interpreter))
    #endif
    {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    if (__Pyx_check_single_interpreter())
        return NULL;
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_policyrep(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'policyrep' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #elif PY_MAJOR_VERSION >= 3
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif
  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_policyrep(void)", 0);
  if (__Pyx_check_binary_version() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(23, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(23, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  #ifdef WITH_THREAD /* Python build with threading support? */
  PyEval_InitThreads();
  #endif
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_m = __pyx_pyinit_module;
  Py_INCREF(__pyx_m);
  #else
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("policyrep", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (unlikely(!__pyx_m)) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(23, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(23, 1, __pyx_L1_error)
  Py_INCREF(__pyx_b);
  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(23, 1, __pyx_L1_error)
  Py_INCREF(__pyx_cython_runtime);
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(23, 1, __pyx_L1_error);
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_setools__policyrep) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(23, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "setools.policyrep")) {
      if (unlikely(PyDict_SetItemString(modules, "setools.policyrep", __pyx_m) < 0)) __PYX_ERR(23, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code();
  (void)__Pyx_modinit_variable_export_code();
  (void)__Pyx_modinit_function_export_code();
  if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(23, 1, __pyx_L1_error)
  if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(23, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code();
  (void)__Pyx_modinit_function_import_code();
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  #endif

  /* "setools/policyrep.pyx":29
 * from posix.stat cimport S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO, S_IFREG, S_IFLNK, S_IFSOCK
 * 
 * import logging             # <<<<<<<<<<<<<<
 * import warnings
 * import itertools
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_logging, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 29, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_logging, __pyx_t_1) < 0) __PYX_ERR(23, 29, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep.pyx":30
 * 
 * import logging
 * import warnings             # <<<<<<<<<<<<<<
 * import itertools
 * import ipaddress
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_warnings, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_warnings, __pyx_t_1) < 0) __PYX_ERR(23, 30, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep.pyx":31
 * import logging
 * import warnings
 * import itertools             # <<<<<<<<<<<<<<
 * import ipaddress
 * import collections
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_itertools, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_itertools, __pyx_t_1) < 0) __PYX_ERR(23, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep.pyx":32
 * import warnings
 * import itertools
 * import ipaddress             # <<<<<<<<<<<<<<
 * import collections
 * import enum
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_ipaddress, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ipaddress, __pyx_t_1) < 0) __PYX_ERR(23, 32, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep.pyx":33
 * import itertools
 * import ipaddress
 * import collections             # <<<<<<<<<<<<<<
 * import enum
 * import weakref
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_collections, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_collections, __pyx_t_1) < 0) __PYX_ERR(23, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep.pyx":34
 * import ipaddress
 * import collections
 * import enum             # <<<<<<<<<<<<<<
 * import weakref
 * from typing import TypeVar, Union
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_enum, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_enum, __pyx_t_1) < 0) __PYX_ERR(23, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep.pyx":35
 * import collections
 * import enum
 * import weakref             # <<<<<<<<<<<<<<
 * from typing import TypeVar, Union
 * 
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_weakref, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_weakref, __pyx_t_1) < 0) __PYX_ERR(23, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep.pyx":36
 * import enum
 * import weakref
 * from typing import TypeVar, Union             # <<<<<<<<<<<<<<
 * 
 * cimport sepol
 */
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_TypeVar);
  __Pyx_GIVEREF(__pyx_n_s_TypeVar);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_TypeVar);
  __Pyx_INCREF(__pyx_n_s_Union);
  __Pyx_GIVEREF(__pyx_n_s_Union);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_Union);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_typing, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_TypeVar); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TypeVar, __pyx_t_1) < 0) __PYX_ERR(23, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Union); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Union, __pyx_t_1) < 0) __PYX_ERR(23, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":41
 * cimport selinux
 * 
 * from .exception import InvalidPolicy, MLSDisabled, InvalidBoolean, InvalidCategory, InvalidClass, \             # <<<<<<<<<<<<<<
 *     InvalidCommon, InvalidInitialSid, InvalidLevel, InvalidLevelDecl, InvalidRange, InvalidRole, \
 *     InvalidSensitivity, InvalidType, InvalidUser, InvalidRuleType, InvalidBoundsType, \
 */
  __pyx_t_2 = PyList_New(33); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_InvalidPolicy);
  __Pyx_GIVEREF(__pyx_n_s_InvalidPolicy);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_InvalidPolicy);
  __Pyx_INCREF(__pyx_n_s_MLSDisabled);
  __Pyx_GIVEREF(__pyx_n_s_MLSDisabled);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_MLSDisabled);
  __Pyx_INCREF(__pyx_n_s_InvalidBoolean);
  __Pyx_GIVEREF(__pyx_n_s_InvalidBoolean);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_InvalidBoolean);
  __Pyx_INCREF(__pyx_n_s_InvalidCategory);
  __Pyx_GIVEREF(__pyx_n_s_InvalidCategory);
  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_InvalidCategory);
  __Pyx_INCREF(__pyx_n_s_InvalidClass);
  __Pyx_GIVEREF(__pyx_n_s_InvalidClass);
  PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_InvalidClass);
  __Pyx_INCREF(__pyx_n_s_InvalidCommon);
  __Pyx_GIVEREF(__pyx_n_s_InvalidCommon);
  PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_InvalidCommon);
  __Pyx_INCREF(__pyx_n_s_InvalidInitialSid);
  __Pyx_GIVEREF(__pyx_n_s_InvalidInitialSid);
  PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_InvalidInitialSid);
  __Pyx_INCREF(__pyx_n_s_InvalidLevel);
  __Pyx_GIVEREF(__pyx_n_s_InvalidLevel);
  PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_InvalidLevel);
  __Pyx_INCREF(__pyx_n_s_InvalidLevelDecl);
  __Pyx_GIVEREF(__pyx_n_s_InvalidLevelDecl);
  PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_InvalidLevelDecl);
  __Pyx_INCREF(__pyx_n_s_InvalidRange);
  __Pyx_GIVEREF(__pyx_n_s_InvalidRange);
  PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_s_InvalidRange);
  __Pyx_INCREF(__pyx_n_s_InvalidRole);
  __Pyx_GIVEREF(__pyx_n_s_InvalidRole);
  PyList_SET_ITEM(__pyx_t_2, 10, __pyx_n_s_InvalidRole);
  __Pyx_INCREF(__pyx_n_s_InvalidSensitivity);
  __Pyx_GIVEREF(__pyx_n_s_InvalidSensitivity);
  PyList_SET_ITEM(__pyx_t_2, 11, __pyx_n_s_InvalidSensitivity);
  __Pyx_INCREF(__pyx_n_s_InvalidType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidType);
  PyList_SET_ITEM(__pyx_t_2, 12, __pyx_n_s_InvalidType);
  __Pyx_INCREF(__pyx_n_s_InvalidUser);
  __Pyx_GIVEREF(__pyx_n_s_InvalidUser);
  PyList_SET_ITEM(__pyx_t_2, 13, __pyx_n_s_InvalidUser);
  __Pyx_INCREF(__pyx_n_s_InvalidRuleType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidRuleType);
  PyList_SET_ITEM(__pyx_t_2, 14, __pyx_n_s_InvalidRuleType);
  __Pyx_INCREF(__pyx_n_s_InvalidBoundsType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidBoundsType);
  PyList_SET_ITEM(__pyx_t_2, 15, __pyx_n_s_InvalidBoundsType);
  __Pyx_INCREF(__pyx_n_s_InvalidConstraintType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidConstraintType);
  PyList_SET_ITEM(__pyx_t_2, 16, __pyx_n_s_InvalidConstraintType);
  __Pyx_INCREF(__pyx_n_s_InvalidDefaultType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidDefaultType);
  PyList_SET_ITEM(__pyx_t_2, 17, __pyx_n_s_InvalidDefaultType);
  __Pyx_INCREF(__pyx_n_s_InvalidFSUseType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidFSUseType);
  PyList_SET_ITEM(__pyx_t_2, 18, __pyx_n_s_InvalidFSUseType);
  __Pyx_INCREF(__pyx_n_s_InvalidMLSRuleType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidMLSRuleType);
  PyList_SET_ITEM(__pyx_t_2, 19, __pyx_n_s_InvalidMLSRuleType);
  __Pyx_INCREF(__pyx_n_s_InvalidRBACRuleType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidRBACRuleType);
  PyList_SET_ITEM(__pyx_t_2, 20, __pyx_n_s_InvalidRBACRuleType);
  __Pyx_INCREF(__pyx_n_s_InvalidTERuleType);
  __Pyx_GIVEREF(__pyx_n_s_InvalidTERuleType);
  PyList_SET_ITEM(__pyx_t_2, 21, __pyx_n_s_InvalidTERuleType);
  __Pyx_INCREF(__pyx_n_s_SymbolUseError);
  __Pyx_GIVEREF(__pyx_n_s_SymbolUseError);
  PyList_SET_ITEM(__pyx_t_2, 22, __pyx_n_s_SymbolUseError);
  __Pyx_INCREF(__pyx_n_s_RuleUseError);
  __Pyx_GIVEREF(__pyx_n_s_RuleUseError);
  PyList_SET_ITEM(__pyx_t_2, 23, __pyx_n_s_RuleUseError);
  __Pyx_INCREF(__pyx_n_s_ConstraintUseError);
  __Pyx_GIVEREF(__pyx_n_s_ConstraintUseError);
  PyList_SET_ITEM(__pyx_t_2, 24, __pyx_n_s_ConstraintUseError);
  __Pyx_INCREF(__pyx_n_s_NoStatement);
  __Pyx_GIVEREF(__pyx_n_s_NoStatement);
  PyList_SET_ITEM(__pyx_t_2, 25, __pyx_n_s_NoStatement);
  __Pyx_INCREF(__pyx_n_s_InvalidDefaultValue);
  __Pyx_GIVEREF(__pyx_n_s_InvalidDefaultValue);
  PyList_SET_ITEM(__pyx_t_2, 26, __pyx_n_s_InvalidDefaultValue);
  __Pyx_INCREF(__pyx_n_s_InvalidDefaultRange);
  __Pyx_GIVEREF(__pyx_n_s_InvalidDefaultRange);
  PyList_SET_ITEM(__pyx_t_2, 27, __pyx_n_s_InvalidDefaultRange);
  __Pyx_INCREF(__pyx_n_s_NoCommon);
  __Pyx_GIVEREF(__pyx_n_s_NoCommon);
  PyList_SET_ITEM(__pyx_t_2, 28, __pyx_n_s_NoCommon);
  __Pyx_INCREF(__pyx_n_s_NoDefaults);
  __Pyx_GIVEREF(__pyx_n_s_NoDefaults);
  PyList_SET_ITEM(__pyx_t_2, 29, __pyx_n_s_NoDefaults);
  __Pyx_INCREF(__pyx_n_s_RuleNotConditional);
  __Pyx_GIVEREF(__pyx_n_s_RuleNotConditional);
  PyList_SET_ITEM(__pyx_t_2, 30, __pyx_n_s_RuleNotConditional);
  __Pyx_INCREF(__pyx_n_s_TERuleNoFilename);
  __Pyx_GIVEREF(__pyx_n_s_TERuleNoFilename);
  PyList_SET_ITEM(__pyx_t_2, 31, __pyx_n_s_TERuleNoFilename);
  __Pyx_INCREF(__pyx_n_s_LowLevelPolicyError);
  __Pyx_GIVEREF(__pyx_n_s_LowLevelPolicyError);
  PyList_SET_ITEM(__pyx_t_2, 32, __pyx_n_s_LowLevelPolicyError);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_exception, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidPolicy); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidPolicy, __pyx_t_2) < 0) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_MLSDisabled); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MLSDisabled, __pyx_t_2) < 0) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidBoolean); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidBoolean, __pyx_t_2) < 0) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidCategory); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidCategory, __pyx_t_2) < 0) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidClass); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidClass, __pyx_t_2) < 0) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidCommon); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidCommon, __pyx_t_2) < 0) __PYX_ERR(23, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidInitialSid); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidInitialSid, __pyx_t_2) < 0) __PYX_ERR(23, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidLevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidLevel, __pyx_t_2) < 0) __PYX_ERR(23, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidLevelDecl); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidLevelDecl, __pyx_t_2) < 0) __PYX_ERR(23, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidRange, __pyx_t_2) < 0) __PYX_ERR(23, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidRole); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidRole, __pyx_t_2) < 0) __PYX_ERR(23, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidSensitivity); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidSensitivity, __pyx_t_2) < 0) __PYX_ERR(23, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidType, __pyx_t_2) < 0) __PYX_ERR(23, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidUser); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidUser, __pyx_t_2) < 0) __PYX_ERR(23, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidRuleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidRuleType, __pyx_t_2) < 0) __PYX_ERR(23, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidBoundsType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidBoundsType, __pyx_t_2) < 0) __PYX_ERR(23, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidConstraintType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidConstraintType, __pyx_t_2) < 0) __PYX_ERR(23, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidDefaultType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidDefaultType, __pyx_t_2) < 0) __PYX_ERR(23, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidFSUseType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidFSUseType, __pyx_t_2) < 0) __PYX_ERR(23, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidMLSRuleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidMLSRuleType, __pyx_t_2) < 0) __PYX_ERR(23, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidRBACRuleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidRBACRuleType, __pyx_t_2) < 0) __PYX_ERR(23, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidTERuleType); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidTERuleType, __pyx_t_2) < 0) __PYX_ERR(23, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_SymbolUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SymbolUseError, __pyx_t_2) < 0) __PYX_ERR(23, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_RuleUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_RuleUseError, __pyx_t_2) < 0) __PYX_ERR(23, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_ConstraintUseError); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ConstraintUseError, __pyx_t_2) < 0) __PYX_ERR(23, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_NoStatement); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_NoStatement, __pyx_t_2) < 0) __PYX_ERR(23, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidDefaultValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidDefaultValue, __pyx_t_2) < 0) __PYX_ERR(23, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidDefaultRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidDefaultRange, __pyx_t_2) < 0) __PYX_ERR(23, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_NoCommon); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_NoCommon, __pyx_t_2) < 0) __PYX_ERR(23, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_NoDefaults); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_NoDefaults, __pyx_t_2) < 0) __PYX_ERR(23, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_RuleNotConditional); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_RuleNotConditional, __pyx_t_2) < 0) __PYX_ERR(23, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_TERuleNoFilename); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TERuleNoFilename, __pyx_t_2) < 0) __PYX_ERR(23, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_LowLevelPolicyError); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LowLevelPolicyError, __pyx_t_2) < 0) __PYX_ERR(23, 47, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":23
 * # Classes
 * #
 * class PolicyEnum(enum.Enum):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_enum); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_PolicyEnum, __pyx_n_s_PolicyEnum, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Base_class_for_policy_enumerati); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "setools/policyrep/util.pxi":33
 *     """
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return self.name
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_1__str__, 0, __pyx_n_s_PolicyEnum___str, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_str, __pyx_t_4) < 0) __PYX_ERR(0, 33, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/util.pxi":36
 *         return self.name
 * 
 *     def __format__(self, spec):             # <<<<<<<<<<<<<<
 *         if not spec:
 *             return self.name
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_3__format__, 0, __pyx_n_s_PolicyEnum___format, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_format, __pyx_t_4) < 0) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/util.pxi":42
 *             return super(PolicyEnum, self).__format__(spec)
 * 
 *     def __eq__(self, other):             # <<<<<<<<<<<<<<
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_5__eq__, 0, __pyx_n_s_PolicyEnum___eq, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_eq, __pyx_t_4) < 0) __PYX_ERR(0, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/util.pxi":45
 *         return super(PolicyEnum, self).__eq__(other)
 * 
 *     def __hash__(self):             # <<<<<<<<<<<<<<
 *         return hash(self.name)
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_7__hash__, 0, __pyx_n_s_PolicyEnum___hash, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_hash, __pyx_t_4) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/util.pxi":49
 * 
 *     @classmethod
 *     def lookup(cls, value):             # <<<<<<<<<<<<<<
 *         """Look up an enumeration by name or value."""
 * 
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_10PolicyEnum_9lookup, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_PolicyEnum_lookup, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/util.pxi":48
 *         return hash(self.name)
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def lookup(cls, value):
 *         """Look up an enumeration by name or value."""
 */
  __pyx_t_5 = __Pyx_Method_ClassMethod(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_lookup, __pyx_t_5) < 0) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/util.pxi":23
 * # Classes
 * #
 * class PolicyEnum(enum.Enum):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
  __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_PolicyEnum, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PolicyEnum, __pyx_t_5) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":58
 * 
 * 
 * class WeakKeyDefaultDict(weakref.WeakKeyDictionary):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_weakref); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_WeakKeyDictionary); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_WeakKeyDefaultDict, __pyx_n_s_WeakKeyDefaultDict, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_A_dictionary_with_a_weak_refere); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "setools/policyrep/util.pxi":70
 *     """
 * 
 *     def __init__(self, default_factory, *args):             # <<<<<<<<<<<<<<
 *         self.default_factory = default_factory
 *         super().__init__(args)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_1__init__, 0, __pyx_n_s_WeakKeyDefaultDict___init, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_t_4);
  PyList_Append(__pyx_t_5, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_init, __pyx_t_4) < 0) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/util.pxi":74
 *         super().__init__(args)
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         try:
 *             return super().__getitem__(key)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_3__getitem__, 0, __pyx_n_s_WeakKeyDefaultDict___getitem, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_t_4);
  PyList_Append(__pyx_t_5, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_getitem, __pyx_t_4) < 0) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/util.pxi":80
 *             return self.__missing__(key)
 * 
 *     def __missing__(self, key):             # <<<<<<<<<<<<<<
 *         if self.default_factory is None:
 *             raise KeyError(key)
 */
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_18WeakKeyDefaultDict_5__missing__, 0, __pyx_n_s_WeakKeyDefaultDict___missing, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_missing, __pyx_t_4) < 0) __PYX_ERR(0, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/util.pxi":58
 * 
 * 
 * class WeakKeyDefaultDict(weakref.WeakKeyDictionary):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_WeakKeyDefaultDict, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_CyFunction_InitClassCell(__pyx_t_5, __pyx_t_4) < 0) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_WeakKeyDefaultDict, __pyx_t_4) < 0) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/util.pxi":235
 * 
 * 
 * def lookup_boolean_name_sub(name):             # <<<<<<<<<<<<<<
 *     """
 *     Read the /etc/selinux/TYPE/booleans.subs_dist file looking
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_1lookup_boolean_name_sub, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_lookup_boolean_name_sub, __pyx_t_1) < 0) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":21
 * #
 * 
 * TruthTableRow = collections.namedtuple("TruthTableRow", ["values", "result"])             # <<<<<<<<<<<<<<
 * 
 * cdef object _cond_cache = WeakKeyDefaultDict(dict)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_collections); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_values);
  __Pyx_GIVEREF(__pyx_n_u_values);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_values);
  __Pyx_INCREF(__pyx_n_u_result);
  __Pyx_GIVEREF(__pyx_n_u_result);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_result);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_n_u_TruthTableRow);
  __Pyx_GIVEREF(__pyx_n_u_TruthTableRow);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_TruthTableRow);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TruthTableRow, __pyx_t_1) < 0) __PYX_ERR(1, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":23
 * TruthTableRow = collections.namedtuple("TruthTableRow", ["values", "result"])
 * 
 * cdef object _cond_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__cond_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__cond_cache, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;

  /* "setools/policyrep/boolcond.pxi":240
 * 
 *     _cond_expr_val_to_details = {
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),             # <<<<<<<<<<<<<<
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_From_int(COND_NOT); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_4lambda1, 0, __pyx_n_s_ConditionalOperator_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_kp_u__133);
  __Pyx_GIVEREF(__pyx_kp_u__133);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u__133);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2);
  __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_1, __pyx_t_4) < 0) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/boolcond.pxi":241
 *     _cond_expr_val_to_details = {
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),             # <<<<<<<<<<<<<<
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 */
  __pyx_t_4 = __Pyx_PyInt_From_int(COND_OR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_5lambda2, 0, __pyx_n_s_ConditionalOperator_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_kp_u__134);
  __Pyx_GIVEREF(__pyx_kp_u__134);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__134);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_t_2) < 0) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":242
 *         sepol.COND_NOT: ("!", 5, lambda x: not x),
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),             # <<<<<<<<<<<<<<
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(COND_AND); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_6lambda3, 0, __pyx_n_s_ConditionalOperator_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_kp_u__135);
  __Pyx_GIVEREF(__pyx_kp_u__135);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u__135);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);
  __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_t_1) < 0) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/boolcond.pxi":243
 *         sepol.COND_OR: ("||", 1, lambda x, y: x or y),
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),             # <<<<<<<<<<<<<<
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(COND_XOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_7lambda4, 0, __pyx_n_s_ConditionalOperator_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_kp_u__136);
  __Pyx_GIVEREF(__pyx_kp_u__136);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u__136);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2);
  __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_1, __pyx_t_4) < 0) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/boolcond.pxi":244
 *         sepol.COND_AND: ("&&", 3, lambda x, y: x and y),
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),             # <<<<<<<<<<<<<<
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}
 * 
 */
  __pyx_t_4 = __Pyx_PyInt_From_int(COND_EQ); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_8lambda5, 0, __pyx_n_s_ConditionalOperator_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_kp_u__12);
  __Pyx_GIVEREF(__pyx_kp_u__12);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__12);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_t_2) < 0) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/boolcond.pxi":245
 *         sepol.COND_XOR: ("^", 2, lambda x, y: x ^ y),
 *         sepol.COND_EQ: ("==", 4, lambda x, y: x == y),
 *         sepol.COND_NEQ: ("!=", 4, lambda x, y: x != y)}             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(COND_NEQ); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_19ConditionalOperator_9lambda6, 0, __pyx_n_s_ConditionalOperator_lambda, NULL, __pyx_n_s_setools_policyrep, __pyx_d, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_kp_u__13);
  __Pyx_GIVEREF(__pyx_kp_u__13);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u__13);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4);
  __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_t_1) < 0) __PYX_ERR(1, 240, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_ConditionalOperator->tp_dict, __pyx_n_s_cond_expr_val_to_details, __pyx_t_3) < 0) __PYX_ERR(1, 239, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_ConditionalOperator);

  /* "setools/policyrep/bounds.pxi":25
 * # Classes
 * #
 * class BoundsRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of *bounds rule types."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_1, __pyx_n_s_BoundsRuletype, __pyx_n_s_BoundsRuletype, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_bounds_rule_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/bounds.pxi":29
 *     """Enumeration of *bounds rule types."""
 * 
 *     typebounds = 1             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_typebounds, __pyx_int_1) < 0) __PYX_ERR(7, 29, __pyx_L1_error)

  /* "setools/policyrep/bounds.pxi":25
 * # Classes
 * #
 * class BoundsRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of *bounds rule types."""
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_BoundsRuletype, __pyx_t_1, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_BoundsRuletype, __pyx_t_4) < 0) __PYX_ERR(7, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/constraint.pxi":24
 * # Typing
 * #
 * AnyConstraint = TypeVar("AnyConstraint", bound=BaseConstraint)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TypeVar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_bound, ((PyObject *)__pyx_ptype_7setools_9policyrep_BaseConstraint)) < 0) __PYX_ERR(2, 24, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__137, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AnyConstraint, __pyx_t_2) < 0) __PYX_ERR(2, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":30
 * # Classes
 * #
 * class ConstraintRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of constraint types."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_3, __pyx_n_s_ConstraintRuletype, __pyx_n_s_ConstraintRuletype, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_constraint_types); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "setools/policyrep/constraint.pxi":34
 *     """Enumeration of constraint types."""
 * 
 *     constrain = 1             # <<<<<<<<<<<<<<
 *     mlsconstrain = 2
 *     validatetrans = 3
 */
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_constrain, __pyx_int_1) < 0) __PYX_ERR(2, 34, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":35
 * 
 *     constrain = 1
 *     mlsconstrain = 2             # <<<<<<<<<<<<<<
 *     validatetrans = 3
 *     mlsvalidatetrans = 4
 */
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_mlsconstrain, __pyx_int_2) < 0) __PYX_ERR(2, 35, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":36
 *     constrain = 1
 *     mlsconstrain = 2
 *     validatetrans = 3             # <<<<<<<<<<<<<<
 *     mlsvalidatetrans = 4
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_validatetrans, __pyx_int_3) < 0) __PYX_ERR(2, 36, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":37
 *     mlsconstrain = 2
 *     validatetrans = 3
 *     mlsvalidatetrans = 4             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_mlsvalidatetrans, __pyx_int_4) < 0) __PYX_ERR(2, 37, __pyx_L1_error)

  /* "setools/policyrep/constraint.pxi":30
 * # Classes
 * #
 * class ConstraintRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of constraint types."""
 */
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_ConstraintRuletype, __pyx_t_3, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ConstraintRuletype, __pyx_t_4) < 0) __PYX_ERR(2, 30, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/constraint.pxi":278
 * 
 *     _expr_type_to_text = {
 *         sepol.CEXPR_NOT: "not",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_AND: "and",
 *         sepol.CEXPR_OR: "or"}
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_NOT); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_not) < 0) __PYX_ERR(2, 278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":279
 *     _expr_type_to_text = {
 *         sepol.CEXPR_NOT: "not",
 *         sepol.CEXPR_AND: "and",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_OR: "or"}
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_AND); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_and) < 0) __PYX_ERR(2, 278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":280
 *         sepol.CEXPR_NOT: "not",
 *         sepol.CEXPR_AND: "and",
 *         sepol.CEXPR_OR: "or"}             # <<<<<<<<<<<<<<
 * 
 *     _expr_op_to_text = {
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_OR); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_or) < 0) __PYX_ERR(2, 278, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_dict, __pyx_n_s_expr_type_to_text, __pyx_t_3) < 0) __PYX_ERR(2, 277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_ConstraintExprNode);

  /* "setools/policyrep/constraint.pxi":283
 * 
 *     _expr_op_to_text = {
 *         sepol.CEXPR_EQ: "==",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_NEQ: "!=",
 *         sepol.CEXPR_DOM: "dom",
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_EQ); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_kp_u__12) < 0) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":284
 *     _expr_op_to_text = {
 *         sepol.CEXPR_EQ: "==",
 *         sepol.CEXPR_NEQ: "!=",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_DOM: "dom",
 *         sepol.CEXPR_DOMBY: "domby",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_NEQ); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_kp_u__13) < 0) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":285
 *         sepol.CEXPR_EQ: "==",
 *         sepol.CEXPR_NEQ: "!=",
 *         sepol.CEXPR_DOM: "dom",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_DOMBY: "domby",
 *         sepol.CEXPR_INCOMP: "incomp"}
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_DOM); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_dom) < 0) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":286
 *         sepol.CEXPR_NEQ: "!=",
 *         sepol.CEXPR_DOM: "dom",
 *         sepol.CEXPR_DOMBY: "domby",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_INCOMP: "incomp"}
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_DOMBY); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_domby) < 0) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":287
 *         sepol.CEXPR_DOM: "dom",
 *         sepol.CEXPR_DOMBY: "domby",
 *         sepol.CEXPR_INCOMP: "incomp"}             # <<<<<<<<<<<<<<
 * 
 *     _sym_to_text = {
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_INCOMP); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_incomp) < 0) __PYX_ERR(2, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_dict, __pyx_n_s_expr_op_to_text, __pyx_t_3) < 0) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_ConstraintExprNode);

  /* "setools/policyrep/constraint.pxi":290
 * 
 *     _sym_to_text = {
 *         sepol.CEXPR_USER: "u1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_ROLE: "r1",
 *         sepol.CEXPR_TYPE: "t1",
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(21); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_USER); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_u1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":291
 *     _sym_to_text = {
 *         sepol.CEXPR_USER: "u1",
 *         sepol.CEXPR_ROLE: "r1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_TYPE: "t1",
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_ROLE); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_r1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":292
 *         sepol.CEXPR_USER: "u1",
 *         sepol.CEXPR_ROLE: "r1",
 *         sepol.CEXPR_TYPE: "t1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_TYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_t1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":293
 *         sepol.CEXPR_ROLE: "r1",
 *         sepol.CEXPR_TYPE: "t1",
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_USER + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_u2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":294
 *         sepol.CEXPR_TYPE: "t1",
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_ROLE + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_r2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":295
 *         sepol.CEXPR_USER + sepol.CEXPR_TARGET: "u2",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_TYPE + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_t2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":296
 *         sepol.CEXPR_ROLE + sepol.CEXPR_TARGET: "r2",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_USER + CEXPR_XTARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_u3) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":297
 *         sepol.CEXPR_TYPE + sepol.CEXPR_TARGET: "t2",
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",
 *         sepol.CEXPR_L1L2: "l1",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_ROLE + CEXPR_XTARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_r3) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":298
 *         sepol.CEXPR_USER + sepol.CEXPR_XTARGET: "u3",
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1L2: "l1",
 *         sepol.CEXPR_L1H2: "l1",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_TYPE + CEXPR_XTARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_t3) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":299
 *         sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET: "r3",
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",
 *         sepol.CEXPR_L1L2: "l1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1H2: "l1",
 *         sepol.CEXPR_H1L2: "h1",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_L1L2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_l1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":300
 *         sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET: "t3",
 *         sepol.CEXPR_L1L2: "l1",
 *         sepol.CEXPR_L1H2: "l1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_H1L2: "h1",
 *         sepol.CEXPR_H1H2: "h1",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_L1H2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_l1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":301
 *         sepol.CEXPR_L1L2: "l1",
 *         sepol.CEXPR_L1H2: "l1",
 *         sepol.CEXPR_H1L2: "h1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_H1H2: "h1",
 *         sepol.CEXPR_L1H1: "l1",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_H1L2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_h1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":302
 *         sepol.CEXPR_L1H2: "l1",
 *         sepol.CEXPR_H1L2: "h1",
 *         sepol.CEXPR_H1H2: "h1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1H1: "l1",
 *         sepol.CEXPR_L2H2: "l2",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_H1H2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_h1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":303
 *         sepol.CEXPR_H1L2: "h1",
 *         sepol.CEXPR_H1H2: "h1",
 *         sepol.CEXPR_L1H1: "l1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L2H2: "l2",
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_L1H1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_l1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":304
 *         sepol.CEXPR_H1H2: "h1",
 *         sepol.CEXPR_L1H1: "l1",
 *         sepol.CEXPR_L2H2: "l2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(CEXPR_L2H2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_l2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":305
 *         sepol.CEXPR_L1H1: "l1",
 *         sepol.CEXPR_L2H2: "l2",
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_L1L2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_l2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":306
 *         sepol.CEXPR_L2H2: "l2",
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_L1H2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_h2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":307
 *         sepol.CEXPR_L1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_L1H1 + sepol.CEXPR_TARGET: "h1",
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_H1L2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_l2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":308
 *         sepol.CEXPR_L1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L1H1 + sepol.CEXPR_TARGET: "h1",
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_H1H2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_h2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":309
 *         sepol.CEXPR_H1L2 + sepol.CEXPR_TARGET: "l2",
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_L1H1 + sepol.CEXPR_TARGET: "h1",             # <<<<<<<<<<<<<<
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_L1H1 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_h1) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/constraint.pxi":310
 *         sepol.CEXPR_H1H2 + sepol.CEXPR_TARGET: "h2",
 *         sepol.CEXPR_L1H1 + sepol.CEXPR_TARGET: "h1",
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}             # <<<<<<<<<<<<<<
 * 
 *     _role_syms = [sepol.CEXPR_ROLE,
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_L2H2 + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_2, __pyx_n_u_h2) < 0) __PYX_ERR(2, 290, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_dict, __pyx_n_s_sym_to_text, __pyx_t_3) < 0) __PYX_ERR(2, 289, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_ConstraintExprNode);

  /* "setools/policyrep/constraint.pxi":312
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}
 * 
 *     _role_syms = [sepol.CEXPR_ROLE,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(CEXPR_ROLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "setools/policyrep/constraint.pxi":313
 * 
 *     _role_syms = [sepol.CEXPR_ROLE,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_TARGET,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_ROLE + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/constraint.pxi":314
 *     _role_syms = [sepol.CEXPR_ROLE,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]             # <<<<<<<<<<<<<<
 * 
 *     _type_syms = [sepol.CEXPR_TYPE,
 */
  __pyx_t_1 = __Pyx_PyInt_From_int((CEXPR_ROLE + CEXPR_XTARGET)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "setools/policyrep/constraint.pxi":312
 *         sepol.CEXPR_L2H2 + sepol.CEXPR_TARGET: "h2"}
 * 
 *     _role_syms = [sepol.CEXPR_ROLE,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
 */
  __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_1);
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_dict, __pyx_n_s_role_syms, __pyx_t_4) < 0) __PYX_ERR(2, 312, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_ConstraintExprNode);

  /* "setools/policyrep/constraint.pxi":316
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
 * 
 *     _type_syms = [sepol.CEXPR_TYPE,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
 */
  __pyx_t_4 = __Pyx_PyInt_From_int(CEXPR_TYPE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/constraint.pxi":317
 * 
 *     _type_syms = [sepol.CEXPR_TYPE,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_TARGET,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_int((CEXPR_TYPE + CEXPR_TARGET)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "setools/policyrep/constraint.pxi":318
 *     _type_syms = [sepol.CEXPR_TYPE,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]             # <<<<<<<<<<<<<<
 * 
 *     _user_syms = [sepol.CEXPR_USER,
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_TYPE + CEXPR_XTARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/constraint.pxi":316
 *                   sepol.CEXPR_ROLE + sepol.CEXPR_XTARGET]
 * 
 *     _type_syms = [sepol.CEXPR_TYPE,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
 */
  __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
  __pyx_t_4 = 0;
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_dict, __pyx_n_s_type_syms, __pyx_t_3) < 0) __PYX_ERR(2, 316, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_ConstraintExprNode);

  /* "setools/policyrep/constraint.pxi":320
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
 * 
 *     _user_syms = [sepol.CEXPR_USER,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_USER + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(CEXPR_USER); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "setools/policyrep/constraint.pxi":321
 * 
 *     _user_syms = [sepol.CEXPR_USER,
 *                   sepol.CEXPR_USER + sepol.CEXPR_TARGET,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_From_int((CEXPR_USER + CEXPR_TARGET)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/constraint.pxi":322
 *     _user_syms = [sepol.CEXPR_USER,
 *                   sepol.CEXPR_USER + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __pyx_t_1 = __Pyx_PyInt_From_int((CEXPR_USER + CEXPR_XTARGET)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "setools/policyrep/constraint.pxi":320
 *                   sepol.CEXPR_TYPE + sepol.CEXPR_XTARGET]
 * 
 *     _user_syms = [sepol.CEXPR_USER,             # <<<<<<<<<<<<<<
 *                   sepol.CEXPR_USER + sepol.CEXPR_TARGET,
 *                   sepol.CEXPR_USER + sepol.CEXPR_XTARGET]
 */
  __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_1);
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_ConstraintExprNode->tp_dict, __pyx_n_s_user_syms, __pyx_t_4) < 0) __PYX_ERR(2, 320, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_ConstraintExprNode);

  /* "setools/policyrep/default.pxi":24
 * # Typing and enums
 * #
 * AnyDefault = Union[Default, DefaultRange]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Union); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_Default));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_Default));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_Default));
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_DefaultRange));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_DefaultRange));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_ptype_7setools_9policyrep_DefaultRange));
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AnyDefault, __pyx_t_2) < 0) __PYX_ERR(9, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":27
 * 
 * 
 * class DefaultRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default rule types."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_DefaultRuletype, __pyx_n_s_DefaultRuletype, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_default_rule_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/default.pxi":31
 *     """Enumeration of default rule types."""
 * 
 *     default_user = 1             # <<<<<<<<<<<<<<
 *     default_role = 2
 *     default_type = 3
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_default_user, __pyx_int_1) < 0) __PYX_ERR(9, 31, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":32
 * 
 *     default_user = 1
 *     default_role = 2             # <<<<<<<<<<<<<<
 *     default_type = 3
 *     default_range = 4
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_default_role, __pyx_int_2) < 0) __PYX_ERR(9, 32, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":33
 *     default_user = 1
 *     default_role = 2
 *     default_type = 3             # <<<<<<<<<<<<<<
 *     default_range = 4
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_default_type, __pyx_int_3) < 0) __PYX_ERR(9, 33, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":34
 *     default_role = 2
 *     default_type = 3
 *     default_range = 4             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_default_range, __pyx_int_4) < 0) __PYX_ERR(9, 34, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":27
 * 
 * 
 * class DefaultRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default rule types."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_DefaultRuletype, __pyx_t_1, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_DefaultRuletype, __pyx_t_3) < 0) __PYX_ERR(9, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/default.pxi":37
 * 
 * 
 * class DefaultValue(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default values."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_DefaultValue, __pyx_n_s_DefaultValue, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_default_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/default.pxi":41
 *     """Enumeration of default values."""
 * 
 *     source = sepol.DEFAULT_SOURCE             # <<<<<<<<<<<<<<
 *     target = sepol.DEFAULT_TARGET
 *     glblub = sepol.DEFAULT_GLBLUB
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_SOURCE); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_source, __pyx_t_3) < 0) __PYX_ERR(9, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":42
 * 
 *     source = sepol.DEFAULT_SOURCE
 *     target = sepol.DEFAULT_TARGET             # <<<<<<<<<<<<<<
 *     glblub = sepol.DEFAULT_GLBLUB
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_TARGET); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_target, __pyx_t_3) < 0) __PYX_ERR(9, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":43
 *     source = sepol.DEFAULT_SOURCE
 *     target = sepol.DEFAULT_TARGET
 *     glblub = sepol.DEFAULT_GLBLUB             # <<<<<<<<<<<<<<
 * 
 *     @classmethod
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(DEFAULT_GLBLUB); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_glblub, __pyx_t_3) < 0) __PYX_ERR(9, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":46
 * 
 *     @classmethod
 *     def from_default_range(cls, range_):             # <<<<<<<<<<<<<<
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 *                        sepol.DEFAULT_SOURCE_HIGH: sepol.DEFAULT_SOURCE,
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_12DefaultValue_1from_default_range, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DefaultValue_from_default_range, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "setools/policyrep/default.pxi":45
 *     glblub = sepol.DEFAULT_GLBLUB
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: sepol.DEFAULT_SOURCE,
 */
  __pyx_t_5 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_from_default_range, __pyx_t_5) < 0) __PYX_ERR(9, 46, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "setools/policyrep/default.pxi":37
 * 
 * 
 * class DefaultValue(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default values."""
 */
  __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_DefaultValue, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_DefaultValue, __pyx_t_5) < 0) __PYX_ERR(9, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/default.pxi":61
 * 
 * 
 * class DefaultRangeValue(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default range values."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_DefaultRangeValue, __pyx_n_s_DefaultRangeValue, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_default_range_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/default.pxi":65
 *     """Enumeration of default range values."""
 * 
 *     low = 1             # <<<<<<<<<<<<<<
 *     high = 2
 *     low_high = 3
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_low, __pyx_int_1) < 0) __PYX_ERR(9, 65, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":66
 * 
 *     low = 1
 *     high = 2             # <<<<<<<<<<<<<<
 *     low_high = 3
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_high, __pyx_int_2) < 0) __PYX_ERR(9, 66, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":67
 *     low = 1
 *     high = 2
 *     low_high = 3             # <<<<<<<<<<<<<<
 * 
 *     @classmethod
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_low_high, __pyx_int_3) < 0) __PYX_ERR(9, 67, __pyx_L1_error)

  /* "setools/policyrep/default.pxi":70
 * 
 *     @classmethod
 *     def from_default_range(cls, range_):             # <<<<<<<<<<<<<<
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 *                        sepol.DEFAULT_SOURCE_HIGH: 2,
 */
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_7setools_9policyrep_17DefaultRangeValue_1from_default_range, __Pyx_CYFUNCTION_CLASSMETHOD, __pyx_n_s_DefaultRangeValue_from_default_r, NULL, __pyx_n_s_setools_policyrep, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);

  /* "setools/policyrep/default.pxi":69
 *     low_high = 3
 * 
 *     @classmethod             # <<<<<<<<<<<<<<
 *     def from_default_range(cls, range_):
 *         default_map = {sepol.DEFAULT_SOURCE_LOW: 1,
 */
  __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_from_default_range, __pyx_t_3) < 0) __PYX_ERR(9, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/default.pxi":61
 * 
 * 
 * class DefaultRangeValue(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of default range values."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_DefaultRangeValue, __pyx_t_1, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_DefaultRangeValue, __pyx_t_3) < 0) __PYX_ERR(9, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":24
 * # Classes
 * #
 * class FSUseRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of fs_use_* rule types."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_FSUseRuletype, __pyx_n_s_FSUseRuletype, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_fs_use__rule_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(10, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/fscontext.pxi":30
 *     # only supports these three.
 * 
 *     fs_use_xattr = sepol.SECURITY_FS_USE_XATTR             # <<<<<<<<<<<<<<
 *     fs_use_trans = sepol.SECURITY_FS_USE_TRANS
 *     fs_use_task = sepol.SECURITY_FS_USE_TASK
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(SECURITY_FS_USE_XATTR); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_fs_use_xattr, __pyx_t_3) < 0) __PYX_ERR(10, 30, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/fscontext.pxi":31
 * 
 *     fs_use_xattr = sepol.SECURITY_FS_USE_XATTR
 *     fs_use_trans = sepol.SECURITY_FS_USE_TRANS             # <<<<<<<<<<<<<<
 *     fs_use_task = sepol.SECURITY_FS_USE_TASK
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(SECURITY_FS_USE_TRANS); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_fs_use_trans, __pyx_t_3) < 0) __PYX_ERR(10, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/fscontext.pxi":32
 *     fs_use_xattr = sepol.SECURITY_FS_USE_XATTR
 *     fs_use_trans = sepol.SECURITY_FS_USE_TRANS
 *     fs_use_task = sepol.SECURITY_FS_USE_TASK             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(SECURITY_FS_USE_TASK); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_fs_use_task, __pyx_t_3) < 0) __PYX_ERR(10, 32, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/fscontext.pxi":24
 * # Classes
 * #
 * class FSUseRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of fs_use_* rule types."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_FSUseRuletype, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FSUseRuletype, __pyx_t_3) < 0) __PYX_ERR(10, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/fscontext.pxi":77
 *     """
 * 
 *     _filetype_to_text = {0: "",             # <<<<<<<<<<<<<<
 *                          S_IFBLK: "-b",
 *                          S_IFCHR: "-c",
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_int_0, __pyx_kp_u__37) < 0) __PYX_ERR(10, 77, __pyx_L1_error)

  /* "setools/policyrep/fscontext.pxi":78
 * 
 *     _filetype_to_text = {0: "",
 *                          S_IFBLK: "-b",             # <<<<<<<<<<<<<<
 *                          S_IFCHR: "-c",
 *                          S_IFDIR: "-d",
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFBLK); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u_b) < 0) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":79
 *     _filetype_to_text = {0: "",
 *                          S_IFBLK: "-b",
 *                          S_IFCHR: "-c",             # <<<<<<<<<<<<<<
 *                          S_IFDIR: "-d",
 *                          S_IFIFO: "-p",
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFCHR); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u_c_2) < 0) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":80
 *                          S_IFBLK: "-b",
 *                          S_IFCHR: "-c",
 *                          S_IFDIR: "-d",             # <<<<<<<<<<<<<<
 *                          S_IFIFO: "-p",
 *                          S_IFREG: "--",
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFDIR); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u_d) < 0) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":81
 *                          S_IFCHR: "-c",
 *                          S_IFDIR: "-d",
 *                          S_IFIFO: "-p",             # <<<<<<<<<<<<<<
 *                          S_IFREG: "--",
 *                          S_IFLNK: "-l",
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFIFO); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u_p) < 0) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":82
 *                          S_IFDIR: "-d",
 *                          S_IFIFO: "-p",
 *                          S_IFREG: "--",             # <<<<<<<<<<<<<<
 *                          S_IFLNK: "-l",
 *                          S_IFSOCK: "-s"}
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFREG); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u__142) < 0) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":83
 *                          S_IFIFO: "-p",
 *                          S_IFREG: "--",
 *                          S_IFLNK: "-l",             # <<<<<<<<<<<<<<
 *                          S_IFSOCK: "-s"}
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFLNK); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u_l) < 0) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":84
 *                          S_IFREG: "--",
 *                          S_IFLNK: "-l",
 *                          S_IFSOCK: "-s"}             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFSOCK); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u_s) < 0) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_GenfsFiletype->tp_dict, __pyx_n_s_filetype_to_text, __pyx_t_2) < 0) __PYX_ERR(10, 77, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_GenfsFiletype);

  /* "setools/policyrep/fscontext.pxi":100
 *         readonly str path
 * 
 *     _sclass_to_stat = {0: 0,             # <<<<<<<<<<<<<<
 *                        "dir": S_IFDIR,
 *                        "file": S_IFREG,
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_int_0, __pyx_int_0) < 0) __PYX_ERR(10, 100, __pyx_L1_error)

  /* "setools/policyrep/fscontext.pxi":101
 * 
 *     _sclass_to_stat = {0: 0,
 *                        "dir": S_IFDIR,             # <<<<<<<<<<<<<<
 *                        "file": S_IFREG,
 *                        "lnk_file": S_IFLNK,
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFDIR); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_dir, __pyx_t_1) < 0) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":102
 *     _sclass_to_stat = {0: 0,
 *                        "dir": S_IFDIR,
 *                        "file": S_IFREG,             # <<<<<<<<<<<<<<
 *                        "lnk_file": S_IFLNK,
 *                        "fifo_file": S_IFIFO,
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFREG); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_file, __pyx_t_1) < 0) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":103
 *                        "dir": S_IFDIR,
 *                        "file": S_IFREG,
 *                        "lnk_file": S_IFLNK,             # <<<<<<<<<<<<<<
 *                        "fifo_file": S_IFIFO,
 *                        "sock_file": S_IFSOCK,
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFLNK); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_lnk_file, __pyx_t_1) < 0) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":104
 *                        "file": S_IFREG,
 *                        "lnk_file": S_IFLNK,
 *                        "fifo_file": S_IFIFO,             # <<<<<<<<<<<<<<
 *                        "sock_file": S_IFSOCK,
 *                        "blk_file": S_IFBLK,
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFIFO); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_fifo_file, __pyx_t_1) < 0) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":105
 *                        "lnk_file": S_IFLNK,
 *                        "fifo_file": S_IFIFO,
 *                        "sock_file": S_IFSOCK,             # <<<<<<<<<<<<<<
 *                        "blk_file": S_IFBLK,
 *                        "chr_file": S_IFCHR}
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFSOCK); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sock_file, __pyx_t_1) < 0) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":106
 *                        "fifo_file": S_IFIFO,
 *                        "sock_file": S_IFSOCK,
 *                        "blk_file": S_IFBLK,             # <<<<<<<<<<<<<<
 *                        "chr_file": S_IFCHR}
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFBLK); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_blk_file, __pyx_t_1) < 0) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/fscontext.pxi":107
 *                        "sock_file": S_IFSOCK,
 *                        "blk_file": S_IFBLK,
 *                        "chr_file": S_IFCHR}             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(S_IFCHR); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_chr_file, __pyx_t_1) < 0) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_7setools_9policyrep_Genfscon->tp_dict, __pyx_n_s_sclass_to_stat, __pyx_t_2) < 0) __PYX_ERR(10, 100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_7setools_9policyrep_Genfscon);

  /* "setools/policyrep/initsid.pxi":25
 * #
 * # Binary policy does not contain the SID names
 * SELINUX_SIDNAMES = ("undefined", "kernel", "security", "unlabeled", "fs", "file", "file_labels",             # <<<<<<<<<<<<<<
 *     "init", "any_socket", "port", "netif", "netmsg", "node", "igmp_packet", "icmp_socket",
 *     "tcp_socket", "sysctl_modprobe", "sysctl", "sysctl_fs", "sysctl_kernel", "sysctl_net",
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_SELINUX_SIDNAMES, __pyx_tuple__143) < 0) __PYX_ERR(11, 25, __pyx_L1_error)

  /* "setools/policyrep/initsid.pxi":31
 * 
 * 
 * XEN_SIDNAMES = ("xen", "dom0", "domxen", "domio", "unlabeled", "security", "irq", "iomem", "ioport",             # <<<<<<<<<<<<<<
 *     "device", "domU", "domDM")
 * 
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_XEN_SIDNAMES, __pyx_tuple__144) < 0) __PYX_ERR(11, 31, __pyx_L1_error)

  /* "setools/policyrep/mls.pxi":22
 * # pylint: disable=protected-access
 * 
 * cdef object _cat_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * cdef object _sens_cache = WeakKeyDefaultDict(dict)
 * cdef object _leveldecl_cache = WeakKeyDefaultDict(dict)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__cat_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__cat_cache, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mls.pxi":23
 * 
 * cdef object _cat_cache = WeakKeyDefaultDict(dict)
 * cdef object _sens_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * cdef object _leveldecl_cache = WeakKeyDefaultDict(dict)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__sens_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__sens_cache, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/mls.pxi":24
 * cdef object _cat_cache = WeakKeyDefaultDict(dict)
 * cdef object _sens_cache = WeakKeyDefaultDict(dict)
 * cdef object _leveldecl_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__leveldecl_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__leveldecl_cache, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/mlsrule.pxi":22
 * 
 * 
 * class MLSRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """An enumeration of MLS rule types."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_MLSRuletype, __pyx_n_s_MLSRuletype, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_An_enumeration_of_MLS_rule_types); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/mlsrule.pxi":26
 *     """An enumeration of MLS rule types."""
 * 
 *     range_transition = 1             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_range_transition, __pyx_int_1) < 0) __PYX_ERR(12, 26, __pyx_L1_error)

  /* "setools/policyrep/mlsrule.pxi":22
 * 
 * 
 * class MLSRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """An enumeration of MLS rule types."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_MLSRuletype, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MLSRuletype, __pyx_t_3) < 0) __PYX_ERR(12, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":21
 * #
 * 
 * IbpkeyconRange = collections.namedtuple("IbpkeyconRange", ["low", "high"])             # <<<<<<<<<<<<<<
 * PortconRange = collections.namedtuple("PortconRange", ["low", "high"])
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_collections); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_u_low);
  __Pyx_GIVEREF(__pyx_n_u_low);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_low);
  __Pyx_INCREF(__pyx_n_u_high);
  __Pyx_GIVEREF(__pyx_n_u_high);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_high);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_n_u_IbpkeyconRange);
  __Pyx_GIVEREF(__pyx_n_u_IbpkeyconRange);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_u_IbpkeyconRange);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_IbpkeyconRange, __pyx_t_2) < 0) __PYX_ERR(13, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":22
 * 
 * IbpkeyconRange = collections.namedtuple("IbpkeyconRange", ["low", "high"])
 * PortconRange = collections.namedtuple("PortconRange", ["low", "high"])             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_collections); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_u_low);
  __Pyx_GIVEREF(__pyx_n_u_low);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_low);
  __Pyx_INCREF(__pyx_n_u_high);
  __Pyx_GIVEREF(__pyx_n_u_high);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_high);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_PortconRange);
  __Pyx_GIVEREF(__pyx_n_u_PortconRange);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_PortconRange);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PortconRange, __pyx_t_2) < 0) __PYX_ERR(13, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/netcontext.pxi":149
 * 
 * 
 * class NodeconIPVersion(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Nodecon IP Version"""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_NodeconIPVersion, __pyx_n_s_NodeconIPVersion, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Nodecon_IP_Version); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/netcontext.pxi":153
 *     """Nodecon IP Version"""
 * 
 *     ipv4 = AF_INET             # <<<<<<<<<<<<<<
 *     ipv6 = AF_INET6
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AF_INET); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_ipv4, __pyx_t_3) < 0) __PYX_ERR(13, 153, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/netcontext.pxi":154
 * 
 *     ipv4 = AF_INET
 *     ipv6 = AF_INET6             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AF_INET6); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_ipv6, __pyx_t_3) < 0) __PYX_ERR(13, 154, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/netcontext.pxi":149
 * 
 * 
 * class NodeconIPVersion(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Nodecon IP Version"""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_NodeconIPVersion, __pyx_t_1, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_NodeconIPVersion, __pyx_t_3) < 0) __PYX_ERR(13, 149, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/netcontext.pxi":252
 * 
 * 
 * class PortconProtocol(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """A portcon protocol type."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_2, __pyx_n_s_PortconProtocol, __pyx_n_s_PortconProtocol, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_A_portcon_protocol_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(13, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "setools/policyrep/netcontext.pxi":256
 *     """A portcon protocol type."""
 * 
 *     tcp = IPPROTO_TCP             # <<<<<<<<<<<<<<
 *     udp = IPPROTO_UDP
 *     dccp = IPPROTO_DCCP
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(IPPROTO_TCP); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_tcp, __pyx_t_3) < 0) __PYX_ERR(13, 256, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/netcontext.pxi":257
 * 
 *     tcp = IPPROTO_TCP
 *     udp = IPPROTO_UDP             # <<<<<<<<<<<<<<
 *     dccp = IPPROTO_DCCP
 *     sctp = IPPROTO_SCTP
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(IPPROTO_UDP); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_udp, __pyx_t_3) < 0) __PYX_ERR(13, 257, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/netcontext.pxi":258
 *     tcp = IPPROTO_TCP
 *     udp = IPPROTO_UDP
 *     dccp = IPPROTO_DCCP             # <<<<<<<<<<<<<<
 *     sctp = IPPROTO_SCTP
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(IPPROTO_DCCP); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_dccp, __pyx_t_3) < 0) __PYX_ERR(13, 258, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/netcontext.pxi":259
 *     udp = IPPROTO_UDP
 *     dccp = IPPROTO_DCCP
 *     sctp = IPPROTO_SCTP             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(IPPROTO_SCTP); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_sctp, __pyx_t_3) < 0) __PYX_ERR(13, 259, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/netcontext.pxi":252
 * 
 * 
 * class PortconProtocol(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """A portcon protocol type."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_PortconProtocol, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(13, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PortconProtocol, __pyx_t_3) < 0) __PYX_ERR(13, 252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/objclass.pxi":21
 * #
 * 
 * cdef object _common_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * cdef object _objclass_cache = WeakKeyDefaultDict(dict)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__common_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__common_cache, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;

  /* "setools/policyrep/objclass.pxi":22
 * 
 * cdef object _common_cache = WeakKeyDefaultDict(dict)
 * cdef object _objclass_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(14, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__objclass_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__objclass_cache, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/rbacrule.pxi":24
 * # Typing
 * #
 * AnyRBACRule = Union[RoleAllow, RoleTransition]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Union); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleAllow));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleAllow));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_7setools_9policyrep_RoleAllow));
  __Pyx_INCREF(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleTransition));
  __Pyx_GIVEREF(((PyObject *)__pyx_ptype_7setools_9policyrep_RoleTransition));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_ptype_7setools_9policyrep_RoleTransition));
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AnyRBACRule, __pyx_t_4) < 0) __PYX_ERR(16, 24, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/rbacrule.pxi":30
 * # Classes
 * #
 * class RBACRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """An enumeration of RBAC rule types."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(16, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_1, __pyx_n_s_RBACRuletype, __pyx_n_s_RBACRuletype, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_An_enumeration_of_RBAC_rule_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(16, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/rbacrule.pxi":34
 *     """An enumeration of RBAC rule types."""
 * 
 *     allow = 1             # <<<<<<<<<<<<<<
 *     role_transition = 2
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_allow, __pyx_int_1) < 0) __PYX_ERR(16, 34, __pyx_L1_error)

  /* "setools/policyrep/rbacrule.pxi":35
 * 
 *     allow = 1
 *     role_transition = 2             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_role_transition, __pyx_int_2) < 0) __PYX_ERR(16, 35, __pyx_L1_error)

  /* "setools/policyrep/rbacrule.pxi":30
 * # Classes
 * #
 * class RBACRuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """An enumeration of RBAC rule types."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_RBACRuletype, __pyx_t_1, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(16, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_RBACRuletype, __pyx_t_3) < 0) __PYX_ERR(16, 30, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":23
 * 
 * 
 * class PolicyTarget(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of policy targets."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_4, __pyx_n_s_PolicyTarget, __pyx_n_s_PolicyTarget, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_policy_targets); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/selinuxpolicy.pxi":27
 *     """Enumeration of policy targets."""
 * 
 *     selinux = sepol.SEPOL_TARGET_SELINUX             # <<<<<<<<<<<<<<
 *     xen = sepol.SEPOL_TARGET_XEN
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(SEPOL_TARGET_SELINUX); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 27, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_selinux, __pyx_t_3) < 0) __PYX_ERR(5, 27, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":28
 * 
 *     selinux = sepol.SEPOL_TARGET_SELINUX
 *     xen = sepol.SEPOL_TARGET_XEN             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(SEPOL_TARGET_XEN); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_xen, __pyx_t_3) < 0) __PYX_ERR(5, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":23
 * 
 * 
 * class PolicyTarget(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of policy targets."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_PolicyTarget, __pyx_t_4, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_PolicyTarget, __pyx_t_3) < 0) __PYX_ERR(5, 23, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":31
 * 
 * 
 * class HandleUnknown(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of handle unknown settings."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_1, __pyx_n_s_HandleUnknown, __pyx_n_s_HandleUnknown, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_handle_unknown_se); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "setools/policyrep/selinuxpolicy.pxi":35
 *     """Enumeration of handle unknown settings."""
 * 
 *     deny = sepol.SEPOL_DENY_UNKNOWN             # <<<<<<<<<<<<<<
 *     allow = sepol.SEPOL_ALLOW_UNKNOWN
 *     reject = sepol.SEPOL_REJECT_UNKNOWN
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(SEPOL_DENY_UNKNOWN); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_deny, __pyx_t_3) < 0) __PYX_ERR(5, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":36
 * 
 *     deny = sepol.SEPOL_DENY_UNKNOWN
 *     allow = sepol.SEPOL_ALLOW_UNKNOWN             # <<<<<<<<<<<<<<
 *     reject = sepol.SEPOL_REJECT_UNKNOWN
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(SEPOL_ALLOW_UNKNOWN); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_allow, __pyx_t_3) < 0) __PYX_ERR(5, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":37
 *     deny = sepol.SEPOL_DENY_UNKNOWN
 *     allow = sepol.SEPOL_ALLOW_UNKNOWN
 *     reject = sepol.SEPOL_REJECT_UNKNOWN             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(SEPOL_REJECT_UNKNOWN); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_reject, __pyx_t_3) < 0) __PYX_ERR(5, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/selinuxpolicy.pxi":31
 * 
 * 
 * class HandleUnknown(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of handle unknown settings."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_HandleUnknown, __pyx_t_1, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_HandleUnknown, __pyx_t_3) < 0) __PYX_ERR(5, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/terule.pxi":25
 * # Typing
 * #
 * AnyTERule = TypeVar("AnyTERule", bound=BaseTERule)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TypeVar); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_bound, ((PyObject *)__pyx_ptype_7setools_9policyrep_BaseTERule)) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__145, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_AnyTERule, __pyx_t_2) < 0) __PYX_ERR(19, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/terule.pxi":31
 * # Classes
 * #
 * class TERuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of types of TE rules."""
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PolicyEnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_4, __pyx_n_s_TERuletype, __pyx_n_s_TERuletype, (PyObject *) NULL, __pyx_n_s_setools_policyrep, __pyx_kp_s_Enumeration_of_types_of_TE_rules); if (unlikely(!__pyx_t_1)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "setools/policyrep/terule.pxi":35
 *     """Enumeration of types of TE rules."""
 * 
 *     allow = sepol.AVTAB_ALLOWED             # <<<<<<<<<<<<<<
 *     neverallow = sepol.AVTAB_NEVERALLOW
 *     auditallow = sepol.AVTAB_AUDITALLOW
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_ALLOWED); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_allow, __pyx_t_3) < 0) __PYX_ERR(19, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":36
 * 
 *     allow = sepol.AVTAB_ALLOWED
 *     neverallow = sepol.AVTAB_NEVERALLOW             # <<<<<<<<<<<<<<
 *     auditallow = sepol.AVTAB_AUDITALLOW
 *     dontaudit = sepol.AVTAB_AUDITDENY
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_NEVERALLOW); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_neverallow, __pyx_t_3) < 0) __PYX_ERR(19, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":37
 *     allow = sepol.AVTAB_ALLOWED
 *     neverallow = sepol.AVTAB_NEVERALLOW
 *     auditallow = sepol.AVTAB_AUDITALLOW             # <<<<<<<<<<<<<<
 *     dontaudit = sepol.AVTAB_AUDITDENY
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_AUDITALLOW); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_auditallow, __pyx_t_3) < 0) __PYX_ERR(19, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":38
 *     neverallow = sepol.AVTAB_NEVERALLOW
 *     auditallow = sepol.AVTAB_AUDITALLOW
 *     dontaudit = sepol.AVTAB_AUDITDENY             # <<<<<<<<<<<<<<
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_AUDITDENY); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_dontaudit, __pyx_t_3) < 0) __PYX_ERR(19, 38, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":39
 *     auditallow = sepol.AVTAB_AUDITALLOW
 *     dontaudit = sepol.AVTAB_AUDITDENY
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED             # <<<<<<<<<<<<<<
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_XPERMS_ALLOWED); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_allowxperm, __pyx_t_3) < 0) __PYX_ERR(19, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":40
 *     dontaudit = sepol.AVTAB_AUDITDENY
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW             # <<<<<<<<<<<<<<
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_XPERMS_NEVERALLOW); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_neverallowxperm, __pyx_t_3) < 0) __PYX_ERR(19, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":41
 *     allowxperm = sepol.AVTAB_XPERMS_ALLOWED
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW             # <<<<<<<<<<<<<<
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT
 *     type_transition = sepol.AVTAB_TRANSITION
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_XPERMS_AUDITALLOW); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_auditallowxperm, __pyx_t_3) < 0) __PYX_ERR(19, 41, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":42
 *     neverallowxperm = sepol.AVTAB_XPERMS_NEVERALLOW
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT             # <<<<<<<<<<<<<<
 *     type_transition = sepol.AVTAB_TRANSITION
 *     type_change = sepol.AVTAB_CHANGE
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_XPERMS_DONTAUDIT); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_dontauditxperm, __pyx_t_3) < 0) __PYX_ERR(19, 42, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":43
 *     auditallowxperm = sepol.AVTAB_XPERMS_AUDITALLOW
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT
 *     type_transition = sepol.AVTAB_TRANSITION             # <<<<<<<<<<<<<<
 *     type_change = sepol.AVTAB_CHANGE
 *     type_member = sepol.AVTAB_MEMBER
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_TRANSITION); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_type_transition, __pyx_t_3) < 0) __PYX_ERR(19, 43, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":44
 *     dontauditxperm = sepol.AVTAB_XPERMS_DONTAUDIT
 *     type_transition = sepol.AVTAB_TRANSITION
 *     type_change = sepol.AVTAB_CHANGE             # <<<<<<<<<<<<<<
 *     type_member = sepol.AVTAB_MEMBER
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_CHANGE); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_type_change, __pyx_t_3) < 0) __PYX_ERR(19, 44, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":45
 *     type_transition = sepol.AVTAB_TRANSITION
 *     type_change = sepol.AVTAB_CHANGE
 *     type_member = sepol.AVTAB_MEMBER             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_From_int(AVTAB_MEMBER); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_type_member, __pyx_t_3) < 0) __PYX_ERR(19, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "setools/policyrep/terule.pxi":31
 * # Classes
 * #
 * class TERuletype(PolicyEnum):             # <<<<<<<<<<<<<<
 * 
 *     """Enumeration of types of TE rules."""
 */
  __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_TERuletype, __pyx_t_4, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TERuletype, __pyx_t_3) < 0) __PYX_ERR(19, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "setools/policyrep/typeattr.pxi":24
 * # Cache objects
 * #
 * cdef object _type_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * cdef object _typeattr_cache = WeakKeyDefaultDict(dict)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__type_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__type_cache, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/typeattr.pxi":25
 * #
 * cdef object _type_cache = WeakKeyDefaultDict(dict)
 * cdef object _typeattr_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__typeattr_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__typeattr_cache, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;

  /* "setools/policyrep/typeattr.pxi":30
 * # Typing
 * #
 * TypeOrAttr = TypeVar("TypeOrAttr", bound=BaseType)             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_TypeVar); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_bound, ((PyObject *)__pyx_ptype_7setools_9policyrep_BaseType)) < 0) __PYX_ERR(20, 30, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__146, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_TypeOrAttr, __pyx_t_1) < 0) __PYX_ERR(20, 30, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "setools/policyrep/user.pxi":21
 * #
 * 
 * cdef object _user_cache = WeakKeyDefaultDict(dict)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_WeakKeyDefaultDict); if (unlikely(!__pyx_t_1)) __PYX_ERR(21, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_2)) __PYX_ERR(21, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_7setools_9policyrep__user_cache);
  __Pyx_DECREF_SET(__pyx_v_7setools_9policyrep__user_cache, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "setools/policyrep/xencontext.pxi":21
 * #
 * 
 * IomemconRange = collections.namedtuple("IomemconRange", ["low", "high"])             # <<<<<<<<<<<<<<
 * IoportconRange = collections.namedtuple("IoportconRange", ["low", "high"])
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_collections); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_u_low);
  __Pyx_GIVEREF(__pyx_n_u_low);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_low);
  __Pyx_INCREF(__pyx_n_u_high);
  __Pyx_GIVEREF(__pyx_n_u_high);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_high);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_n_u_IomemconRange);
  __Pyx_GIVEREF(__pyx_n_u_IomemconRange);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_u_IomemconRange);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_IomemconRange, __pyx_t_2) < 0) __PYX_ERR(22, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep/xencontext.pxi":22
 * 
 * IomemconRange = collections.namedtuple("IomemconRange", ["low", "high"])
 * IoportconRange = collections.namedtuple("IoportconRange", ["low", "high"])             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_collections); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_u_low);
  __Pyx_GIVEREF(__pyx_n_u_low);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_low);
  __Pyx_INCREF(__pyx_n_u_high);
  __Pyx_GIVEREF(__pyx_n_u_high);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_high);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_IoportconRange);
  __Pyx_GIVEREF(__pyx_n_u_IoportconRange);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_IoportconRange);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_IoportconRange, __pyx_t_2) < 0) __PYX_ERR(22, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Boolean(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_3__pyx_unpickle_Boolean, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Boolean, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Boolean__set_state(<Boolean> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Boolean__set_state(Boolean __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.state = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_5__pyx_unpickle_Conditional, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Conditional, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ConditionalOperator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_7__pyx_unpickle_ConditionalOperator, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ConditionalOperat, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_ConditionalOperator__set_state(<ConditionalOperator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConditionalOperator__set_state(ConditionalOperator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.evaluate = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.precedence = __pyx_state[3]; __pyx_result.text = __pyx_state[4]; __pyx_result.unary = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_9__pyx_unpickle_Bounds, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Bounds, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BaseConstraint(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_11__pyx_unpickle_BaseConstraint, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_BaseConstraint, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseConstraint__set_state(<BaseConstraint> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseConstraint__set_state(BaseConstraint __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_13__pyx_unpickle_Constraint, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Constraint, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Validatetrans(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_15__pyx_unpickle_Validatetrans, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Validatetrans, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Validatetrans__set_state(<Validatetrans> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Validatetrans__set_state(Validatetrans __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.expression = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_17__pyx_unpickle_ConstraintExpression, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ConstraintExpress, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ConstraintExprNode(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_19__pyx_unpickle_ConstraintExprNode, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ConstraintExprNod, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_ConstraintExprNode__set_state(<ConstraintExprNode> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ConstraintExprNode__set_state(ConstraintExprNode __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._expression = __pyx_state[0]; __pyx_result._names = __pyx_state[1]; __pyx_result._symbol_type = __pyx_state[2]; __pyx_result.expression_type = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.mls = __pyx_state[5]; __pyx_result.operator = __pyx_state[6]; __pyx_result.policy = __pyx_state[7]; __pyx_result.roles = __pyx_state[8]; __pyx_result.types = __pyx_state[9]; __pyx_result.users = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_21__pyx_unpickle_Context, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Context, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Default(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_23__pyx_unpickle_Default, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Default, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Default__set_state(<Default> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Default__set_state(Default __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._default = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ruletype = __pyx_state[3]; __pyx_result.tclass = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_25__pyx_unpickle_DefaultRange, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_DefaultRange, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_FSUse(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_27__pyx_unpickle_FSUse, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_FSUse, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_FSUse__set_state(<FSUse> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_FSUse__set_state(FSUse __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.fs = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_29__pyx_unpickle_GenfsFiletype, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_GenfsFiletype, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Genfscon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_31__pyx_unpickle_Genfscon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Genfscon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Genfscon__set_state(<Genfscon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Genfscon__set_state(Genfscon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.filetype = __pyx_state[1]; __pyx_result.fs = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.path = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.tclass = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_33__pyx_unpickle_InitialSID, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_InitialSID, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Category(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_35__pyx_unpickle_Category, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Category, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Category__set_state(<Category> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Category__set_state(Category __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._aliases = __pyx_state[0]; __pyx_result._value = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.name = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_37__pyx_unpickle_Sensitivity, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Sensitivity, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BaseMLSLevel(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_39__pyx_unpickle_BaseMLSLevel, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_BaseMLSLevel, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseMLSLevel__set_state(<BaseMLSLevel> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseMLSLevel__set_state(BaseMLSLevel __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_41__pyx_unpickle_LevelDecl, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_LevelDecl, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Level(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_43__pyx_unpickle_Level, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Level, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Level__set_state(<Level> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Level__set_state(Level __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._categories = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.sensitivity = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_45__pyx_unpickle_Range, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Range, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MLSRule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_47__pyx_unpickle_MLSRule, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_MLSRule, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_MLSRule__set_state(<MLSRule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MLSRule__set_state(MLSRule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.rng = __pyx_state[4]; __pyx_result.ruletype = __pyx_state[5]; __pyx_result.source = __pyx_state[6]; __pyx_result.target = __pyx_state[7]; __pyx_result.tclass = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_49__pyx_unpickle_Ibendportcon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Ibendportcon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ibpkeycon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_51__pyx_unpickle_Ibpkeycon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Ibpkeycon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ibpkeycon__set_state(<Ibpkeycon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ibpkeycon__set_state(Ibpkeycon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.pkeys = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.subnet_prefix = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_53__pyx_unpickle_Netifcon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Netifcon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nodecon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_55__pyx_unpickle_Nodecon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nodecon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nodecon__set_state(<Nodecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nodecon__set_state(Nodecon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.ip_version = __pyx_state[1]; __pyx_result.key = __pyx_state[2]; __pyx_result.network = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_57__pyx_unpickle_Portcon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Portcon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Common(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_59__pyx_unpickle_Common, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Common, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Common__set_state(<Common> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Common__set_state(Common __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._perm_table = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.perms = __pyx_state[3]; __pyx_result.policy = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_61__pyx_unpickle_ObjClass, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ObjClass, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PermissionVectorIterator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_63__pyx_unpickle_PermissionVectorIterator, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PermissionVectorI, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_PermissionVectorIterator__set_state(<PermissionVectorIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PermissionVectorIterator__set_state(PermissionVectorIterator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.curr = __pyx_state[0]; __pyx_result.perm_max = __pyx_state[1]; __pyx_result.perm_table = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.vector = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_65__pyx_unpickle_PolicyObject, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PolicyObject, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PolicySymbol(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_67__pyx_unpickle_PolicySymbol, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PolicySymbol, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicySymbol__set_state(<PolicySymbol> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicySymbol__set_state(PolicySymbol __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_69__pyx_unpickle_Ocontext, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Ocontext, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PolicyIterator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_71__pyx_unpickle_PolicyIterator, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PolicyIterator, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_PolicyIterator__set_state(<PolicyIterator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PolicyIterator__set_state(PolicyIterator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.policy = __pyx_state[0]
 *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_73__pyx_unpickle_PolicyCapability, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PolicyCapability, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_RoleAllow(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_75__pyx_unpickle_RoleAllow, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RoleAllow, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_RoleAllow__set_state(<RoleAllow> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoleAllow__set_state(RoleAllow __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.extended = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.origin = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]; __pyx_result.ruletype = __pyx_state[4]; __pyx_result.source = __pyx_state[5]; __pyx_result.target = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_77__pyx_unpickle_RoleTransition, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RoleTransition, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Role(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_79__pyx_unpickle_Role, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Role, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Role__set_state(<Role> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Role__set_state(Role __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_81__pyx_unpickle_PolicyRule, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PolicyRule, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BaseTERule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_83__pyx_unpickle_BaseTERule, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_BaseTERule, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseTERule__set_state(<BaseTERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseTERule__set_state(BaseTERule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.extended = __pyx_state[2]; __pyx_result.key = __pyx_state[3]; __pyx_result.origin = __pyx_state[4]; __pyx_result.policy = __pyx_state[5]; __pyx_result.rule_string = __pyx_state[6]; __pyx_result.ruletype = __pyx_state[7]; __pyx_result.source = __pyx_state[8]; __pyx_result.target = __pyx_state[9]; __pyx_result.tclass = __pyx_state[10]
 *     if len(__pyx_state) > 11 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_85__pyx_unpickle_AVRule, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AVRule, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_IoctlSet(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_87__pyx_unpickle_IoctlSet, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_IoctlSet, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_IoctlSet__set_state(<IoctlSet> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_IoctlSet__set_state(IoctlSet __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_89__pyx_unpickle_AVRuleXperm, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AVRuleXperm, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_TERule(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_91__pyx_unpickle_TERule, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_TERule, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_TERule__set_state(<TERule> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TERule__set_state(TERule __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._conditional = __pyx_state[0]; __pyx_result._conditional_block = __pyx_state[1]; __pyx_result.dft = __pyx_state[2]; __pyx_result.extended = __pyx_state[3]; __pyx_result.key = __pyx_state[4]; __pyx_result.origin = __pyx_state[5]; __pyx_result.policy = __pyx_state[6]; __pyx_result.rule_string = __pyx_state[7]; __pyx_result.ruletype = __pyx_state[8]; __pyx_result.source = __pyx_state[9]; __pyx_result.target = __pyx_state[10]; __pyx_result.tclass = __pyx_state[11]
 *     if len(__pyx_state) > 12 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_93__pyx_unpickle_FileNameTERule, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_FileNameTERule, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BaseType(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_95__pyx_unpickle_BaseType, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_BaseType, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_BaseType__set_state(<BaseType> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BaseType__set_state(BaseType __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.key = __pyx_state[0]; __pyx_result.name = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_97__pyx_unpickle_Type, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Type, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_TypeAttribute(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_99__pyx_unpickle_TypeAttribute, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_TypeAttribute, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_TypeAttribute__set_state(<TypeAttribute> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_TypeAttribute__set_state(TypeAttribute __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result._types = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.name = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_101__pyx_unpickle_User, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_User, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Devicetreecon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_103__pyx_unpickle_Devicetreecon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Devicetreecon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Devicetreecon__set_state(<Devicetreecon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Devicetreecon__set_state(Devicetreecon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.path = __pyx_state[2]; __pyx_result.policy = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_105__pyx_unpickle_Iomemcon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Iomemcon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ioportcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_107__pyx_unpickle_Ioportcon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Ioportcon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ioportcon__set_state(<Ioportcon> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ioportcon__set_state(Ioportcon __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.context = __pyx_state[0]; __pyx_result.key = __pyx_state[1]; __pyx_result.policy = __pyx_state[2]; __pyx_result.ports = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_109__pyx_unpickle_Pcidevicecon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Pcidevicecon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Pirqcon(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7setools_9policyrep_111__pyx_unpickle_Pirqcon, NULL, __pyx_n_s_setools_policyrep); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Pirqcon, __pyx_t_2) < 0) __PYX_ERR(6, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "setools/policyrep.pyx":1
 * # Copyright 2017-2018, Chris PeBenito <pebenito@ieee.org>             # <<<<<<<<<<<<<<
 * #
 * # This file is part of SETools.
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(23, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init setools.policyrep", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_CLEAR(__pyx_m);
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init setools.policyrep");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #elif PY_MAJOR_VERSION >= 3
  return __pyx_m;
  #else
  return;
  #endif
}

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
    if (unlikely(!result)) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
    result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    } else if (unlikely(PyErr_Occurred())) {
        return NULL;
    }
#else
    result = PyDict_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
#endif
#else
    result = PyObject_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = func->ob_type->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyCFunctionFastCall */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
    PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
    PyCFunction meth = PyCFunction_GET_FUNCTION(func);
    PyObject *self = PyCFunction_GET_SELF(func);
    int flags = PyCFunction_GET_FLAGS(func);
    assert(PyCFunction_Check(func));
    assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
    assert(nargs >= 0);
    assert(nargs == 0 || args != NULL);
    /* _PyCFunction_FastCallDict() must not be called with an exception set,
       because it may clear it (directly or indirectly) and so the
       caller loses its exception */
    assert(!PyErr_Occurred());
    if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
        return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
    } else {
        return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
    }
}
#endif

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
        return NULL;
    }
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif
#endif

/* PyObjectCall2Args */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args, *result = NULL;
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyFunction_FastCall(function, args, 2);
    }
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyCFunction_FastCall(function, args, 2);
    }
    #endif
    args = PyTuple_New(2);
    if (unlikely(!args)) goto done;
    Py_INCREF(arg1);
    PyTuple_SET_ITEM(args, 0, arg1);
    Py_INCREF(arg2);
    PyTuple_SET_ITEM(args, 1, arg2);
    Py_INCREF(function);
    result = __Pyx_PyObject_Call(function, args, NULL);
    Py_DECREF(args);
    Py_DECREF(function);
done:
    return result;
}

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = PyCFunction_GET_FUNCTION(func);
    self = PyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallOneArg */
#if CYTHON_COMPILING_IN_CPYTHON
static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_New(1);
    if (unlikely(!args)) return NULL;
    Py_INCREF(arg);
    PyTuple_SET_ITEM(args, 0, arg);
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, &arg, 1);
    }
#endif
    if (likely(PyCFunction_Check(func))) {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
            return __Pyx_PyObject_CallMethO(func, arg);
#if CYTHON_FAST_PYCCALL
        } else if (__Pyx_PyFastCFunction_Check(func)) {
            return __Pyx_PyCFunction_FastCall(func, &arg, 1);
#endif
        }
    }
    return __Pyx__PyObject_CallOneArg(func, arg);
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_Pack(1, arg);
    if (unlikely(!args)) return NULL;
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
#endif

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    #endif
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
#endif

/* PyErrExceptionMatches */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    PyObject *exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
    if (unlikely(PyTuple_Check(err)))
        return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
}
#endif

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type, *local_value, *local_tb;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return m->sq_item(o, i);
        }
    }
#else
    if (is_list || PySequence_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
    PyObject *runerr;
    Py_ssize_t key_value;
    PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
    if (unlikely(!(m && m->sq_item))) {
        PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
        return NULL;
    }
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
    PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
    if (likely(m && m->mp_subscript)) {
        return m->mp_subscript(obj, key);
    }
    return __Pyx_PyObject_GetIndex(obj, key);
}
#endif

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}
#endif

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
                        CYTHON_UNUSED PyObject *cause) {
    __Pyx_PyThreadState_declare
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if CYTHON_COMPILING_IN_PYPY
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#else
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* PyObjectCallNoArg */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, NULL, 0);
    }
#endif
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
#else
    if (likely(PyCFunction_Check(func)))
#endif
    {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
            return __Pyx_PyObject_CallMethO(func, NULL);
        }
    }
    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
#endif

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback, CYTHON_UNUSED int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
#ifdef _MSC_VER
    else state = (PyGILState_STATE)-1;
#endif
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* SwapException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = *type;
    exc_info->exc_value = *value;
    exc_info->exc_traceback = *tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
    #endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* GetAttr */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_USE_TYPE_SLOTS
#if PY_MAJOR_VERSION >= 3
    if (likely(PyUnicode_Check(n)))
#else
    if (likely(PyString_Check(n)))
#endif
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* GetAttr3 */
static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r = __Pyx_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
                 Py_TYPE(obj)->tp_name, type->tp_name);
    return 0;
}

/* SetItemInt */
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (!j) return -1;
    r = PyObject_SetItem(o, j, v);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
                                               CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
            PyObject* old = PyList_GET_ITEM(o, n);
            Py_INCREF(v);
            PyList_SET_ITEM(o, n, v);
            Py_DECREF(old);
            return 1;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_ass_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return -1;
                    PyErr_Clear();
                }
            }
            return m->sq_ass_item(o, i, v);
        }
    }
#else
#if CYTHON_COMPILING_IN_PYPY
    if (is_list || (PySequence_Check(o) && !PyDict_Check(o)))
#else
    if (is_list || PySequence_Check(o))
#endif
    {
        return PySequence_SetItem(o, i, v);
    }
#endif
    return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
}

/* pyfrozenset_new */
static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) {
    if (it) {
        PyObject* result;
#if CYTHON_COMPILING_IN_PYPY
        PyObject* args;
        args = PyTuple_Pack(1, it);
        if (unlikely(!args))
            return NULL;
        result = PyObject_Call((PyObject*)&PyFrozenSet_Type, args, NULL);
        Py_DECREF(args);
        return result;
#else
        if (PyFrozenSet_CheckExact(it)) {
            Py_INCREF(it);
            return it;
        }
        result = PyFrozenSet_New(it);
        if (unlikely(!result))
            return NULL;
        if (likely(PySet_GET_SIZE(result)))
            return result;
        Py_DECREF(result);
#endif
    }
#if CYTHON_USE_TYPE_SLOTS
    return PyFrozenSet_Type.tp_new(&PyFrozenSet_Type, __pyx_empty_tuple, NULL);
#else
    return PyObject_Call((PyObject*)&PyFrozenSet_Type, __pyx_empty_tuple, NULL);
#endif
}

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
        #endif
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (descr != NULL) {
        *method = descr;
        return 0;
    }
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(name));
#endif
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod0 */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
}

/* UnpackUnboundCMethod */
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    target->method = method;
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION >= 3
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    #endif
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    }
#endif
    return 0;
}

/* CallUnboundCMethod0 */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_ASSUME_SAFE_MACROS
    args = PyTuple_New(1);
    if (unlikely(!args)) goto bad;
    Py_INCREF(self);
    PyTuple_SET_ITEM(args, 0, self);
#else
    args = PyTuple_Pack(1, self);
    if (unlikely(!args)) goto bad;
#endif
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    Py_DECREF(args);
bad:
    return result;
}

/* pop */
static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L) {
    if (Py_TYPE(L) == &PySet_Type) {
        return PySet_Pop(L);
    }
    return __Pyx_PyObject_CallMethod0(L, __pyx_n_s_pop);
}
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L) {
    if (likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) {
        __Pyx_SET_SIZE(L, Py_SIZE(L) - 1);
        return PyList_GET_ITEM(L, PyList_GET_SIZE(L));
    }
    return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyList_Type_pop, L);
}
#endif

/* BytesEquals */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
        #if CYTHON_PEP393_ENABLED
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
        #else
            hash1 = ((PyUnicodeObject*)s1)->hash;
            hash2 = ((PyUnicodeObject*)s2)->hash;
        #endif
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        #if PY_MAJOR_VERSION < 3
        Py_XDECREF(owned_ref);
        #endif
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* KeywordStringCheck */
static int __Pyx_CheckKeywordStrings(
    PyObject *kwdict,
    const char* function_name,
    int kw_allowed)
{
    PyObject* key = 0;
    Py_ssize_t pos = 0;
#if CYTHON_COMPILING_IN_PYPY
    if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
        goto invalid_keyword;
    return 1;
#else
    while (PyDict_Next(kwdict, &pos, &key, 0)) {
        #if PY_MAJOR_VERSION < 3
        if (unlikely(!PyString_Check(key)))
        #endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
    }
    if ((!kw_allowed) && unlikely(key))
        goto invalid_keyword;
    return 1;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    return 0;
#endif
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
    return 0;
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_FAST_THREAD_STATE
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject* exc_type = tstate->curexc_type;
    if (unlikely(exc_type)) {
        if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
            PyObject *exc_value, *exc_tb;
            exc_value = tstate->curexc_value;
            exc_tb = tstate->curexc_traceback;
            tstate->curexc_type = 0;
            tstate->curexc_value = 0;
            tstate->curexc_traceback = 0;
            Py_DECREF(exc_type);
            Py_XDECREF(exc_value);
            Py_XDECREF(exc_tb);
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#else
    if (unlikely(PyErr_Occurred())) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#endif
}

/* set_iter */
static CYTHON_INLINE PyObject* __Pyx_set_iterator(PyObject* iterable, int is_set,
                                                  Py_ssize_t* p_orig_length, int* p_source_is_set) {
#if CYTHON_COMPILING_IN_CPYTHON
    is_set = is_set || likely(PySet_CheckExact(iterable) || PyFrozenSet_CheckExact(iterable));
    *p_source_is_set = is_set;
    if (likely(is_set)) {
        *p_orig_length = PySet_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
    }
#else
    (void)is_set;
    *p_source_is_set = 0;
#endif
    *p_orig_length = 0;
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_set_iter_next(
        PyObject* iter_obj, Py_ssize_t orig_length,
        Py_ssize_t* ppos, PyObject **value,
        int source_is_set) {
    if (!CYTHON_COMPILING_IN_CPYTHON || unlikely(!source_is_set)) {
        *value = PyIter_Next(iter_obj);
        if (unlikely(!*value)) {
            return __Pyx_IterFinish();
        }
        (void)orig_length;
        (void)ppos;
        return 1;
    }
#if CYTHON_COMPILING_IN_CPYTHON
    if (unlikely(PySet_GET_SIZE(iter_obj) != orig_length)) {
        PyErr_SetString(
            PyExc_RuntimeError,
            "set changed size during iteration");
        return -1;
    }
    {
        Py_hash_t hash;
        int ret = _PySet_NextEntry(iter_obj, ppos, value, &hash);
        assert (ret != -1);
        if (likely(ret)) {
            Py_INCREF(*value);
            return 1;
        }
    }
#endif
    return 0;
}

/* CallUnboundCMethod1 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) {
    if (likely(cfunc->func)) {
        int flag = cfunc->flag;
        if (flag == METH_O) {
            return (*(cfunc->func))(self, arg);
        } else if (PY_VERSION_HEX >= 0x030600B1 && flag == METH_FASTCALL) {
            if (PY_VERSION_HEX >= 0x030700A0) {
                return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1);
            } else {
                return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
            }
        } else if (PY_VERSION_HEX >= 0x030700A0 && flag == (METH_FASTCALL | METH_KEYWORDS)) {
            return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
        }
    }
    return __Pyx__CallUnboundCMethod1(cfunc, self, arg);
}
#endif
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        args = PyTuple_New(1);
        if (unlikely(!args)) goto bad;
        Py_INCREF(arg);
        PyTuple_SET_ITEM(args, 0, arg);
        if (cfunc->flag & METH_KEYWORDS)
            result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
        else
            result = (*cfunc->func)(self, args);
    } else {
        args = PyTuple_New(2);
        if (unlikely(!args)) goto bad;
        Py_INCREF(self);
        PyTuple_SET_ITEM(args, 0, self);
        Py_INCREF(arg);
        PyTuple_SET_ITEM(args, 1, arg);
        result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    }
#else
    args = PyTuple_Pack(2, self, arg);
    if (unlikely(!args)) goto bad;
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
#endif
bad:
    Py_XDECREF(args);
    return result;
}

/* CallUnboundCMethod2 */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
    if (likely(cfunc->func)) {
        PyObject *args[2] = {arg1, arg2};
        if (cfunc->flag == METH_FASTCALL) {
            #if PY_VERSION_HEX >= 0x030700A0
            return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, args, 2);
            #else
            return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL);
            #endif
        }
        #if PY_VERSION_HEX >= 0x030700A0
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL);
        #endif
    }
    return __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
}
#endif
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        args = PyTuple_New(2);
        if (unlikely(!args)) goto bad;
        Py_INCREF(arg1);
        PyTuple_SET_ITEM(args, 0, arg1);
        Py_INCREF(arg2);
        PyTuple_SET_ITEM(args, 1, arg2);
        if (cfunc->flag & METH_KEYWORDS)
            result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
        else
            result = (*cfunc->func)(self, args);
    } else {
        args = PyTuple_New(3);
        if (unlikely(!args)) goto bad;
        Py_INCREF(self);
        PyTuple_SET_ITEM(args, 0, self);
        Py_INCREF(arg1);
        PyTuple_SET_ITEM(args, 1, arg1);
        Py_INCREF(arg2);
        PyTuple_SET_ITEM(args, 2, arg2);
        result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    }
#else
    args = PyTuple_Pack(3, self, arg1, arg2);
    if (unlikely(!args)) goto bad;
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
#endif
bad:
    Py_XDECREF(args);
    return result;
}

/* dict_getitem_default */
static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
    PyObject* value;
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (unlikely(PyErr_Occurred()))
            return NULL;
        value = default_value;
    }
    Py_INCREF(value);
    if ((1));
#else
    if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
        value = PyDict_GetItem(d, key);
        if (unlikely(!value)) {
            value = default_value;
        }
        Py_INCREF(value);
    }
#endif
    else {
        if (default_value == Py_None)
            value = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_get, d, key);
        else
            value = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_get, d, key, default_value);
    }
    return value;
}

/* DictGetItem */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred()) {
            if (unlikely(PyTuple_Check(key))) {
                PyObject* args = PyTuple_Pack(1, key);
                if (likely(args)) {
                    PyErr_SetObject(PyExc_KeyError, args);
                    Py_DECREF(args);
                }
            } else {
                PyErr_SetObject(PyExc_KeyError, key);
            }
        }
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#endif

/* None */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
    PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
}

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else {
        return __Pyx_IterFinish();
    }
    return 0;
}

/* Intern */
static PyObject* __Pyx_Intern(PyObject* s) {
    if (!(likely(PyString_CheckExact(s)))) {
        PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(s)->tp_name);
        return 0;
    }
    Py_INCREF(s);
    #if PY_MAJOR_VERSION >= 3
    PyUnicode_InternInPlace(&s);
    #else
    PyString_InternInPlace(&s);
    #endif
    return s;
}

/* IterNext */
static PyObject *__Pyx_PyIter_Next2Default(PyObject* defval) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_Occurred();
    if (unlikely(exc_type)) {
        if (!defval || unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return NULL;
        __Pyx_PyErr_Clear();
        Py_INCREF(defval);
        return defval;
    }
    if (defval) {
        Py_INCREF(defval);
        return defval;
    }
    __Pyx_PyErr_SetNone(PyExc_StopIteration);
    return NULL;
}
static void __Pyx_PyIter_Next_ErrorNoIterator(PyObject *iterator) {
    PyErr_Format(PyExc_TypeError,
        "%.200s object is not an iterator", Py_TYPE(iterator)->tp_name);
}
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject* iterator, PyObject* defval) {
    PyObject* next;
    iternextfunc iternext = Py_TYPE(iterator)->tp_iternext;
    if (likely(iternext)) {
#if CYTHON_USE_TYPE_SLOTS
        next = iternext(iterator);
        if (likely(next))
            return next;
        #if PY_VERSION_HEX >= 0x02070000
        if (unlikely(iternext == &_PyObject_NextNotImplemented))
            return NULL;
        #endif
#else
        next = PyIter_Next(iterator);
        if (likely(next))
            return next;
#endif
    } else if (CYTHON_USE_TYPE_SLOTS || unlikely(!PyIter_Check(iterator))) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    }
#if !CYTHON_USE_TYPE_SLOTS
    else {
        next = PyIter_Next(iterator);
        if (likely(next))
            return next;
    }
#endif
    return __Pyx_PyIter_Next2Default(defval);
}

/* FetchCommonType */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* fake_module;
    PyTypeObject* cached_type = NULL;
    fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
    if (!fake_module) return NULL;
    Py_INCREF(fake_module);
    cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
    if (cached_type) {
        if (!PyType_Check((PyObject*)cached_type)) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s is not a type object",
                type->tp_name);
            goto bad;
        }
        if (cached_type->tp_basicsize != type->tp_basicsize) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s has the wrong size, try recompiling",
                type->tp_name);
            goto bad;
        }
    } else {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
        PyErr_Clear();
        if (PyType_Ready(type) < 0) goto bad;
        if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
            goto bad;
        Py_INCREF(type);
        cached_type = type;
    }
done:
    Py_DECREF(fake_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CythonFunctionShared */
#include <structmember.h>
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
{
    if (unlikely(op->func_doc == NULL)) {
        if (op->func.m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp = op->func_doc;
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    op->func_doc = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_name == NULL)) {
#if PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = op->func_name;
    Py_INCREF(value);
    op->func_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = op->func_qualname;
    Py_INCREF(value);
    op->func_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
{
    PyObject *self;
    self = m->func_closure;
    if (self == NULL)
        self = Py_None;
    Py_INCREF(self);
    return self;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    tmp = op->func_dict;
    Py_INCREF(value);
    op->func_dict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyTuple_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_tuple;
    op->defaults_tuple = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_kwdict;
    op->defaults_kwdict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value || value == Py_None) {
        value = NULL;
    } else if (!PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    tmp = op->func_annotations;
    op->func_annotations = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0},
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromString(m->func.m_ml->ml_name);
#else
    return PyString_FromString(m->func.m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    if (unlikely(op == NULL))
        return NULL;
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
    op->func.m_ml = ml;
    op->func.m_self = (PyObject *) op;
    Py_XINCREF(closure);
    op->func_closure = closure;
    Py_XINCREF(module);
    op->func.m_module = module;
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
    op->func_classobj = NULL;
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults_size = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
    Py_CLEAR(m->func.m_module);
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
    Py_CLEAR(m->func_classobj);
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    PyObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
    Py_VISIT(m->func.m_module);
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
    Py_VISIT(m->func_classobj);
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
#if PY_MAJOR_VERSION < 3
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(func);
        return func;
    }
    if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
        if (type == NULL)
            type = (PyObject *)(Py_TYPE(obj));
        return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
    }
    if (obj == Py_None)
        obj = NULL;
#endif
    return __Pyx_PyMethod_New(func, obj, type);
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    Py_ssize_t size;
    switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 0))
                return (*meth)(self, NULL);
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags in "
                        "__Pyx_CyFunction_Call. METH_OLDARGS is no "
                        "longer supported!");
        return NULL;
    }
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
        argc = PyTuple_GET_SIZE(args);
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_CyFunction_descr_get,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
};
static int __pyx_CyFunction_init(void) {
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    m->defaults_size = size;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = a->tp_base;
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
#if PY_MAJOR_VERSION == 2
static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
    PyObject *exception, *value, *tb;
    int res;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&exception, &value, &tb);
    res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
    if (unlikely(res == -1)) {
        PyErr_WriteUnraisable(err);
        res = 0;
    }
    if (!res) {
        res = PyObject_IsSubclass(err, exc_type2);
        if (unlikely(res == -1)) {
            PyErr_WriteUnraisable(err);
            res = 0;
        }
    }
    __Pyx_ErrRestore(exception, value, tb);
    return res;
}
#else
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
    if (!res) {
        res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
    return res;
}
#endif
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        #if PY_MAJOR_VERSION < 3
        if (likely(exc_type == t)) return 1;
        #endif
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* py_dict_values */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
    if (PY_MAJOR_VERSION >= 3)
        return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_values, d);
    else
        return PyDict_Values(d);
}

/* PyObjectCallMethod1 */
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
}

/* CoroutineBase */
#include <structmember.h>
#include <frameobject.h>
#define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom)
static int __Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject **pvalue) {
    PyObject *et, *ev, *tb;
    PyObject *value = NULL;
    __Pyx_ErrFetch(&et, &ev, &tb);
    if (!et) {
        Py_XDECREF(tb);
        Py_XDECREF(ev);
        Py_INCREF(Py_None);
        *pvalue = Py_None;
        return 0;
    }
    if (likely(et == PyExc_StopIteration)) {
        if (!ev) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#if PY_VERSION_HEX >= 0x030300A0
        else if (Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) {
            value = ((PyStopIterationObject *)ev)->value;
            Py_INCREF(value);
            Py_DECREF(ev);
        }
#endif
        else if (unlikely(PyTuple_Check(ev))) {
            if (PyTuple_GET_SIZE(ev) >= 1) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                value = PyTuple_GET_ITEM(ev, 0);
                Py_INCREF(value);
#else
                value = PySequence_ITEM(ev, 0);
#endif
            } else {
                Py_INCREF(Py_None);
                value = Py_None;
            }
            Py_DECREF(ev);
        }
        else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
            value = ev;
        }
        if (likely(value)) {
            Py_XDECREF(tb);
            Py_DECREF(et);
            *pvalue = value;
            return 0;
        }
    } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    PyErr_NormalizeException(&et, &ev, &tb);
    if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    Py_XDECREF(tb);
    Py_DECREF(et);
#if PY_VERSION_HEX >= 0x030300A0
    value = ((PyStopIterationObject *)ev)->value;
    Py_INCREF(value);
    Py_DECREF(ev);
#else
    {
        PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args);
        Py_DECREF(ev);
        if (likely(args)) {
            value = PySequence_GetItem(args, 0);
            Py_DECREF(args);
        }
        if (unlikely(!value)) {
            __Pyx_ErrRestore(NULL, NULL, NULL);
            Py_INCREF(Py_None);
            value = Py_None;
        }
    }
#endif
    *pvalue = value;
    return 0;
}
static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
    PyObject *t, *v, *tb;
    t = exc_state->exc_type;
    v = exc_state->exc_value;
    tb = exc_state->exc_traceback;
    exc_state->exc_type = NULL;
    exc_state->exc_value = NULL;
    exc_state->exc_traceback = NULL;
    Py_XDECREF(t);
    Py_XDECREF(v);
    Py_XDECREF(tb);
}
#define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyRunningError(CYTHON_UNUSED __pyx_CoroutineObject *gen) {
    const char *msg;
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
        msg = "coroutine already executing";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
        msg = "async generator already executing";
    #endif
    } else {
        msg = "generator already executing";
    }
    PyErr_SetString(PyExc_ValueError, msg);
}
#define __Pyx_Coroutine_NotStartedError(gen)  (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_NotStartedError(CYTHON_UNUSED PyObject *gen) {
    const char *msg;
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check(gen)) {
        msg = "can't send non-None value to a just-started coroutine";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact(gen)) {
        msg = "can't send non-None value to a just-started async generator";
    #endif
    } else {
        msg = "can't send non-None value to a just-started generator";
    }
    PyErr_SetString(PyExc_TypeError, msg);
}
#define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing)  (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyTerminatedError(CYTHON_UNUSED PyObject *gen, PyObject *value, CYTHON_UNUSED int closing) {
    #ifdef __Pyx_Coroutine_USED
    if (!closing && __Pyx_Coroutine_Check(gen)) {
        PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
    } else
    #endif
    if (value) {
        #ifdef __Pyx_AsyncGen_USED
        if (__Pyx_AsyncGen_CheckExact(gen))
            PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
        else
        #endif
        PyErr_SetNone(PyExc_StopIteration);
    }
}
static
PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) {
    __Pyx_PyThreadState_declare
    PyThreadState *tstate;
    __Pyx_ExcInfoStruct *exc_state;
    PyObject *retval;
    assert(!self->is_running);
    if (unlikely(self->resume_label == 0)) {
        if (unlikely(value && value != Py_None)) {
            return __Pyx_Coroutine_NotStartedError((PyObject*)self);
        }
    }
    if (unlikely(self->resume_label == -1)) {
        return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
    }
#if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    tstate = __pyx_tstate;
#else
    tstate = __Pyx_PyThreadState_Current;
#endif
    exc_state = &self->gi_exc_state;
    if (exc_state->exc_type) {
        #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
        #else
        if (exc_state->exc_traceback) {
            PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback;
            PyFrameObject *f = tb->tb_frame;
            Py_XINCREF(tstate->frame);
            assert(f->f_back == NULL);
            f->f_back = tstate->frame;
        }
        #endif
    }
#if CYTHON_USE_EXC_INFO_STACK
    exc_state->previous_item = tstate->exc_info;
    tstate->exc_info = exc_state;
#else
    if (exc_state->exc_type) {
        __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    } else {
        __Pyx_Coroutine_ExceptionClear(exc_state);
        __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    }
#endif
    self->is_running = 1;
    retval = self->body((PyObject *) self, tstate, value);
    self->is_running = 0;
#if CYTHON_USE_EXC_INFO_STACK
    exc_state = &self->gi_exc_state;
    tstate->exc_info = exc_state->previous_item;
    exc_state->previous_item = NULL;
    __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
#endif
    return retval;
}
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
    PyObject *exc_tb = exc_state->exc_traceback;
    if (likely(exc_tb)) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
#else
        PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
        PyFrameObject *f = tb->tb_frame;
        Py_CLEAR(f->f_back);
#endif
    }
}
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *retval) {
    if (unlikely(!retval)) {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        if (!__Pyx_PyErr_Occurred()) {
            PyObject *exc = PyExc_StopIteration;
            #ifdef __Pyx_AsyncGen_USED
            if (__Pyx_AsyncGen_CheckExact(gen))
                exc = __Pyx_PyExc_StopAsyncIteration;
            #endif
            __Pyx_PyErr_SetNone(exc);
        }
    }
    return retval;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
static CYTHON_INLINE
PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
#if PY_VERSION_HEX <= 0x030A00A1
    return _PyGen_Send(gen, arg);
#else
    PyObject *result;
    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
        if (PyAsyncGen_CheckExact(gen)) {
            assert(result == Py_None);
            PyErr_SetNone(PyExc_StopAsyncIteration);
        }
        else if (result == Py_None) {
            PyErr_SetNone(PyExc_StopIteration);
        }
        else {
            _PyGen_SetStopIterationValue(result);
        }
        Py_CLEAR(result);
    }
    return result;
#endif
}
#endif
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
    PyObject *ret;
    PyObject *val = NULL;
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
    ret = __Pyx_Coroutine_SendEx(gen, val, 0);
    Py_XDECREF(val);
    return ret;
}
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
    PyObject *retval;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_AsyncGen_USED
        if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
            ret = __Pyx_async_gen_asend_send(yf, value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyCoro_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        {
            if (value == Py_None)
                ret = Py_TYPE(yf)->tp_iternext(yf);
            else
                ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value);
        }
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        retval = __Pyx_Coroutine_FinishDelegation(gen);
    } else {
        retval = __Pyx_Coroutine_SendEx(gen, value, 0);
    }
    return __Pyx_Coroutine_MethodReturn(self, retval);
}
static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
    PyObject *retval = NULL;
    int err = 0;
    #ifdef __Pyx_Generator_USED
    if (__Pyx_Generator_CheckExact(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    if (__Pyx_CoroutineAwait_CheckExact(yf)) {
        retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
        retval = __Pyx_async_gen_asend_close(yf, NULL);
    } else
    if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
        retval = __Pyx_async_gen_athrow_close(yf, NULL);
    } else
    #endif
    {
        PyObject *meth;
        gen->is_running = 1;
        meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close);
        if (unlikely(!meth)) {
            if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
                PyErr_WriteUnraisable(yf);
            }
            PyErr_Clear();
        } else {
            retval = PyObject_CallFunction(meth, NULL);
            Py_DECREF(meth);
            if (!retval)
                err = -1;
        }
        gen->is_running = 0;
    }
    Py_XDECREF(retval);
    return err;
}
static PyObject *__Pyx_Generator_Next(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Generator_Next(yf);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, Py_None);
        } else
        #endif
            ret = Py_TYPE(yf)->tp_iternext(yf);
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        return __Pyx_Coroutine_FinishDelegation(gen);
    }
    return __Pyx_Coroutine_SendEx(gen, Py_None, 0);
}
static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, CYTHON_UNUSED PyObject *arg) {
    return __Pyx_Coroutine_Close(self);
}
static PyObject *__Pyx_Coroutine_Close(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *retval, *raised_exception;
    PyObject *yf = gen->yieldfrom;
    int err = 0;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        Py_INCREF(yf);
        err = __Pyx_Coroutine_CloseIter(gen, yf);
        __Pyx_Coroutine_Undelegate(gen);
        Py_DECREF(yf);
    }
    if (err == 0)
        PyErr_SetNone(PyExc_GeneratorExit);
    retval = __Pyx_Coroutine_SendEx(gen, NULL, 1);
    if (unlikely(retval)) {
        const char *msg;
        Py_DECREF(retval);
        if ((0)) {
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_Coroutine_Check(self)) {
            msg = "coroutine ignored GeneratorExit";
        #endif
        #ifdef __Pyx_AsyncGen_USED
        } else if (__Pyx_AsyncGen_CheckExact(self)) {
#if PY_VERSION_HEX < 0x03060000
            msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)";
#else
            msg = "async generator ignored GeneratorExit";
#endif
        #endif
        } else {
            msg = "generator ignored GeneratorExit";
        }
        PyErr_SetString(PyExc_RuntimeError, msg);
        return NULL;
    }
    raised_exception = PyErr_Occurred();
    if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) {
        if (raised_exception) PyErr_Clear();
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
}
static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
                                        PyObject *args, int close_on_genexit) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        Py_INCREF(yf);
        if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
            int err = __Pyx_Coroutine_CloseIter(gen, yf);
            Py_DECREF(yf);
            __Pyx_Coroutine_Undelegate(gen);
            if (err < 0)
                return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
            goto throw_here;
        }
        gen->is_running = 1;
        if (0
        #ifdef __Pyx_Generator_USED
            || __Pyx_Generator_CheckExact(yf)
        #endif
        #ifdef __Pyx_Coroutine_USED
            || __Pyx_Coroutine_Check(yf)
        #endif
            ) {
            ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
            ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
        #endif
        } else {
            PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw);
            if (unlikely(!meth)) {
                Py_DECREF(yf);
                if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
                    gen->is_running = 0;
                    return NULL;
                }
                PyErr_Clear();
                __Pyx_Coroutine_Undelegate(gen);
                gen->is_running = 0;
                goto throw_here;
            }
            if (likely(args)) {
                ret = PyObject_CallObject(meth, args);
            } else {
                ret = PyObject_CallFunctionObjArgs(meth, typ, val, tb, NULL);
            }
            Py_DECREF(meth);
        }
        gen->is_running = 0;
        Py_DECREF(yf);
        if (!ret) {
            ret = __Pyx_Coroutine_FinishDelegation(gen);
        }
        return __Pyx_Coroutine_MethodReturn(self, ret);
    }
throw_here:
    __Pyx_Raise(typ, val, tb, NULL);
    return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
}
static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
    PyObject *typ;
    PyObject *val = NULL;
    PyObject *tb = NULL;
    if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb))
        return NULL;
    return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
}
static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
    Py_VISIT(exc_state->exc_type);
    Py_VISIT(exc_state->exc_value);
    Py_VISIT(exc_state->exc_traceback);
    return 0;
}
static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
    Py_VISIT(gen->closure);
    Py_VISIT(gen->classobj);
    Py_VISIT(gen->yieldfrom);
    return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
}
static int __Pyx_Coroutine_clear(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    Py_CLEAR(gen->closure);
    Py_CLEAR(gen->classobj);
    Py_CLEAR(gen->yieldfrom);
    __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
    }
#endif
    Py_CLEAR(gen->gi_code);
    Py_CLEAR(gen->gi_name);
    Py_CLEAR(gen->gi_qualname);
    Py_CLEAR(gen->gi_modulename);
    return 0;
}
static void __Pyx_Coroutine_dealloc(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject_GC_UnTrack(gen);
    if (gen->gi_weakreflist != NULL)
        PyObject_ClearWeakRefs(self);
    if (gen->resume_label >= 0) {
        PyObject_GC_Track(self);
#if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE
        if (PyObject_CallFinalizerFromDealloc(self))
#else
        Py_TYPE(gen)->tp_del(self);
        if (self->ob_refcnt > 0)
#endif
        {
            return;
        }
        PyObject_GC_UnTrack(self);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        /* We have to handle this case for asynchronous generators
           right here, because this code has to be between UNTRACK
           and GC_Del. */
        Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
    }
#endif
    __Pyx_Coroutine_clear(self);
    PyObject_GC_Del(gen);
}
static void __Pyx_Coroutine_del(PyObject *self) {
    PyObject *error_type, *error_value, *error_traceback;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PyThreadState_declare
    if (gen->resume_label < 0) {
        return;
    }
#if !CYTHON_USE_TP_FINALIZE
    assert(self->ob_refcnt == 0);
    __Pyx_SET_REFCNT(self, 1);
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
        PyObject *finalizer = agen->ag_finalizer;
        if (finalizer && !agen->ag_closed) {
            PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
            if (unlikely(!res)) {
                PyErr_WriteUnraisable(self);
            } else {
                Py_DECREF(res);
            }
            __Pyx_ErrRestore(error_type, error_value, error_traceback);
            return;
        }
    }
#endif
    if (unlikely(gen->resume_label == 0 && !error_value)) {
#ifdef __Pyx_Coroutine_USED
#ifdef __Pyx_Generator_USED
    if (!__Pyx_Generator_CheckExact(self))
#endif
        {
        PyObject_GC_UnTrack(self);
#if PY_MAJOR_VERSION >= 3  || defined(PyErr_WarnFormat)
        if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
            PyErr_WriteUnraisable(self);
#else
        {PyObject *msg;
        char *cmsg;
        #if CYTHON_COMPILING_IN_PYPY
        msg = NULL;
        cmsg = (char*) "coroutine was never awaited";
        #else
        char *cname;
        PyObject *qualname;
        qualname = gen->gi_qualname;
        cname = PyString_AS_STRING(qualname);
        msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname);
        if (unlikely(!msg)) {
            PyErr_Clear();
            cmsg = (char*) "coroutine was never awaited";
        } else {
            cmsg = PyString_AS_STRING(msg);
        }
        #endif
        if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0))
            PyErr_WriteUnraisable(self);
        Py_XDECREF(msg);}
#endif
        PyObject_GC_Track(self);
        }
#endif
    } else {
        PyObject *res = __Pyx_Coroutine_Close(self);
        if (unlikely(!res)) {
            if (PyErr_Occurred())
                PyErr_WriteUnraisable(self);
        } else {
            Py_DECREF(res);
        }
    }
    __Pyx_ErrRestore(error_type, error_value, error_traceback);
#if !CYTHON_USE_TP_FINALIZE
    assert(self->ob_refcnt > 0);
    if (--self->ob_refcnt == 0) {
        return;
    }
    {
        Py_ssize_t refcnt = self->ob_refcnt;
        _Py_NewReference(self);
        __Pyx_SET_REFCNT(self, refcnt);
    }
#if CYTHON_COMPILING_IN_CPYTHON
    assert(PyType_IS_GC(self->ob_type) &&
           _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
    _Py_DEC_REFTOTAL;
#endif
#ifdef COUNT_ALLOCS
    --Py_TYPE(self)->tp_frees;
    --Py_TYPE(self)->tp_allocs;
#endif
#endif
}
static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
{
    PyObject *name = self->gi_name;
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = self->gi_name;
    Py_INCREF(value);
    self->gi_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
{
    PyObject *name = self->gi_qualname;
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = self->gi_qualname;
    Py_INCREF(value);
    self->gi_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
            PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
    if (unlikely(!gen))
        return NULL;
    return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    gen->body = body;
    gen->closure = closure;
    Py_XINCREF(closure);
    gen->is_running = 0;
    gen->resume_label = 0;
    gen->classobj = NULL;
    gen->yieldfrom = NULL;
    gen->gi_exc_state.exc_type = NULL;
    gen->gi_exc_state.exc_value = NULL;
    gen->gi_exc_state.exc_traceback = NULL;
#if CYTHON_USE_EXC_INFO_STACK
    gen->gi_exc_state.previous_item = NULL;
#endif
    gen->gi_weakreflist = NULL;
    Py_XINCREF(qualname);
    gen->gi_qualname = qualname;
    Py_XINCREF(name);
    gen->gi_name = name;
    Py_XINCREF(module_name);
    gen->gi_modulename = module_name;
    Py_XINCREF(code);
    gen->gi_code = code;
    PyObject_GC_Track(gen);
    return gen;
}

/* PyObject_GenericGetAttrNoDict */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, attr_name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(attr_name));
#endif
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
    PyObject *descr;
    PyTypeObject *tp = Py_TYPE(obj);
    if (unlikely(!PyString_Check(attr_name))) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    assert(!tp->tp_dictoffset);
    descr = _PyType_Lookup(tp, attr_name);
    if (unlikely(!descr)) {
        return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
    }
    Py_INCREF(descr);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
    #endif
    {
        descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
        if (unlikely(f)) {
            PyObject *res = f(descr, obj, (PyObject *)tp);
            Py_DECREF(descr);
            return res;
        }
    }
    return descr;
}
#endif

/* PatchModuleWithCoroutine */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    int result;
    PyObject *globals, *result_obj;
    globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_coroutine_type",
    #ifdef __Pyx_Coroutine_USED
        (PyObject*)__pyx_CoroutineType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_generator_type",
    #ifdef __Pyx_Generator_USED
        (PyObject*)__pyx_GeneratorType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
    result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
    if (unlikely(!result_obj)) goto ignore;
    Py_DECREF(result_obj);
    Py_DECREF(globals);
    return module;
ignore:
    Py_XDECREF(globals);
    PyErr_WriteUnraisable(module);
    if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
        Py_DECREF(module);
        module = NULL;
    }
#else
    py_code++;
#endif
    return module;
}

/* PatchGeneratorABC */
#ifndef CYTHON_REGISTER_ABCS
#define CYTHON_REGISTER_ABCS 1
#endif
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
static PyObject* __Pyx_patch_abc_module(PyObject *module);
static PyObject* __Pyx_patch_abc_module(PyObject *module) {
    module = __Pyx_Coroutine_patch_module(
        module, ""
"if _cython_generator_type is not None:\n"
"    try: Generator = _module.Generator\n"
"    except AttributeError: pass\n"
"    else: Generator.register(_cython_generator_type)\n"
"if _cython_coroutine_type is not None:\n"
"    try: Coroutine = _module.Coroutine\n"
"    except AttributeError: pass\n"
"    else: Coroutine.register(_cython_coroutine_type)\n"
    );
    return module;
}
#endif
static int __Pyx_patch_abc(void) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    static int abc_patched = 0;
    if (CYTHON_REGISTER_ABCS && !abc_patched) {
        PyObject *module;
        module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections");
        if (!module) {
            PyErr_WriteUnraisable(NULL);
            if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,
                    ((PY_MAJOR_VERSION >= 3) ?
                        "Cython module failed to register with collections.abc module" :
                        "Cython module failed to register with collections module"), 1) < 0)) {
                return -1;
            }
        } else {
            module = __Pyx_patch_abc_module(module);
            abc_patched = 1;
            if (unlikely(!module))
                return -1;
            Py_DECREF(module);
        }
        module = PyImport_ImportModule("backports_abc");
        if (module) {
            module = __Pyx_patch_abc_module(module);
            Py_XDECREF(module);
        }
        if (!module) {
            PyErr_Clear();
        }
    }
#else
    if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL);
#endif
    return 0;
}

/* Generator */
static PyMethodDef __pyx_Generator_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Generator_memberlist[] = {
    {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL},
    {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     (char*) PyDoc_STR("object being iterated by 'yield from', or None")},
    {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Generator_getsets[] = {
    {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     (char*) PyDoc_STR("name of the generator"), 0},
    {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     (char*) PyDoc_STR("qualified name of the generator"), 0},
    {0, 0, 0, 0, 0}
};
static PyTypeObject __pyx_GeneratorType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "generator",
    sizeof(__pyx_CoroutineObject),
    0,
    (destructor) __Pyx_Coroutine_dealloc,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    0,
    (traverseproc) __Pyx_Coroutine_traverse,
    0,
    0,
    offsetof(__pyx_CoroutineObject, gi_weakreflist),
    0,
    (iternextfunc) __Pyx_Generator_Next,
    __pyx_Generator_methods,
    __pyx_Generator_memberlist,
    __pyx_Generator_getsets,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if CYTHON_USE_TP_FINALIZE
    0,
#else
    __Pyx_Coroutine_del,
#endif
    0,
#if CYTHON_USE_TP_FINALIZE
    __Pyx_Coroutine_del,
#elif PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
};
static int __pyx_Generator_init(void) {
    __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter;
    __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type);
    if (unlikely(!__pyx_GeneratorType)) {
        return -1;
    }
    return 0;
}

/* GeneratorYieldFrom */
static void __PyxPyIter_CheckErrorAndDecref(PyObject *source) {
    PyErr_Format(PyExc_TypeError,
                 "iter() returned non-iterator of type '%.100s'",
                 Py_TYPE(source)->tp_name);
    Py_DECREF(source);
}
static CYTHON_INLINE PyObject* __Pyx_Generator_Yield_From(__pyx_CoroutineObject *gen, PyObject *source) {
    PyObject *source_gen, *retval;
#ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(source)) {
        Py_INCREF(source);
        source_gen = source;
        retval = __Pyx_Generator_Next(source);
    } else
#endif
    {
#if CYTHON_USE_TYPE_SLOTS
        if (likely(Py_TYPE(source)->tp_iter)) {
            source_gen = Py_TYPE(source)->tp_iter(source);
            if (unlikely(!source_gen))
                return NULL;
            if (unlikely(!PyIter_Check(source_gen))) {
                __PyxPyIter_CheckErrorAndDecref(source_gen);
                return NULL;
            }
        } else
#endif
        {
            source_gen = PyObject_GetIter(source);
            if (unlikely(!source_gen))
                return NULL;
        }
#if CYTHON_USE_TYPE_SLOTS
        retval = Py_TYPE(source_gen)->tp_iternext(source_gen);
#else
        retval = PyIter_Next(source_gen);
#endif
    }
    if (likely(retval)) {
        gen->yieldfrom = source_gen;
        return retval;
    }
    Py_DECREF(source_gen);
    return NULL;
}

/* dict_setdefault */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value,
                                                       CYTHON_UNUSED int is_safe_type) {
    PyObject* value;
#if PY_VERSION_HEX >= 0x030400A0
    if ((1)) {
        value = PyDict_SetDefault(d, key, default_value);
        if (unlikely(!value)) return NULL;
        Py_INCREF(value);
#else
    if (is_safe_type == 1 || (is_safe_type == -1 &&
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
            (PyUnicode_CheckExact(key) || PyString_CheckExact(key) || PyLong_CheckExact(key)))) {
        value = PyDict_GetItemWithError(d, key);
        if (unlikely(!value)) {
            if (unlikely(PyErr_Occurred()))
                return NULL;
            if (unlikely(PyDict_SetItem(d, key, default_value) == -1))
                return NULL;
            value = default_value;
        }
        Py_INCREF(value);
#else
            (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key) || PyLong_CheckExact(key)))) {
        value = PyDict_GetItem(d, key);
        if (unlikely(!value)) {
            if (unlikely(PyDict_SetItem(d, key, default_value) == -1))
                return NULL;
            value = default_value;
        }
        Py_INCREF(value);
#endif
#endif
    } else {
        value = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_setdefault, d, key, default_value);
    }
    return value;
}

/* ArgTypeTest */
    static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (exact) {
        #if PY_MAJOR_VERSION == 2
        if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    }
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
        name, type->tp_name, Py_TYPE(obj)->tp_name);
    return 0;
}

/* PyIntBinop */
    #if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
    (void)inplace;
    (void)zerodivision_check;
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
            x = (long)((unsigned long)a + b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
            double result;
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* Import */
    static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (!py_import)
        goto bad;
    #endif
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
                module = PyImport_ImportModuleLevelObject(
                    name, global_dict, empty_dict, list, 1);
                if (!module) {
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_MAJOR_VERSION < 3
            PyObject *py_level = PyInt_FromLong(level);
            if (!py_level)
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, global_dict, empty_dict, list, level);
            #endif
        }
    }
bad:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* ImportFrom */
    static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* HasAttr */
    static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!__Pyx_PyBaseString_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_GetAttr(o, n);
    if (unlikely(!r)) {
        PyErr_Clear();
        return 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}

/* PyObject_GenericGetAttr */
    #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
    if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
}
#endif

/* SetVTable */
    static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
#if PY_VERSION_HEX >= 0x02070000
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
#else
    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
#endif
    if (!ob)
        goto bad;
    if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* PyObjectGetAttrStrNoError */
    static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
}

/* SetupReduce */
    static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
#else
    if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD;
#endif
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
            if (likely(reduce_cython)) {
                ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred())
        PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}

/* TypeImport */
    #ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
    size_t size, enum __Pyx_ImportType_CheckSize check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
#ifdef Py_LIMITED_API
    PyObject *py_basicsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#ifndef Py_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if ((size_t)basicsize < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* CalculateMetaclass */
    static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases);
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
        tmptype = Py_TYPE(tmp);
#if PY_MAJOR_VERSION < 3
        if (tmptype == &PyClass_Type)
            continue;
#endif
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
#if PY_MAJOR_VERSION < 3
        metaclass = &PyClass_Type;
#else
        metaclass = &PyType_Type;
#endif
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* ClassMethod */
    static PyObject* __Pyx_Method_ClassMethod(PyObject *method) {
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM <= 0x05080000
    if (PyObject_TypeCheck(method, &PyWrapperDescr_Type)) {
        return PyClassMethod_New(method);
    }
#else
#if CYTHON_COMPILING_IN_PYSTON || CYTHON_COMPILING_IN_PYPY
    if (PyMethodDescr_Check(method))
#else
    #if PY_MAJOR_VERSION == 2
    static PyTypeObject *methoddescr_type = NULL;
    if (methoddescr_type == NULL) {
       PyObject *meth = PyObject_GetAttrString((PyObject*)&PyList_Type, "append");
       if (!meth) return NULL;
       methoddescr_type = Py_TYPE(meth);
       Py_DECREF(meth);
    }
    #else
    PyTypeObject *methoddescr_type = &PyMethodDescr_Type;
    #endif
    if (__Pyx_TypeCheck(method, methoddescr_type))
#endif
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject *)method;
        #if PY_VERSION_HEX < 0x03020000
        PyTypeObject *d_type = descr->d_type;
        #else
        PyTypeObject *d_type = descr->d_common.d_type;
        #endif
        return PyDescr_NewClassMethod(d_type, descr->d_method);
    }
#endif
    else if (PyMethod_Check(method)) {
        return PyClassMethod_New(PyMethod_GET_FUNCTION(method));
    }
    else {
        return PyClassMethod_New(method);
    }
}

/* Py3ClassCreate */
    static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
        if (prep) {
            PyObject *pargs = PyTuple_Pack(2, name, bases);
            if (unlikely(!pargs)) {
                Py_DECREF(prep);
                return NULL;
            }
            ns = PyObject_Call(prep, pargs, mkw);
            Py_DECREF(prep);
            Py_DECREF(pargs);
        } else {
            if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError)))
                return NULL;
            PyErr_Clear();
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result, *margs;
    PyObject *owned_metaclass = NULL;
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    margs = PyTuple_Pack(3, name, bases, dict);
    if (unlikely(!margs)) {
        result = NULL;
    } else {
        result = PyObject_Call(metaclass, margs, mkw);
        Py_DECREF(margs);
    }
    Py_XDECREF(owned_metaclass);
    return result;
}

/* CyFunctionClassCell */
    static int __Pyx_CyFunction_InitClassCell(PyObject *cyfunctions, PyObject *classobj) {
    Py_ssize_t i, count = PyList_GET_SIZE(cyfunctions);
    for (i = 0; i < count; i++) {
        __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *)
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            PyList_GET_ITEM(cyfunctions, i);
#else
            PySequence_ITEM(cyfunctions, i);
        if (unlikely(!m))
            return -1;
#endif
        Py_INCREF(classobj);
        m->func_classobj = classobj;
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
        Py_DECREF((PyObject*)m);
#endif
    }
    return 0;
}

/* CLineInTraceback */
    #ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    if (unlikely(!__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
    static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}

/* AddTraceback */
    #include "compile.h"
#include "frameobject.h"
#include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    #if PY_MAJOR_VERSION < 3
    py_srcfile = PyString_FromString(filename);
    #else
    py_srcfile = PyUnicode_FromString(filename);
    #endif
    if (!py_srcfile) goto bad;
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        #else
        py_funcname = PyUnicode_FromString(funcname);
        #endif
    }
    if (!py_funcname) goto bad;
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    Py_DECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

/* CIntFromPyVerify */
    #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* CIntFromPy */
    static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(size_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (size_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (size_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) {
                            return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) {
                            return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) {
                            return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (size_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(size_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (size_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(size_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                            return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                            return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
                            return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(size_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            size_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (size_t) -1;
        }
    } else {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyInt_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
    static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int) -1;
        }
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint32_t(uint32_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint32_t neg_one = (uint32_t) -1, const_zero = (uint32_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint32_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint32_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint32_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint32_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint32_t),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
    static CYTHON_INLINE uint32_t __Pyx_PyInt_As_uint32_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint32_t neg_one = (uint32_t) -1, const_zero = (uint32_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(uint32_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(uint32_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (uint32_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint32_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(uint32_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(uint32_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 2 * PyLong_SHIFT) {
                            return (uint32_t) (((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint32_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 3 * PyLong_SHIFT) {
                            return (uint32_t) (((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint32_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 4 * PyLong_SHIFT) {
                            return (uint32_t) (((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (uint32_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(uint32_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint32_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(uint32_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(uint32_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(uint32_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(uint32_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint32_t) ((((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint32_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint32_t) ((((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint32_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint32_t) ((((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(uint32_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint32_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            uint32_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (uint32_t) -1;
        }
    } else {
        uint32_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (uint32_t) -1;
        val = __Pyx_PyInt_As_uint32_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint32_t");
    return (uint32_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint32_t");
    return (uint32_t) -1;
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
    static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(unsigned int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0])
                case 2:
                    if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) {
                            return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) {
                            return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) {
                            return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (unsigned int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(unsigned int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(unsigned int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(unsigned int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            unsigned int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (unsigned int) -1;
        }
    } else {
        unsigned int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (unsigned int) -1;
        val = __Pyx_PyInt_As_unsigned_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned int");
    return (unsigned int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned int");
    return (unsigned int) -1;
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mode_t(mode_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const mode_t neg_one = (mode_t) -1, const_zero = (mode_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(mode_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(mode_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(mode_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(mode_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(mode_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(mode_t),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
    static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (long) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            long val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (long) -1;
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned char) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(unsigned char) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint16_t neg_one = (uint16_t) -1, const_zero = (uint16_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint16_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint16_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint16_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint16_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint16_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint16_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint8_t(uint8_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint8_t neg_one = (uint8_t) -1, const_zero = (uint8_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint8_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint8_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint8_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint8_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint8_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint8_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const char neg_one = (char) -1, const_zero = (char) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(char) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(char) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(char) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(char),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
    static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint64_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint64_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint64_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint64_t),
                                     little, !is_unsigned);
    }
}

/* CheckBinaryVersion */
    static int __Pyx_check_binary_version(void) {
    char ctversion[4], rtversion[4];
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compiletime version %s of module '%.100s' "
                      "does not match runtime version %s",
                      ctversion, __Pyx_MODULE_NAME, rtversion);
        return PyErr_WarnEx(NULL, message, 1);
    }
    return 0;
}

/* InitStrings */
    static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        ++t;
    }
    return 0;
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#if !CYTHON_PEP393_ENABLED
static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    char* defenc_c;
    PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
    if (!defenc) return NULL;
    defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    {
        char* end = defenc_c + PyBytes_GET_SIZE(defenc);
        char* c;
        for (c = defenc_c; c < end; c++) {
            if ((unsigned char) (*c) >= 128) {
                PyUnicode_AsASCIIString(o);
                return NULL;
            }
        }
    }
#endif
    *length = PyBytes_GET_SIZE(defenc);
    return defenc_c;
}
#else
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
}
#endif
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type %.200s).  "
                "The ability to return an instance of a strict subclass of int "
                "is deprecated, and may be removed in a future version of Python.",
                Py_TYPE(result)->tp_name)) {
            Py_DECREF(result);
            return NULL;
        }
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type %.200s)",
                 type_name, type_name, Py_TYPE(result)->tp_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_Check(x) || PyLong_Check(x)))
#else
  if (likely(PyLong_Check(x)))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = m->nb_int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = m->nb_long(x);
  }
  #else
  if (likely(m && m->nb_int)) {
    name = "int";
    res = m->nb_int(x);
  }
  #endif
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
    res = PyNumber_Int(x);
  }
#endif
  if (likely(res)) {
#if PY_MAJOR_VERSION < 3
    if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
#else
    if (unlikely(!PyLong_CheckExact(res))) {
#endif
        return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(b);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    const digit* digits = ((PyLongObject*)b)->ob_digit;
    const Py_ssize_t size = Py_SIZE(b);
    if (likely(__Pyx_sst_abs(size) <= 1)) {
        ival = likely(size) ? digits[0] : 0;
        if (size == -1) ival = -ival;
        return ival;
    } else {
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return __Pyx_PyIndex_AsSsize_t(o);
#if PY_MAJOR_VERSION < 3
  } else if (likely(PyInt_CheckExact(o))) {
    return PyInt_AS_LONG(o);
#endif
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyInt_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


#endif /* Py_PYTHON_H */
