Generated by Cython 3.1.1

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

Raw output: _rencode.c

+001: # cython: language_level=3
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 002: #
 003: # rencode.pyx
 004: #
 005: # Copyright (C) 2024 Andrew Resch <andrewresch@gmail.com>
 006: #
 007: # rencode is free software.
 008: #
 009: # You may redistribute it and/or modify it under the terms of the
 010: # GNU General Public License, as published by the Free Software
 011: # Foundation; either version 3 of the License, or (at your option)
 012: # any later version.
 013: #
 014: # rencode is distributed in the hope that it will be useful,
 015: # but WITHOUT ANY WARRANTY; without even the implied warranty of
 016: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 017: # See the GNU General Public License for more details.
 018: #
 019: # You should have received a copy of the GNU General Public License
 020: # along with deluge.    If not, write to:
 021: #     The Free Software Foundation, Inc.,
 022: #     51 Franklin Street, Fifth Floor
 023: #     Boston, MA  02110-1301, USA.
 024: #
 025: 
 026: from cpython cimport bool
 027: from libc.stdlib cimport realloc, free
 028: from libc.string cimport memcpy
 029: 
+030: __version__ = ("Cython", 1, 0, 7)
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_version, __pyx_mstate_global->__pyx_tuple[0]) < 0) __PYX_ERR(0, 30, __pyx_L1_error)
/* … */
  __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(4, __pyx_mstate_global->__pyx_n_u_Cython, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_7); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 30, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);
 031: 
+032: cdef long long data_length = 0
  __pyx_v_7rencode_8_rencode_data_length = 0;
+033: cdef bool _decode_utf8 = False
  __Pyx_INCREF(Py_False);
  __Pyx_XGOTREF((PyObject *)__pyx_v_7rencode_8_rencode__decode_utf8);
  __Pyx_DECREF_SET(__pyx_v_7rencode_8_rencode__decode_utf8, ((PyLongObject *)Py_False));
  __Pyx_GIVEREF(Py_False);
 034: 
 035: # Determine host byte-order
+036: cdef bool big_endian = False
  __Pyx_INCREF(Py_False);
  __Pyx_XGOTREF((PyObject *)__pyx_v_7rencode_8_rencode_big_endian);
  __Pyx_DECREF_SET(__pyx_v_7rencode_8_rencode_big_endian, ((PyLongObject *)Py_False));
  __Pyx_GIVEREF(Py_False);
+037: cdef unsigned long number = 1
  __pyx_v_7rencode_8_rencode_number = 1;
+038: cdef char *s = <char *>&number
  __pyx_v_7rencode_8_rencode_s = ((char *)(&__pyx_v_7rencode_8_rencode_number));
+039: if s[0] == 0:
  __pyx_t_2 = ((__pyx_v_7rencode_8_rencode_s[0]) == 0);
  if (__pyx_t_2) {
/* … */
  }
+040:     big_endian = True
    __Pyx_INCREF(Py_True);
    __Pyx_XGOTREF((PyObject *)__pyx_v_7rencode_8_rencode_big_endian);
    __Pyx_DECREF_SET(__pyx_v_7rencode_8_rencode_big_endian, ((PyLongObject *)Py_True));
    __Pyx_GIVEREF(Py_True);
 041: 
+042: cdef enum:
enum  {
 043:     # Default number of bits for serialized floats, either 32 or 64 (also a parameter for dumps()).
 044:     DEFAULT_FLOAT_BITS = 32
 045:     # Maximum length of integer when written as base 10 string.
 046:     MAX_INT_LENGTH = 64
 047:     # The bencode 'typecodes' such as i, d, etc have been extended and
 048:     # relocated on the base-256 character set.
 049:     CHR_LIST    = 59
 050:     CHR_DICT    = 60
 051:     CHR_INT     = 61
 052:     CHR_INT1    = 62
 053:     CHR_INT2    = 63
 054:     CHR_INT4    = 64
 055:     CHR_INT8    = 65
 056:     CHR_FLOAT32 = 66
 057:     CHR_FLOAT64 = 44
 058:     CHR_TRUE    = 67
 059:     CHR_FALSE   = 68
 060:     CHR_NONE    = 69
 061:     CHR_TERM    = 127
 062:     # Positive integers with value embedded in typecode.
 063:     INT_POS_FIXED_START = 0
 064:     INT_POS_FIXED_COUNT = 44
 065:     # Dictionaries with length embedded in typecode.
 066:     DICT_FIXED_START = 102
 067:     DICT_FIXED_COUNT = 25
 068:     # Negative integers with value embedded in typecode.
 069:     INT_NEG_FIXED_START = 70
 070:     INT_NEG_FIXED_COUNT = 32
 071:     # Strings with length embedded in typecode.
 072:     STR_FIXED_START = 128
 073:     STR_FIXED_COUNT = 64
 074:     # Lists with length embedded in typecode.
+075:     LIST_FIXED_START = STR_FIXED_START+STR_FIXED_COUNT
  __pyx_e_7rencode_8_rencode_DEFAULT_FLOAT_BITS = 32,
  __pyx_e_7rencode_8_rencode_MAX_INT_LENGTH = 64,
  __pyx_e_7rencode_8_rencode_CHR_LIST = 59,
  __pyx_e_7rencode_8_rencode_CHR_DICT = 60,
  __pyx_e_7rencode_8_rencode_CHR_INT = 61,
  __pyx_e_7rencode_8_rencode_CHR_INT1 = 62,
  __pyx_e_7rencode_8_rencode_CHR_INT2 = 63,
  __pyx_e_7rencode_8_rencode_CHR_INT4 = 64,
  __pyx_e_7rencode_8_rencode_CHR_INT8 = 65,
  __pyx_e_7rencode_8_rencode_CHR_FLOAT32 = 66,
  __pyx_e_7rencode_8_rencode_CHR_FLOAT64 = 44,
  __pyx_e_7rencode_8_rencode_CHR_TRUE = 67,
  __pyx_e_7rencode_8_rencode_CHR_FALSE = 68,
  __pyx_e_7rencode_8_rencode_CHR_NONE = 69,
  __pyx_e_7rencode_8_rencode_CHR_TERM = 0x7F,
  __pyx_e_7rencode_8_rencode_INT_POS_FIXED_START = 0,
  __pyx_e_7rencode_8_rencode_INT_POS_FIXED_COUNT = 44,
  __pyx_e_7rencode_8_rencode_DICT_FIXED_START = 0x66,
  __pyx_e_7rencode_8_rencode_DICT_FIXED_COUNT = 25,
  __pyx_e_7rencode_8_rencode_INT_NEG_FIXED_START = 70,
  __pyx_e_7rencode_8_rencode_INT_NEG_FIXED_COUNT = 32,
  __pyx_e_7rencode_8_rencode_STR_FIXED_START = 0x80,
  __pyx_e_7rencode_8_rencode_STR_FIXED_COUNT = 64,
  __pyx_e_7rencode_8_rencode_LIST_FIXED_START = (__pyx_e_7rencode_8_rencode_STR_FIXED_START + __pyx_e_7rencode_8_rencode_STR_FIXED_COUNT),
  __pyx_e_7rencode_8_rencode_LIST_FIXED_COUNT = 64
};
 076:     LIST_FIXED_COUNT = 64
 077: 
 078: cdef char _float_bits
 079: 
+080: cdef swap_byte_order_ushort(unsigned short *s):
static PyObject *__pyx_f_7rencode_8_rencode_swap_byte_order_ushort(unsigned short *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+081:     s[0] = (s[0] >> 8) | (s[0] << 8)
  (__pyx_v_s[0]) = (((__pyx_v_s[0]) >> 8) | ((__pyx_v_s[0]) << 8));
 082: 
+083: cdef swap_byte_order_short(char *c):
static PyObject *__pyx_f_7rencode_8_rencode_swap_byte_order_short(char *__pyx_v_c) {
  short __pyx_v_s;
  char *__pyx_v_p;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.swap_byte_order_short", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 084:     cdef short s
+085:     cdef char *p = <char *>&s
  __pyx_v_p = ((char *)(&__pyx_v_s));
+086:     p[0] = c[1]
  (__pyx_v_p[0]) = (__pyx_v_c[1]);
+087:     p[1] = c[0]
  (__pyx_v_p[1]) = (__pyx_v_c[0]);
+088:     return s
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_short(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 089: 
+090: cdef swap_byte_order_uint(int *i):
static PyObject *__pyx_f_7rencode_8_rencode_swap_byte_order_uint(int *__pyx_v_i) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+091:     i[0] = (i[0] >> 24) | ((i[0] << 8) & 0x00FF0000) | ((i[0] >> 8) & 0x0000FF00) | (i[0] << 24)
  (__pyx_v_i[0]) = (((((__pyx_v_i[0]) >> 24) | (((__pyx_v_i[0]) << 8) & 0x00FF0000)) | (((__pyx_v_i[0]) >> 8) & 0x0000FF00)) | ((__pyx_v_i[0]) << 24));
 092: 
+093: cdef swap_byte_order_int(char *c):
static PyObject *__pyx_f_7rencode_8_rencode_swap_byte_order_int(char *__pyx_v_c) {
  int __pyx_v_i;
  char *__pyx_v_p;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.swap_byte_order_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 094:     cdef int i
+095:     cdef char *p = <char *>&i
  __pyx_v_p = ((char *)(&__pyx_v_i));
+096:     p[0] = c[3]
  (__pyx_v_p[0]) = (__pyx_v_c[3]);
+097:     p[1] = c[2]
  (__pyx_v_p[1]) = (__pyx_v_c[2]);
+098:     p[2] = c[1]
  (__pyx_v_p[2]) = (__pyx_v_c[1]);
+099:     p[3] = c[0]
  (__pyx_v_p[3]) = (__pyx_v_c[0]);
+100:     return i
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 101: 
+102: cdef swap_byte_order_ulong_long(long long *l):
static PyObject *__pyx_f_7rencode_8_rencode_swap_byte_order_ulong_long(PY_LONG_LONG *__pyx_v_l) {
  PyObject *__pyx_r = 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("rencode._rencode.swap_byte_order_ulong_long", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+103:     l[0] = (l[0] >> 56) | \
  __pyx_t_1 = __Pyx_PyLong_From_PY_LONG_LONG(((__pyx_v_l[0]) >> 56)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
/* … */
  __pyx_t_2 = PyNumber_Or(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __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_v_l[0]) = __pyx_t_4;
+104:            ((l[0] << 40) & 0x00FF000000000000) | \
  __pyx_t_2 = __Pyx_PyLong_From_PY_LONG_LONG(((__pyx_v_l[0]) << 40)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_And(__pyx_t_2, __pyx_mstate_global->__pyx_int_0xff000000000000); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_t_3 = PyNumber_Or(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+105:            ((l[0] << 24) & 0x0000FF0000000000) | \
  __pyx_t_3 = __Pyx_PyLong_From_PY_LONG_LONG(((__pyx_v_l[0]) << 24)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyNumber_And(__pyx_t_3, __pyx_mstate_global->__pyx_int_0xff0000000000); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
  __pyx_t_1 = PyNumber_Or(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+106:            ((l[0] << 8) & 0x000000FF00000000) | \
  __pyx_t_1 = __Pyx_PyLong_From_PY_LONG_LONG(((__pyx_v_l[0]) << 8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_And(__pyx_t_1, __pyx_mstate_global->__pyx_int_1095216660480); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
  __pyx_t_2 = PyNumber_Or(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __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;
+107:            ((l[0] >> 8) & 0x00000000FF000000) | \
  __pyx_t_2 = __Pyx_PyLong_From_PY_LONG_LONG(((__pyx_v_l[0]) >> 8)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_And(__pyx_t_2, __pyx_mstate_global->__pyx_int_4278190080); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_t_1 = PyNumber_Or(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 107, __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;
+108:            ((l[0] >> 24) & 0x0000000000FF0000) | \
  __pyx_t_3 = __Pyx_PyLong_From_PY_LONG_LONG((((__pyx_v_l[0]) >> 24) & 0x0000000000FF0000)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_2 = PyNumber_Or(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __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;
+109:            ((l[0] >> 40) & 0x000000000000FF00) | \
  __pyx_t_3 = __Pyx_PyLong_From_PY_LONG_LONG((((__pyx_v_l[0]) >> 40) & 0x000000000000FF00)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_1 = PyNumber_Or(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __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_t_4 = __Pyx_PyLong_As_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_4 == (PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+110:            (l[0] << 56)
  __pyx_t_3 = __Pyx_PyLong_From_PY_LONG_LONG(((__pyx_v_l[0]) << 56)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
 111: 
+112: cdef swap_byte_order_long_long(char *c):
static PyObject *__pyx_f_7rencode_8_rencode_swap_byte_order_long_long(char *__pyx_v_c) {
  PY_LONG_LONG __pyx_v_l;
  char *__pyx_v_p;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.swap_byte_order_long_long", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 113:     cdef long long l
+114:     cdef char *p = <char *>&l
  __pyx_v_p = ((char *)(&__pyx_v_l));
+115:     p[0] = c[7]
  (__pyx_v_p[0]) = (__pyx_v_c[7]);
+116:     p[1] = c[6]
  (__pyx_v_p[1]) = (__pyx_v_c[6]);
+117:     p[2] = c[5]
  (__pyx_v_p[2]) = (__pyx_v_c[5]);
+118:     p[3] = c[4]
  (__pyx_v_p[3]) = (__pyx_v_c[4]);
+119:     p[4] = c[3]
  (__pyx_v_p[4]) = (__pyx_v_c[3]);
+120:     p[5] = c[2]
  (__pyx_v_p[5]) = (__pyx_v_c[2]);
+121:     p[6] = c[1]
  (__pyx_v_p[6]) = (__pyx_v_c[1]);
+122:     p[7] = c[0]
  (__pyx_v_p[7]) = (__pyx_v_c[0]);
+123:     return l
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_PY_LONG_LONG(__pyx_v_l); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 124: 
+125: cdef swap_byte_order_float(char *c):
static PyObject *__pyx_f_7rencode_8_rencode_swap_byte_order_float(char *__pyx_v_c) {
  float __pyx_v_f;
  char *__pyx_v_p;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.swap_byte_order_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 126:     cdef float f
+127:     cdef char *p = <char *>&f
  __pyx_v_p = ((char *)(&__pyx_v_f));
+128:     p[0] = c[3]
  (__pyx_v_p[0]) = (__pyx_v_c[3]);
+129:     p[1] = c[2]
  (__pyx_v_p[1]) = (__pyx_v_c[2]);
+130:     p[2] = c[1]
  (__pyx_v_p[2]) = (__pyx_v_c[1]);
+131:     p[3] = c[0]
  (__pyx_v_p[3]) = (__pyx_v_c[0]);
+132:     return f
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_f); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 133: 
+134: cdef swap_byte_order_double(char *c):
static PyObject *__pyx_f_7rencode_8_rencode_swap_byte_order_double(char *__pyx_v_c) {
  double __pyx_v_d;
  char *__pyx_v_p;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.swap_byte_order_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 135:     cdef double d
+136:     cdef char *p = <char *>&d
  __pyx_v_p = ((char *)(&__pyx_v_d));
+137:     p[0] = c[7]
  (__pyx_v_p[0]) = (__pyx_v_c[7]);
+138:     p[1] = c[6]
  (__pyx_v_p[1]) = (__pyx_v_c[6]);
+139:     p[2] = c[5]
  (__pyx_v_p[2]) = (__pyx_v_c[5]);
+140:     p[3] = c[4]
  (__pyx_v_p[3]) = (__pyx_v_c[4]);
+141:     p[4] = c[3]
  (__pyx_v_p[4]) = (__pyx_v_c[3]);
+142:     p[5] = c[2]
  (__pyx_v_p[5]) = (__pyx_v_c[2]);
+143:     p[6] = c[1]
  (__pyx_v_p[6]) = (__pyx_v_c[1]);
+144:     p[7] = c[0]
  (__pyx_v_p[7]) = (__pyx_v_c[0]);
+145:     return d
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 146: 
+147: cdef write_buffer_char(char **buf, unsigned int *pos, char c):
static PyObject *__pyx_f_7rencode_8_rencode_write_buffer_char(char **__pyx_v_buf, unsigned int *__pyx_v_pos, char __pyx_v_c) {
  PyObject *__pyx_r = 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("rencode._rencode.write_buffer_char", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+148:     buf[0] = <char*>realloc(buf[0], pos[0] + 1)
  (__pyx_v_buf[0]) = ((char *)realloc((__pyx_v_buf[0]), ((__pyx_v_pos[0]) + 1)));
+149:     if buf[0] == NULL:
  __pyx_t_1 = ((__pyx_v_buf[0]) == NULL);
  if (unlikely(__pyx_t_1)) {
/* … */
  }
+150:         raise MemoryError("Error in realloc, 1 byte needed")
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_MemoryError);
    __pyx_t_4 = __pyx_builtin_MemoryError; 
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Error_in_realloc_1_byte_needed};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __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(0, 150, __pyx_L1_error)
+151:     memcpy(&buf[0][pos[0]], &c, 1)
  (void)(memcpy((&((__pyx_v_buf[0])[(__pyx_v_pos[0])])), (&__pyx_v_c), 1));
+152:     pos[0] += 1
  __pyx_t_6 = 0;
  (__pyx_v_pos[__pyx_t_6]) = ((__pyx_v_pos[__pyx_t_6]) + 1);
 153: 
+154: cdef write_buffer(char **buf, unsigned int *pos, void* data, int size):
static PyObject *__pyx_f_7rencode_8_rencode_write_buffer(char **__pyx_v_buf, unsigned int *__pyx_v_pos, void *__pyx_v_data, int __pyx_v_size) {
  PyObject *__pyx_r = 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_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("rencode._rencode.write_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+155:     buf[0] = <char*>realloc(buf[0], pos[0] + size)
  (__pyx_v_buf[0]) = ((char *)realloc((__pyx_v_buf[0]), ((__pyx_v_pos[0]) + __pyx_v_size)));
+156:     if buf[0] == NULL:
  __pyx_t_1 = ((__pyx_v_buf[0]) == NULL);
  if (unlikely(__pyx_t_1)) {
/* … */
  }
+157:         raise MemoryError("Error in realloc, %d bytes needed", size)
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_MemoryError);
    __pyx_t_4 = __pyx_builtin_MemoryError; 
    __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Error_in_realloc_d_bytes_needed, __pyx_t_5};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __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(0, 157, __pyx_L1_error)
+158:     memcpy(&buf[0][pos[0]], data, size)
  (void)(memcpy((&((__pyx_v_buf[0])[(__pyx_v_pos[0])])), __pyx_v_data, __pyx_v_size));
+159:     pos[0] += size
  __pyx_t_7 = 0;
  (__pyx_v_pos[__pyx_t_7]) = ((__pyx_v_pos[__pyx_t_7]) + __pyx_v_size);
 160: 
+161: cdef encode_char(char **buf, unsigned int *pos, signed char x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_char(char **__pyx_v_buf, unsigned int *__pyx_v_pos, signed char __pyx_v_x) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("rencode._rencode.encode_char", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+162:     if 0 <= x < INT_POS_FIXED_COUNT:
  __pyx_t_1 = (0 <= __pyx_v_x);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_x < __pyx_e_7rencode_8_rencode_INT_POS_FIXED_COUNT);
  }
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+163:         write_buffer_char(buf, pos, INT_POS_FIXED_START + x)
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, (__pyx_e_7rencode_8_rencode_INT_POS_FIXED_START + __pyx_v_x)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 163, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+164:     elif -INT_NEG_FIXED_COUNT <= x < 0:
  __pyx_t_1 = ((-__pyx_e_7rencode_8_rencode_INT_NEG_FIXED_COUNT) <= __pyx_v_x);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_x < 0);
  }
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+165:         write_buffer_char(buf, pos, INT_NEG_FIXED_START - 1 - x)
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, ((__pyx_e_7rencode_8_rencode_INT_NEG_FIXED_START - 1) - __pyx_v_x)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+166:     elif -128 <= x < 128:
  __pyx_t_1 = (-128L <= __pyx_v_x);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_x < 0x80);
  }
  if (__pyx_t_1) {
/* … */
  }
  __pyx_L3:;
+167:         write_buffer_char(buf, pos, CHR_INT1)
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_INT1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+168:         write_buffer_char(buf, pos, x)
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 168, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 169: 
+170: cdef encode_short(char **buf, unsigned int *pos, short x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_short(char **__pyx_v_buf, unsigned int *__pyx_v_pos, short __pyx_v_x) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.encode_short", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+171:     write_buffer_char(buf, pos, CHR_INT2)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_INT2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+172:     if not big_endian:
  __pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 172, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
/* … */
  }
+173:         if x > 0:
    __pyx_t_3 = (__pyx_v_x > 0);
    if (__pyx_t_3) {
/* … */
      goto __pyx_L4;
    }
+174:             swap_byte_order_ushort(<unsigned short*>&x)
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_ushort(((unsigned short *)(&__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 175:         else:
+176:             x = swap_byte_order_short(<char*>&x)
    /*else*/ {
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_short(((char *)(&__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyLong_As_short(__pyx_t_1); if (unlikely((__pyx_t_4 == (short)-1) && PyErr_Occurred())) __PYX_ERR(0, 176, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_x = __pyx_t_4;
    }
    __pyx_L4:;
 177: 
+178:     write_buffer(buf, pos, &x, sizeof(x))
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, (&__pyx_v_x), (sizeof(__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 179: 
+180: cdef encode_int(char **buf, unsigned int *pos, int x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_int(char **__pyx_v_buf, unsigned int *__pyx_v_pos, int __pyx_v_x) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.encode_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+181:     write_buffer_char(buf, pos, CHR_INT4)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_INT4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+182:     if not big_endian:
  __pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 182, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
/* … */
  }
+183:         if x > 0:
    __pyx_t_3 = (__pyx_v_x > 0);
    if (__pyx_t_3) {
/* … */
      goto __pyx_L4;
    }
+184:             swap_byte_order_uint(&x)
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_uint((&__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 185:         else:
+186:             x = swap_byte_order_int(<char*>&x)
    /*else*/ {
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_int(((char *)(&__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 186, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_x = __pyx_t_4;
    }
    __pyx_L4:;
+187:     write_buffer(buf, pos, &x, sizeof(x))
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, (&__pyx_v_x), (sizeof(__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 188: 
+189: cdef encode_long_long(char **buf, unsigned int *pos, long long x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_long_long(char **__pyx_v_buf, unsigned int *__pyx_v_pos, PY_LONG_LONG __pyx_v_x) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.encode_long_long", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+190:     write_buffer_char(buf, pos, CHR_INT8)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_INT8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+191:     if not big_endian:
  __pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 191, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
/* … */
  }
+192:         if x > 0:
    __pyx_t_3 = (__pyx_v_x > 0);
    if (__pyx_t_3) {
/* … */
      goto __pyx_L4;
    }
+193:             swap_byte_order_ulong_long(&x)
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_ulong_long((&__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 194:         else:
+195:             x = swap_byte_order_long_long(<char*>&x)
    /*else*/ {
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_long_long(((char *)(&__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyLong_As_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_4 == (PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_x = __pyx_t_4;
    }
    __pyx_L4:;
+196:     write_buffer(buf, pos, &x, sizeof(x))
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, (&__pyx_v_x), (sizeof(__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 197: 
+198: cdef encode_big_number(char **buf, unsigned int *pos, char *x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_big_number(char **__pyx_v_buf, unsigned int *__pyx_v_pos, char *__pyx_v_x) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.encode_big_number", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+199:     write_buffer_char(buf, pos, CHR_INT)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_INT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+200:     write_buffer(buf, pos, x, len(x))
  __pyx_t_2 = __Pyx_ssize_strlen(__pyx_v_x); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 200, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, __pyx_v_x, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+201:     write_buffer_char(buf, pos, CHR_TERM)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_TERM); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 202: 
+203: cdef encode_float32(char **buf, unsigned int *pos, float x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_float32(char **__pyx_v_buf, unsigned int *__pyx_v_pos, float __pyx_v_x) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.encode_float32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+204:     write_buffer_char(buf, pos, CHR_FLOAT32)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_FLOAT32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+205:     if not big_endian:
  __pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 205, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
/* … */
  }
+206:         x = swap_byte_order_float(<char *>&x)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_float(((char *)(&__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 206, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_x = __pyx_t_4;
+207:     write_buffer(buf, pos, &x, sizeof(x))
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, (&__pyx_v_x), (sizeof(__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 208: 
+209: cdef encode_float64(char **buf, unsigned int *pos, double x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_float64(char **__pyx_v_buf, unsigned int *__pyx_v_pos, double __pyx_v_x) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.encode_float64", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+210:     write_buffer_char(buf, pos, CHR_FLOAT64)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_FLOAT64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+211:     if not big_endian:
  __pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 211, __pyx_L1_error)
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
/* … */
  }
+212:         x = swap_byte_order_double(<char *>&x)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_double(((char *)(&__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 212, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_x = __pyx_t_4;
+213:     write_buffer(buf, pos, &x, sizeof(x))
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, (&__pyx_v_x), (sizeof(__pyx_v_x))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 213, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 214: 
+215: cdef encode_str(char **buf, unsigned int *pos, bytes x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_str(char **__pyx_v_buf, unsigned int *__pyx_v_pos, PyObject *__pyx_v_x) {
  char *__pyx_v_p;
  int __pyx_v_lx;
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* 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_5);
  __Pyx_AddTraceback("rencode._rencode.encode_str", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 216:     cdef char *p
+217:     cdef int lx = len(x)
  if (unlikely(__pyx_v_x == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 217, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyBytes_GET_SIZE(__pyx_v_x); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 217, __pyx_L1_error)
  __pyx_v_lx = __pyx_t_1;
+218:     if lx < STR_FIXED_COUNT:
  __pyx_t_2 = (__pyx_v_lx < __pyx_e_7rencode_8_rencode_STR_FIXED_COUNT);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+219:         write_buffer_char(buf, pos, STR_FIXED_START + lx)
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, (__pyx_e_7rencode_8_rencode_STR_FIXED_START + __pyx_v_lx)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+220:         write_buffer(buf, pos, <char *>x, lx)
    if (unlikely(__pyx_v_x == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(0, 220, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_v_x); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 220, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, ((char *)__pyx_t_4), __pyx_v_lx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 221:     else:
+222:         s = str(lx) + ":"
  /*else*/ {
    __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_lx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_Unicode(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_ConcatInPlace(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_s = __pyx_t_3;
    __pyx_t_3 = 0;
+223:         s = s.encode("ascii")
    __pyx_t_3 = PyUnicode_AsASCIIString(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_3);
    __pyx_t_3 = 0;
+224:         p = s
    __pyx_t_4 = __Pyx_PyObject_AsWritableString(__pyx_v_s); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 224, __pyx_L1_error)
    __pyx_v_p = __pyx_t_4;
+225:         write_buffer(buf, pos, p, len(s))
    __pyx_t_1 = PyObject_Length(__pyx_v_s); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 225, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, __pyx_v_p, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+226:         write_buffer(buf, pos, <char *>x, lx)
    if (unlikely(__pyx_v_x == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
      __PYX_ERR(0, 226, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_v_x); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 226, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer(__pyx_v_buf, __pyx_v_pos, ((char *)__pyx_t_4), __pyx_v_lx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;
 227: 
+228: cdef encode_none(char **buf, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_encode_none(char **__pyx_v_buf, unsigned int *__pyx_v_pos) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.encode_none", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+229:     write_buffer_char(buf, pos, CHR_NONE)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_NONE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 230: 
+231: cdef encode_bool(char **buf, unsigned int *pos, bool x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_bool(char **__pyx_v_buf, unsigned int *__pyx_v_pos, PyLongObject *__pyx_v_x) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("rencode._rencode.encode_bool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+232:     if x:
  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_x)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 232, __pyx_L1_error)
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+233:         write_buffer_char(buf, pos, CHR_TRUE)
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_TRUE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 233, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 234:     else:
+235:         write_buffer_char(buf, pos, CHR_FALSE)
  /*else*/ {
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_FALSE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;
 236: 
+237: cdef encode_list(char **buf, unsigned int *pos, x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_list(char **__pyx_v_buf, unsigned int *__pyx_v_pos, PyObject *__pyx_v_x) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* 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_5);
  __Pyx_AddTraceback("rencode._rencode.encode_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+238:     if len(x) < LIST_FIXED_COUNT:
  __pyx_t_1 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 238, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 < __pyx_e_7rencode_8_rencode_LIST_FIXED_COUNT);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+239:         write_buffer_char(buf, pos, LIST_FIXED_START + len(x))
    __pyx_t_1 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 239, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, (__pyx_e_7rencode_8_rencode_LIST_FIXED_START + __pyx_t_1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+240:         for i in x:
    if (likely(PyList_CheckExact(__pyx_v_x)) || PyTuple_CheckExact(__pyx_v_x)) {
      __pyx_t_3 = __pyx_v_x; __Pyx_INCREF(__pyx_t_3);
      __pyx_t_1 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 240, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 240, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_4)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 240, __pyx_L1_error)
            #endif
            if (__pyx_t_1 >= __pyx_temp) break;
          }
          __pyx_t_5 = __Pyx_PyList_GetItemRef(__pyx_t_3, __pyx_t_1);
          ++__pyx_t_1;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 240, __pyx_L1_error)
            #endif
            if (__pyx_t_1 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1));
          #else
          __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1);
          #endif
          ++__pyx_t_1;
        }
        if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 240, __pyx_L1_error)
      } else {
        __pyx_t_5 = __pyx_t_4(__pyx_t_3);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 240, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+241:             encode(buf, pos, i)
      __pyx_t_5 = __pyx_f_7rencode_8_rencode_encode(__pyx_v_buf, __pyx_v_pos, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 241, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 242:     else:
+243:         write_buffer_char(buf, pos, CHR_LIST)
  /*else*/ {
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_LIST); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+244:         for i in x:
    if (likely(PyList_CheckExact(__pyx_v_x)) || PyTuple_CheckExact(__pyx_v_x)) {
      __pyx_t_3 = __pyx_v_x; __Pyx_INCREF(__pyx_t_3);
      __pyx_t_1 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_4)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 244, __pyx_L1_error)
            #endif
            if (__pyx_t_1 >= __pyx_temp) break;
          }
          __pyx_t_5 = __Pyx_PyList_GetItemRef(__pyx_t_3, __pyx_t_1);
          ++__pyx_t_1;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 244, __pyx_L1_error)
            #endif
            if (__pyx_t_1 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1));
          #else
          __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1);
          #endif
          ++__pyx_t_1;
        }
        if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error)
      } else {
        __pyx_t_5 = __pyx_t_4(__pyx_t_3);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 244, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+245:             encode(buf, pos, i)
      __pyx_t_5 = __pyx_f_7rencode_8_rencode_encode(__pyx_v_buf, __pyx_v_pos, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 245, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+246:         write_buffer_char(buf, pos, CHR_TERM)
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_TERM); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 246, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;
 247: 
+248: cdef encode_dict(char **buf, unsigned int *pos, x):
static PyObject *__pyx_f_7rencode_8_rencode_encode_dict(char **__pyx_v_buf, unsigned int *__pyx_v_pos, PyObject *__pyx_v_x) {
  PyObject *__pyx_v_k = NULL;
  PyObject *__pyx_v_v = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* 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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("rencode._rencode.encode_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_XDECREF(__pyx_v_v);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+249:     if len(x) < DICT_FIXED_COUNT:
  __pyx_t_1 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 249, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 < __pyx_e_7rencode_8_rencode_DICT_FIXED_COUNT);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+250:         write_buffer_char(buf, pos, DICT_FIXED_START + len(x))
    __pyx_t_1 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 250, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, (__pyx_e_7rencode_8_rencode_DICT_FIXED_START + __pyx_t_1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+251:         for k, v in x.items():
    __pyx_t_1 = 0;
    if (unlikely(__pyx_v_x == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
      __PYX_ERR(0, 251, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_x, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3);
    __pyx_t_3 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_4, &__pyx_t_1, &__pyx_t_6, &__pyx_t_7, NULL, __pyx_t_5);
      if (unlikely(__pyx_t_8 == 0)) break;
      if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 251, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_7);
      __pyx_t_7 = 0;
+252:             encode(buf, pos, k)
      __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode(__pyx_v_buf, __pyx_v_pos, __pyx_v_k); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+253:             encode(buf, pos, v)
      __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode(__pyx_v_buf, __pyx_v_pos, __pyx_v_v); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 254:     else:
+255:         write_buffer_char(buf, pos, CHR_DICT)
  /*else*/ {
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_DICT); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+256:         for k, v in x.items():
    __pyx_t_4 = 0;
    if (unlikely(__pyx_v_x == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
      __PYX_ERR(0, 256, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_dict_iterator(__pyx_v_x, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_1), (&__pyx_t_5)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 256, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_3);
    __pyx_t_3 = __pyx_t_7;
    __pyx_t_7 = 0;
    while (1) {
      __pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_1, &__pyx_t_4, &__pyx_t_7, &__pyx_t_6, NULL, __pyx_t_5);
      if (unlikely(__pyx_t_8 == 0)) break;
      if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 256, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_7);
      __pyx_t_7 = 0;
      __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6);
      __pyx_t_6 = 0;
+257:             encode(buf, pos, k)
      __pyx_t_6 = __pyx_f_7rencode_8_rencode_encode(__pyx_v_buf, __pyx_v_pos, __pyx_v_k); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+258:             encode(buf, pos, v)
      __pyx_t_6 = __pyx_f_7rencode_8_rencode_encode(__pyx_v_buf, __pyx_v_pos, __pyx_v_v); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+259:         write_buffer_char(buf, pos, CHR_TERM)
    __pyx_t_3 = __pyx_f_7rencode_8_rencode_write_buffer_char(__pyx_v_buf, __pyx_v_pos, __pyx_e_7rencode_8_rencode_CHR_TERM); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;
 260: 
+261: cdef object MAX_SIGNED_INT = 2**31
  __Pyx_INCREF(__pyx_mstate_global->__pyx_int_2147483648);
  __Pyx_XGOTREF(__pyx_v_7rencode_8_rencode_MAX_SIGNED_INT);
  __Pyx_DECREF_SET(__pyx_v_7rencode_8_rencode_MAX_SIGNED_INT, __pyx_mstate_global->__pyx_int_2147483648);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_2147483648);
+262: cdef object MIN_SIGNED_INT = -MAX_SIGNED_INT
  __pyx_t_3 = PyNumber_Negative(__pyx_v_7rencode_8_rencode_MAX_SIGNED_INT); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_7rencode_8_rencode_MIN_SIGNED_INT);
  __Pyx_DECREF_SET(__pyx_v_7rencode_8_rencode_MIN_SIGNED_INT, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
 263: #note: negating the Python value avoids compiler problems
 264: #(negating the "long long" constant can make it unsigned with some compilers!)
+265: cdef object MAX_SIGNED_LONGLONG = int(2**63)
  __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_mstate_global->__pyx_int_0x8000000000000000); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_7rencode_8_rencode_MAX_SIGNED_LONGLONG);
  __Pyx_DECREF_SET(__pyx_v_7rencode_8_rencode_MAX_SIGNED_LONGLONG, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
+266: cdef object MIN_SIGNED_LONGLONG = -MAX_SIGNED_LONGLONG
  __pyx_t_3 = PyNumber_Negative(__pyx_v_7rencode_8_rencode_MAX_SIGNED_LONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_XGOTREF(__pyx_v_7rencode_8_rencode_MIN_SIGNED_LONGLONG);
  __Pyx_DECREF_SET(__pyx_v_7rencode_8_rencode_MIN_SIGNED_LONGLONG, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
 267: 
+268: cdef encode(char **buf, unsigned int *pos, data):
static PyObject *__pyx_f_7rencode_8_rencode_encode(char **__pyx_v_buf, unsigned int *__pyx_v_pos, PyObject *__pyx_v_data) {
  PyTypeObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_v_u = NULL;
  PyObject *__pyx_r = 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_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("rencode._rencode.encode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XDECREF(__pyx_v_u);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+269:     t = type(data)
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_data)));
  __pyx_v_t = ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_data)));
+270:     if t == int:
  __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+271:         if -128 <= data < 128:
    __pyx_t_1 = PyObject_RichCompare(__pyx_mstate_global->__pyx_int_neg_128, __pyx_v_data, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_data, __pyx_mstate_global->__pyx_int_128, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 271, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {
/* … */
      goto __pyx_L4;
    }
+272:             encode_char(buf, pos, data)
      __pyx_t_3 = __Pyx_PyLong_As_signed_char(__pyx_v_data); if (unlikely((__pyx_t_3 == (signed char)-1) && PyErr_Occurred())) __PYX_ERR(0, 272, __pyx_L1_error)
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_encode_char(__pyx_v_buf, __pyx_v_pos, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 272, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+273:         elif -32768 <= data < 32768:
    __pyx_t_1 = PyObject_RichCompare(__pyx_mstate_global->__pyx_int_neg_32768, __pyx_v_data, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_data, __pyx_mstate_global->__pyx_int_32768, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 273, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {
/* … */
      goto __pyx_L4;
    }
+274:             encode_short(buf, pos, data)
      __pyx_t_4 = __Pyx_PyLong_As_short(__pyx_v_data); if (unlikely((__pyx_t_4 == (short)-1) && PyErr_Occurred())) __PYX_ERR(0, 274, __pyx_L1_error)
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_encode_short(__pyx_v_buf, __pyx_v_pos, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+275:         elif MIN_SIGNED_INT <= data < MAX_SIGNED_INT:
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_7rencode_8_rencode_MIN_SIGNED_INT, __pyx_v_data, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_data, __pyx_v_7rencode_8_rencode_MAX_SIGNED_INT, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 275, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {
/* … */
      goto __pyx_L4;
    }
+276:             encode_int(buf, pos, data)
      __pyx_t_5 = __Pyx_PyLong_As_int(__pyx_v_data); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 276, __pyx_L1_error)
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_encode_int(__pyx_v_buf, __pyx_v_pos, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+277:         elif MIN_SIGNED_LONGLONG <= data < MAX_SIGNED_LONGLONG:
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_7rencode_8_rencode_MIN_SIGNED_LONGLONG, __pyx_v_data, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_data, __pyx_v_7rencode_8_rencode_MAX_SIGNED_LONGLONG, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 277, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_2) {
/* … */
      goto __pyx_L4;
    }
+278:             encode_long_long(buf, pos, data)
      __pyx_t_6 = __Pyx_PyLong_As_PY_LONG_LONG(__pyx_v_data); if (unlikely((__pyx_t_6 == (PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 278, __pyx_L1_error)
      __pyx_t_1 = __pyx_f_7rencode_8_rencode_encode_long_long(__pyx_v_buf, __pyx_v_pos, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 279:         else:
+280:             s = str(data).encode("ascii")
    /*else*/ {
      __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyUnicode_AsASCIIString(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 280, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_s = ((PyObject*)__pyx_t_7);
      __pyx_t_7 = 0;
+281:             if len(s) >= MAX_INT_LENGTH:
      __pyx_t_8 = __Pyx_PyBytes_GET_SIZE(__pyx_v_s); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 281, __pyx_L1_error)
      __pyx_t_2 = (__pyx_t_8 >= __pyx_e_7rencode_8_rencode_MAX_INT_LENGTH);
      if (unlikely(__pyx_t_2)) {
/* … */
      }
+282:                 raise ValueError("Number is longer than %d characters" % MAX_INT_LENGTH)
        __pyx_t_1 = NULL;
        __Pyx_INCREF(__pyx_builtin_ValueError);
        __pyx_t_9 = __pyx_builtin_ValueError; 
        __pyx_t_10 = __Pyx_PyLong_From___pyx_anon_enum(__pyx_e_7rencode_8_rencode_MAX_INT_LENGTH); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 282, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Number_is_longer_than_d_characte, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 282, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_12 = 1;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11};
          __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 282, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_Raise(__pyx_t_7, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __PYX_ERR(0, 282, __pyx_L1_error)
+283:             encode_big_number(buf, pos, s)
      __pyx_t_13 = __Pyx_PyBytes_AsWritableString(__pyx_v_s); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L1_error)
      __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_big_number(__pyx_v_buf, __pyx_v_pos, __pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 283, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_L4:;
+284:     elif t == float:
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 284, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+285:         if _float_bits == 32:
    switch (__pyx_v_7rencode_8_rencode__float_bits) {
      case 32:
/* … */
      break;
      case 64:
+286:             encode_float32(buf, pos, data)
      __pyx_t_14 = __Pyx_PyFloat_AsFloat(__pyx_v_data); if (unlikely((__pyx_t_14 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L1_error)
      __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_float32(__pyx_v_buf, __pyx_v_pos, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 286, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+287:         elif _float_bits == 64:
      break;
      default:
+288:             encode_float64(buf, pos, data)
      __pyx_t_15 = __Pyx_PyFloat_AsDouble(__pyx_v_data); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 288, __pyx_L1_error)
      __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_float64(__pyx_v_buf, __pyx_v_pos, __pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 288, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 289:         else:
+290:             raise ValueError('Float bits (%d) is not 32 or 64' % _float_bits)
      __pyx_t_9 = NULL;
      __Pyx_INCREF(__pyx_builtin_ValueError);
      __pyx_t_11 = __pyx_builtin_ValueError; 
      __pyx_t_1 = __Pyx_PyLong_From_char(__pyx_v_7rencode_8_rencode__float_bits); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Float_bits_d_is_not_32_or_64, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 290, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_12 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_10};
        __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 290, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __PYX_ERR(0, 290, __pyx_L1_error)
      break;
    }
+291:     elif t == bytes:
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 291, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 291, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+292:         encode_str(buf, pos, data)
    if (!(likely(PyBytes_CheckExact(__pyx_v_data))||((__pyx_v_data) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_data))) __PYX_ERR(0, 292, __pyx_L1_error)
    __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_str(__pyx_v_buf, __pyx_v_pos, ((PyObject*)__pyx_v_data)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+293:     elif t == str:
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 293, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 293, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+294:         u = data.encode("utf8")
    __pyx_t_11 = __pyx_v_data;
    __Pyx_INCREF(__pyx_t_11);
    __pyx_t_12 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_mstate_global->__pyx_n_u_utf8};
      __pyx_t_7 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __pyx_v_u = __pyx_t_7;
    __pyx_t_7 = 0;
+295:         encode_str(buf, pos, u)
    if (!(likely(PyBytes_CheckExact(__pyx_v_u))||((__pyx_v_u) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_u))) __PYX_ERR(0, 295, __pyx_L1_error)
    __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_str(__pyx_v_buf, __pyx_v_pos, ((PyObject*)__pyx_v_u)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+296:     elif t == type(None):
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)Py_TYPE(Py_None)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 296, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+297:         encode_none(buf, pos)
    __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_none(__pyx_v_buf, __pyx_v_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+298:     elif t == bool:
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)__pyx_mstate_global->__pyx_ptype_7cpython_4bool_bool), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 298, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 298, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+299:         encode_bool(buf, pos, data)
    if (!(likely(((__pyx_v_data) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_data, __pyx_mstate_global->__pyx_ptype_7cpython_4bool_bool))))) __PYX_ERR(0, 299, __pyx_L1_error)
    __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_bool(__pyx_v_buf, __pyx_v_pos, ((PyLongObject *)__pyx_v_data)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+300:     elif t == list or t == tuple:
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)(&PyList_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 300, __pyx_L1_error)
  __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_16 < 0))) __PYX_ERR(0, 300, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (!__pyx_t_16) {
  } else {
    __pyx_t_2 = __pyx_t_16;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)(&PyTuple_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 300, __pyx_L1_error)
  __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_16 < 0))) __PYX_ERR(0, 300, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_2 = __pyx_t_16;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+301:         encode_list(buf, pos, data)
    __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_list(__pyx_v_buf, __pyx_v_pos, __pyx_v_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+302:     elif t == dict:
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_t), ((PyObject *)(&PyDict_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 302, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (likely(__pyx_t_2)) {
/* … */
    goto __pyx_L3;
  }
+303:         encode_dict(buf, pos, data)
    __pyx_t_7 = __pyx_f_7rencode_8_rencode_encode_dict(__pyx_v_buf, __pyx_v_pos, __pyx_v_data); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 303, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 304:     else:
+305:         raise TypeError(f"type {t} not handled")
  /*else*/ {
    __pyx_t_11 = NULL;
    __Pyx_INCREF(__pyx_builtin_TypeError);
    __pyx_t_10 = __pyx_builtin_TypeError; 
    __pyx_t_9 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_t), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_type;
    __pyx_t_17[1] = __pyx_t_9;
    __pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_not_handled;
    __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_17, 3, 5 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 12, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9));
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_12 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_1};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 305, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __PYX_ERR(0, 305, __pyx_L1_error)
  }
  __pyx_L3:;
 306: 
+307: def dumps(data, float_bits=DEFAULT_FLOAT_BITS):
static PyObject *__pyx_pf_7rencode_8_rencode_4__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0) != (0)) __PYX_ERR(0, 307, __pyx_L1_error);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 307, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None) != (0)) __PYX_ERR(0, 307, __pyx_L1_error);
  __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("rencode._rencode.__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_7rencode_8_rencode_1dumps(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7rencode_8_rencode_dumps, "\n    Encode the object data into a string.\n\n    :param data: the object to encode\n    :type data: object\n\n    ");
static PyMethodDef __pyx_mdef_7rencode_8_rencode_1dumps = {"dumps", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7rencode_8_rencode_1dumps, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7rencode_8_rencode_dumps};
static PyObject *__pyx_pw_7rencode_8_rencode_1dumps(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_data = 0;
  PyObject *__pyx_v_float_bits = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dumps (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_data,&__pyx_mstate_global->__pyx_n_u_float_bits,0};
  PyObject* values[2] = {0,0};
    struct __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self);
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 307, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 307, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 307, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "dumps", 0) < 0) __PYX_ERR(0, 307, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("dumps", 0, 1, 2, i); __PYX_ERR(0, 307, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 307, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 307, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
    }
    __pyx_v_data = values[0];
    __pyx_v_float_bits = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("dumps", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 307, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("rencode._rencode.dumps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7rencode_8_rencode_dumps(__pyx_self, __pyx_v_data, __pyx_v_float_bits);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7rencode_8_rencode_dumps(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_float_bits) {
  char *__pyx_v_buf;
  unsigned int __pyx_v_pos;
  PyObject *__pyx_v_ret = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("rencode._rencode.dumps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ret);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7rencode_8_rencode_1dumps, 0, __pyx_mstate_global->__pyx_n_u_dumps, NULL, __pyx_mstate_global->__pyx_n_u_rencode__rencode, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, __pyx_mstate_global->__pyx_ptype_7rencode_8_rencode___pyx_defaults)) __PYX_ERR(0, 307, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyLong_From___pyx_anon_enum(__pyx_e_7rencode_8_rencode_DEFAULT_FLOAT_BITS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_t_3)->arg0 = __pyx_t_4;
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_7rencode_8_rencode_4__defaults__);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_dumps, __pyx_t_3) < 0) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 308:     """
 309:     Encode the object data into a string.
 310: 
 311:     :param data: the object to encode
 312:     :type data: object
 313: 
 314:     """
 315:     global _float_bits
+316:     _float_bits = float_bits
  __pyx_t_1 = __Pyx_PyLong_As_char(__pyx_v_float_bits); if (unlikely((__pyx_t_1 == (char)-1) && PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L1_error)
  __pyx_v_7rencode_8_rencode__float_bits = __pyx_t_1;
+317:     cdef char *buf = NULL
  __pyx_v_buf = NULL;
+318:     cdef unsigned int pos = 0
  __pyx_v_pos = 0;
+319:     encode(&buf, &pos, data)
  __pyx_t_2 = __pyx_f_7rencode_8_rencode_encode((&__pyx_v_buf), (&__pyx_v_pos), __pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+320:     ret = buf[:pos]
  __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_buf + 0, __pyx_v_pos - 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_ret = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
+321:     free(buf)
  free(__pyx_v_buf);
+322:     return ret
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ret);
  __pyx_r = __pyx_v_ret;
  goto __pyx_L0;
 323: 
+324: cdef decode_char(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_char(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  signed char __pyx_v_c;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_char", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 325:     cdef signed char c
+326:     check_pos(data, pos[0]+1)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+327:     memcpy(&c, &data[pos[0]+1], 1)
  (void)(memcpy((&__pyx_v_c), (&(__pyx_v_data[((__pyx_v_pos[0]) + 1)])), 1));
+328:     pos[0] += 2
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 2);
+329:     return c
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_signed_char(__pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 330: 
+331: cdef decode_short(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_short(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  short __pyx_v_s;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_short", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 332:     cdef short s
+333:     check_pos(data, pos[0]+2)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + 2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+334:     memcpy(&s, &data[pos[0]+1], 2)
  (void)(memcpy((&__pyx_v_s), (&(__pyx_v_data[((__pyx_v_pos[0]) + 1)])), 2));
+335:     pos[0] += 3
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 3);
+336:     if not big_endian:
  __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 336, __pyx_L1_error)
  __pyx_t_4 = (!__pyx_t_3);
  if (__pyx_t_4) {
/* … */
  }
+337:         s = swap_byte_order_short(<char*>&s)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_short(((char *)(&__pyx_v_s))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyLong_As_short(__pyx_t_1); if (unlikely((__pyx_t_5 == (short)-1) && PyErr_Occurred())) __PYX_ERR(0, 337, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_s = __pyx_t_5;
+338:     return s
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_short(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 339: 
+340: cdef decode_int(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_int(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  int __pyx_v_i;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 341:     cdef int i
+342:     check_pos(data, pos[0]+4)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+343:     memcpy(&i, &data[pos[0]+1], 4)
  (void)(memcpy((&__pyx_v_i), (&(__pyx_v_data[((__pyx_v_pos[0]) + 1)])), 4));
+344:     pos[0] += 5
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 5);
+345:     if not big_endian:
  __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 345, __pyx_L1_error)
  __pyx_t_4 = (!__pyx_t_3);
  if (__pyx_t_4) {
/* … */
  }
+346:         i = swap_byte_order_int(<char*>&i)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_int(((char *)(&__pyx_v_i))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 346, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 346, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_i = __pyx_t_5;
+347:     return i
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 348: 
+349: cdef decode_long_long(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_long_long(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  PY_LONG_LONG __pyx_v_l;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_long_long", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 350:     cdef long long l
+351:     check_pos(data, pos[0]+8)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + 8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+352:     memcpy(&l, &data[pos[0]+1], 8)
  (void)(memcpy((&__pyx_v_l), (&(__pyx_v_data[((__pyx_v_pos[0]) + 1)])), 8));
+353:     pos[0] += 9
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 9);
+354:     if not big_endian:
  __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 354, __pyx_L1_error)
  __pyx_t_4 = (!__pyx_t_3);
  if (__pyx_t_4) {
/* … */
  }
+355:         l = swap_byte_order_long_long(<char*>&l)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_long_long(((char *)(&__pyx_v_l))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyLong_As_PY_LONG_LONG(__pyx_t_1); if (unlikely((__pyx_t_5 == (PY_LONG_LONG)-1) && PyErr_Occurred())) __PYX_ERR(0, 355, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_l = __pyx_t_5;
+356:     return l
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_PY_LONG_LONG(__pyx_v_l); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 357: 
+358: cdef decode_fixed_pos_int(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_fixed_pos_int(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("rencode._rencode.decode_fixed_pos_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+359:     pos[0] += 1
  __pyx_t_1 = 0;
  (__pyx_v_pos[__pyx_t_1]) = ((__pyx_v_pos[__pyx_t_1]) + 1);
+360:     return data[pos[0] - 1] - INT_POS_FIXED_START
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyLong_From_int(((__pyx_v_data[((__pyx_v_pos[0]) - 1)]) - __pyx_e_7rencode_8_rencode_INT_POS_FIXED_START)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;
 361: 
+362: cdef decode_fixed_neg_int(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_fixed_neg_int(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("rencode._rencode.decode_fixed_neg_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+363:     pos[0] += 1
  __pyx_t_1 = 0;
  (__pyx_v_pos[__pyx_t_1]) = ((__pyx_v_pos[__pyx_t_1]) + 1);
+364:     return (data[pos[0] - 1] - INT_NEG_FIXED_START + 1)*-1
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyLong_From_long(((((__pyx_v_data[((__pyx_v_pos[0]) - 1)]) - __pyx_e_7rencode_8_rencode_INT_NEG_FIXED_START) + 1) * -1L)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;
 365: 
+366: cdef decode_big_number(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_big_number(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  int __pyx_v_x;
  PyObject *__pyx_v_big_number = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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_AddTraceback("rencode._rencode.decode_big_number", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_big_number);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+367:     pos[0] += 1
  __pyx_t_1 = 0;
  (__pyx_v_pos[__pyx_t_1]) = ((__pyx_v_pos[__pyx_t_1]) + 1);
+368:     cdef int x = 18
  __pyx_v_x = 18;
+369:     check_pos(data, pos[0]+x)
  __pyx_t_2 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + __pyx_v_x)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+370:     while (data[pos[0]+x] != CHR_TERM):
  while (1) {
    __pyx_t_3 = ((__pyx_v_data[((__pyx_v_pos[0]) + __pyx_v_x)]) != __pyx_e_7rencode_8_rencode_CHR_TERM);
    if (!__pyx_t_3) break;
+371:         x += 1
    __pyx_v_x = (__pyx_v_x + 1);
+372:         if x >= MAX_INT_LENGTH:
    __pyx_t_3 = (__pyx_v_x >= __pyx_e_7rencode_8_rencode_MAX_INT_LENGTH);
    if (unlikely(__pyx_t_3)) {
/* … */
    }
+373:             raise ValueError(
      __pyx_t_4 = NULL;
      __Pyx_INCREF(__pyx_builtin_ValueError);
      __pyx_t_5 = __pyx_builtin_ValueError; 
+374:                 "Number is longer than %d characters" % MAX_INT_LENGTH)
      __pyx_t_6 = __Pyx_PyLong_From___pyx_anon_enum(__pyx_e_7rencode_8_rencode_MAX_INT_LENGTH); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 374, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Number_is_longer_than_d_characte, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 374, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_8 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7};
        __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 373, __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(0, 373, __pyx_L1_error)
+375:         check_pos(data, pos[0]+x)
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + __pyx_v_x)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 375, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
 376: 
+377:     big_number = int(data[pos[0]:pos[0]+x])
  __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_data + (__pyx_v_pos[0]), ((__pyx_v_pos[0]) + __pyx_v_x) - (__pyx_v_pos[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_big_number = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
+378:     pos[0] += x + 1
  __pyx_t_1 = 0;
  (__pyx_v_pos[__pyx_t_1]) = ((__pyx_v_pos[__pyx_t_1]) + (__pyx_v_x + 1));
+379:     return big_number
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_big_number);
  __pyx_r = __pyx_v_big_number;
  goto __pyx_L0;
 380: 
+381: cdef decode_float32(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_float32(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  float __pyx_v_f;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_float32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 382:     cdef float f
+383:     check_pos(data, pos[0]+4)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + 4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+384:     memcpy(&f, &data[pos[0]+1], 4)
  (void)(memcpy((&__pyx_v_f), (&(__pyx_v_data[((__pyx_v_pos[0]) + 1)])), 4));
+385:     pos[0] += 5
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 5);
+386:     if not big_endian:
  __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 386, __pyx_L1_error)
  __pyx_t_4 = (!__pyx_t_3);
  if (__pyx_t_4) {
/* … */
  }
+387:         f = swap_byte_order_float(<char*>&f)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_float(((char *)(&__pyx_v_f))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 387, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_f = __pyx_t_5;
+388:     return f
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_f); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 389: 
+390: cdef decode_float64(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_float64(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  double __pyx_v_d;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_float64", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 391:     cdef double d
+392:     check_pos(data, pos[0]+8)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + 8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+393:     memcpy(&d, &data[pos[0]+1], 8)
  (void)(memcpy((&__pyx_v_d), (&(__pyx_v_data[((__pyx_v_pos[0]) + 1)])), 8));
+394:     pos[0] += 9
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 9);
+395:     if not big_endian:
  __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode_big_endian)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 395, __pyx_L1_error)
  __pyx_t_4 = (!__pyx_t_3);
  if (__pyx_t_4) {
/* … */
  }
+396:         d = swap_byte_order_double(<char*>&d)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_swap_byte_order_double(((char *)(&__pyx_v_d))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 396, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_d = __pyx_t_5;
+397:     return d
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 398: 
+399: cdef decode_fixed_str(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_fixed_str(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  unsigned char __pyx_v_size;
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_fixed_str", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+400:     cdef unsigned char size = data[pos[0]] - STR_FIXED_START + 1
  __pyx_v_size = (((__pyx_v_data[(__pyx_v_pos[0])]) - __pyx_e_7rencode_8_rencode_STR_FIXED_START) + 1);
+401:     check_pos(data, pos[0] + size - 1)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, (((__pyx_v_pos[0]) + __pyx_v_size) - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+402:     s = data[pos[0]+1:pos[0] + size]
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_data + ((__pyx_v_pos[0]) + 1), ((__pyx_v_pos[0]) + __pyx_v_size) - ((__pyx_v_pos[0]) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_s = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+403:     pos[0] += size
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + __pyx_v_size);
+404:     return s
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_s);
  __pyx_r = __pyx_v_s;
  goto __pyx_L0;
 405: 
+406: cdef decode_str(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_str(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  unsigned int __pyx_v_x;
  int __pyx_v_size;
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("rencode._rencode.decode_str", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+407:     cdef unsigned int x = 1
  __pyx_v_x = 1;
+408:     check_pos(data, pos[0]+x)
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + __pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+409:     while (data[pos[0]+x] != 58):
  while (1) {
    __pyx_t_2 = ((__pyx_v_data[((__pyx_v_pos[0]) + __pyx_v_x)]) != 58);
    if (!__pyx_t_2) break;
+410:         x += 1
    __pyx_v_x = (__pyx_v_x + 1);
+411:         check_pos(data, pos[0]+x)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, ((__pyx_v_pos[0]) + __pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 411, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
 412: 
+413:     cdef int size = int(data[pos[0]:pos[0]+x])
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_data + (__pyx_v_pos[0]), ((__pyx_v_pos[0]) + __pyx_v_x) - (__pyx_v_pos[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyLong_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_size = __pyx_t_4;
+414:     pos[0] += x + 1
  __pyx_t_5 = 0;
  (__pyx_v_pos[__pyx_t_5]) = ((__pyx_v_pos[__pyx_t_5]) + (__pyx_v_x + 1));
+415:     check_pos(data, pos[0] + size - 1)
  __pyx_t_3 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, (((__pyx_v_pos[0]) + __pyx_v_size) - 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+416:     s = data[pos[0]:pos[0] + size]
  __pyx_t_3 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_data + (__pyx_v_pos[0]), ((__pyx_v_pos[0]) + __pyx_v_size) - (__pyx_v_pos[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_s = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+417:     pos[0] += size
  __pyx_t_5 = 0;
  (__pyx_v_pos[__pyx_t_5]) = ((__pyx_v_pos[__pyx_t_5]) + __pyx_v_size);
+418:     return s
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_s);
  __pyx_r = __pyx_v_s;
  goto __pyx_L0;
 419: 
+420: cdef decode_fixed_list(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_fixed_list(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  PyObject *__pyx_v_l = NULL;
  int __pyx_v_size;
  CYTHON_UNUSED int __pyx_v_i;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_fixed_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_l);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+421:     l = []
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_l = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+422:     size = <unsigned char>data[pos[0]] - LIST_FIXED_START
  __pyx_v_size = (((unsigned char)(__pyx_v_data[(__pyx_v_pos[0])])) - __pyx_e_7rencode_8_rencode_LIST_FIXED_START);
+423:     pos[0] += 1
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 1);
 424:     cdef int i
+425:     for i in range(size):
  __pyx_t_3 = __pyx_v_size;
  __pyx_t_4 = __pyx_t_3;
  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
    __pyx_v_i = __pyx_t_5;
+426:         l.append(decode(data, pos))
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_decode(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_l, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 426, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
+427:     return tuple(l)
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_AsTuple(__pyx_v_l); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 428: 
+429: cdef decode_list(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_list(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  PyObject *__pyx_v_l = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_l);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+430:     l = []
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_l = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+431:     pos[0] += 1
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 1);
+432:     while data[pos[0]] != CHR_TERM:
  while (1) {
    __pyx_t_3 = ((__pyx_v_data[(__pyx_v_pos[0])]) != __pyx_e_7rencode_8_rencode_CHR_TERM);
    if (!__pyx_t_3) break;
+433:         l.append(decode(data, pos))
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_decode(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_l, __pyx_t_1); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 433, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
+434:     pos[0] += 1
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 1);
+435:     return tuple(l)
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_AsTuple(__pyx_v_l); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 436: 
+437: cdef decode_fixed_dict(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_fixed_dict(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  PyObject *__pyx_v_d = NULL;
  int __pyx_v_size;
  CYTHON_UNUSED int __pyx_v_i;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_fixed_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+438:     d = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_d = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+439:     size = <unsigned char>data[pos[0]] - DICT_FIXED_START
  __pyx_v_size = (((unsigned char)(__pyx_v_data[(__pyx_v_pos[0])])) - __pyx_e_7rencode_8_rencode_DICT_FIXED_START);
+440:     pos[0] += 1
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 1);
 441:     cdef int i
+442:     for i in range(size):
  __pyx_t_3 = __pyx_v_size;
  __pyx_t_4 = __pyx_t_3;
  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
    __pyx_v_i = __pyx_t_5;
+443:         key = decode(data, pos)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_decode(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1);
    __pyx_t_1 = 0;
+444:         value = decode(data, pos)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_decode(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;
+445:         d[key] = value
    if (unlikely((PyDict_SetItem(__pyx_v_d, __pyx_v_key, __pyx_v_value) < 0))) __PYX_ERR(0, 445, __pyx_L1_error)
  }
+446:     return d
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_d);
  __pyx_r = __pyx_v_d;
  goto __pyx_L0;
 447: 
+448: cdef decode_dict(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode_dict(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("rencode._rencode.decode_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+449:     d = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_d = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+450:     pos[0] += 1
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 1);
+451:     check_pos(data, pos[0])
  __pyx_t_1 = __pyx_f_7rencode_8_rencode_check_pos(__pyx_v_data, (__pyx_v_pos[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+452:     while data[pos[0]] != CHR_TERM:
  while (1) {
    __pyx_t_3 = ((__pyx_v_data[(__pyx_v_pos[0])]) != __pyx_e_7rencode_8_rencode_CHR_TERM);
    if (!__pyx_t_3) break;
+453:         key = decode(data, pos)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_decode(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1);
    __pyx_t_1 = 0;
+454:         value = decode(data, pos)
    __pyx_t_1 = __pyx_f_7rencode_8_rencode_decode(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
    __pyx_t_1 = 0;
+455:         d[key] = value
    if (unlikely((PyDict_SetItem(__pyx_v_d, __pyx_v_key, __pyx_v_value) < 0))) __PYX_ERR(0, 455, __pyx_L1_error)
  }
+456:     pos[0] += 1
  __pyx_t_2 = 0;
  (__pyx_v_pos[__pyx_t_2]) = ((__pyx_v_pos[__pyx_t_2]) + 1);
+457:     return d
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_d);
  __pyx_r = __pyx_v_d;
  goto __pyx_L0;
 458: 
+459: cdef check_pos(char *data, unsigned int pos):
static PyObject *__pyx_f_7rencode_8_rencode_check_pos(CYTHON_UNUSED char *__pyx_v_data, unsigned int __pyx_v_pos) {
  PyObject *__pyx_r = 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_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("rencode._rencode.check_pos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+460:     if pos >= data_length:
  __pyx_t_1 = (__pyx_v_pos >= __pyx_v_7rencode_8_rencode_data_length);
  if (unlikely(__pyx_t_1)) {
/* … */
  }
+461:         raise IndexError("Tried to access data[%d] but data len is: %d" % (pos, data_length))
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_IndexError);
    __pyx_t_4 = __pyx_builtin_IndexError; 
    __pyx_t_5 = __Pyx_PyUnicode_From_unsigned_int(__pyx_v_pos, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 461, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyUnicode_From_PY_LONG_LONG(__pyx_v_7rencode_8_rencode_data_length, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 461, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Tried_to_access_data;
    __pyx_t_7[1] = __pyx_t_5;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u_but_data_len_is;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 19 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127);
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 461, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_8};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 461, __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(0, 461, __pyx_L1_error)
 462: 
+463: cdef decode(char *data, unsigned int *pos):
static PyObject *__pyx_f_7rencode_8_rencode_decode(char *__pyx_v_data, unsigned int *__pyx_v_pos) {
  unsigned char __pyx_v_typecode;
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_r = NULL;
/* … */
  /* 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_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("rencode._rencode.decode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+464:     if pos[0] >= data_length:
  __pyx_t_1 = ((__pyx_v_pos[0]) >= __pyx_v_7rencode_8_rencode_data_length);
  if (unlikely(__pyx_t_1)) {
/* … */
  }
+465:         raise IndexError("Malformed rencoded string: data_length: %d pos: %d" % (data_length, pos[0]))
    __pyx_t_3 = NULL;
    __Pyx_INCREF(__pyx_builtin_IndexError);
    __pyx_t_4 = __pyx_builtin_IndexError; 
    __pyx_t_5 = __Pyx_PyUnicode_From_PY_LONG_LONG(__pyx_v_7rencode_8_rencode_data_length, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 465, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyUnicode_From_unsigned_int((__pyx_v_pos[0]), 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 465, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Malformed_rencoded_string_data_l;
    __pyx_t_7[1] = __pyx_t_5;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u_pos;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 40 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127);
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 465, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_8};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 465, __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(0, 465, __pyx_L1_error)
 466: 
+467:     cdef unsigned char typecode = data[pos[0]]
  __pyx_v_typecode = (__pyx_v_data[(__pyx_v_pos[0])]);
+468:     if typecode == CHR_INT1:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_INT1);
  if (__pyx_t_1) {
/* … */
  }
+469:         return decode_char(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_char(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 469, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+470:     elif typecode == CHR_INT2:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_INT2);
  if (__pyx_t_1) {
/* … */
  }
+471:         return decode_short(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_short(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+472:     elif typecode == CHR_INT4:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_INT4);
  if (__pyx_t_1) {
/* … */
  }
+473:         return decode_int(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_int(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+474:     elif typecode == CHR_INT8:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_INT8);
  if (__pyx_t_1) {
/* … */
  }
+475:         return decode_long_long(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_long_long(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+476:     elif INT_POS_FIXED_START <= typecode < INT_POS_FIXED_START + INT_POS_FIXED_COUNT:
  __pyx_t_1 = (__pyx_e_7rencode_8_rencode_INT_POS_FIXED_START <= __pyx_v_typecode);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_typecode < (__pyx_e_7rencode_8_rencode_INT_POS_FIXED_START + __pyx_e_7rencode_8_rencode_INT_POS_FIXED_COUNT));
  }
  if (__pyx_t_1) {
/* … */
  }
+477:         return decode_fixed_pos_int(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_fixed_pos_int(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+478:     elif INT_NEG_FIXED_START <= typecode < INT_NEG_FIXED_START + INT_NEG_FIXED_COUNT:
  __pyx_t_1 = (__pyx_e_7rencode_8_rencode_INT_NEG_FIXED_START <= __pyx_v_typecode);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_typecode < (__pyx_e_7rencode_8_rencode_INT_NEG_FIXED_START + __pyx_e_7rencode_8_rencode_INT_NEG_FIXED_COUNT));
  }
  if (__pyx_t_1) {
/* … */
  }
+479:         return decode_fixed_neg_int(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_fixed_neg_int(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+480:     elif typecode == CHR_INT:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_INT);
  if (__pyx_t_1) {
/* … */
  }
+481:         return decode_big_number(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_big_number(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 481, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+482:     elif typecode == CHR_FLOAT32:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_FLOAT32);
  if (__pyx_t_1) {
/* … */
  }
+483:         return decode_float32(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_float32(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+484:     elif typecode == CHR_FLOAT64:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_FLOAT64);
  if (__pyx_t_1) {
/* … */
  }
+485:         return decode_float64(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_float64(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 485, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+486:     elif STR_FIXED_START <= typecode < STR_FIXED_START + STR_FIXED_COUNT:
  __pyx_t_1 = (__pyx_e_7rencode_8_rencode_STR_FIXED_START <= __pyx_v_typecode);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_typecode < (__pyx_e_7rencode_8_rencode_STR_FIXED_START + __pyx_e_7rencode_8_rencode_STR_FIXED_COUNT));
  }
  if (__pyx_t_1) {
/* … */
  }
+487:         s = decode_fixed_str(data, pos)
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_fixed_str(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 487, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_s = __pyx_t_2;
    __pyx_t_2 = 0;
+488:         if _decode_utf8:
    __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode__decode_utf8)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 488, __pyx_L1_error)
    if (__pyx_t_1) {
/* … */
    }
+489:             s = s.decode("utf8")
      __pyx_t_4 = __pyx_v_s;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_9 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_utf8};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 489, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_2);
      __pyx_t_2 = 0;
+490:         return s
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_s);
    __pyx_r = __pyx_v_s;
    goto __pyx_L0;
+491:     elif 49 <= typecode <= 57:
  __pyx_t_1 = (49 <= __pyx_v_typecode);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_typecode <= 57);
  }
  if (__pyx_t_1) {
/* … */
  }
+492:         s = decode_str(data, pos)
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_str(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_s = __pyx_t_2;
    __pyx_t_2 = 0;
+493:         if _decode_utf8:
    __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_7rencode_8_rencode__decode_utf8)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 493, __pyx_L1_error)
    if (__pyx_t_1) {
/* … */
    }
+494:             s = s.decode("utf8")
      __pyx_t_4 = __pyx_v_s;
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_9 = 0;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_utf8};
        __pyx_t_2 = __Pyx_PyObject_FastCallMethod(__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 494, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_2);
      __pyx_t_2 = 0;
+495:         return s
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_s);
    __pyx_r = __pyx_v_s;
    goto __pyx_L0;
+496:     elif typecode == CHR_NONE:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_NONE);
  if (__pyx_t_1) {
/* … */
  }
+497:         pos[0] += 1
    __pyx_t_10 = 0;
    (__pyx_v_pos[__pyx_t_10]) = ((__pyx_v_pos[__pyx_t_10]) + 1);
+498:         return None
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
+499:     elif typecode == CHR_TRUE:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_TRUE);
  if (__pyx_t_1) {
/* … */
  }
+500:         pos[0] += 1
    __pyx_t_10 = 0;
    (__pyx_v_pos[__pyx_t_10]) = ((__pyx_v_pos[__pyx_t_10]) + 1);
+501:         return True
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;
+502:     elif typecode == CHR_FALSE:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_FALSE);
  if (__pyx_t_1) {
/* … */
  }
+503:         pos[0] += 1
    __pyx_t_10 = 0;
    (__pyx_v_pos[__pyx_t_10]) = ((__pyx_v_pos[__pyx_t_10]) + 1);
+504:         return False
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;
+505:     elif LIST_FIXED_START <= typecode < LIST_FIXED_START + LIST_FIXED_COUNT:
  __pyx_t_1 = (__pyx_e_7rencode_8_rencode_LIST_FIXED_START <= __pyx_v_typecode);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_typecode < (__pyx_e_7rencode_8_rencode_LIST_FIXED_START + __pyx_e_7rencode_8_rencode_LIST_FIXED_COUNT));
  }
  if (__pyx_t_1) {
/* … */
  }
+506:         return decode_fixed_list(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_fixed_list(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 506, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+507:     elif typecode == CHR_LIST:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_LIST);
  if (__pyx_t_1) {
/* … */
  }
+508:         return decode_list(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_list(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+509:     elif DICT_FIXED_START <= typecode < DICT_FIXED_START + DICT_FIXED_COUNT:
  __pyx_t_1 = (__pyx_e_7rencode_8_rencode_DICT_FIXED_START <= __pyx_v_typecode);
  if (__pyx_t_1) {
    __pyx_t_1 = (__pyx_v_typecode < (__pyx_e_7rencode_8_rencode_DICT_FIXED_START + __pyx_e_7rencode_8_rencode_DICT_FIXED_COUNT));
  }
  if (__pyx_t_1) {
/* … */
  }
+510:         return decode_fixed_dict(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_fixed_dict(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
+511:     elif typecode == CHR_DICT:
  __pyx_t_1 = (__pyx_v_typecode == __pyx_e_7rencode_8_rencode_CHR_DICT);
  if (likely(__pyx_t_1)) {
/* … */
  }
+512:         return decode_dict(data, pos)
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode_dict(__pyx_v_data, __pyx_v_pos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 512, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
 513:     else:
+514:         raise ValueError("Invalid typecode: %d at pos: %d" % (typecode, pos[0]))
  /*else*/ {
    __pyx_t_4 = NULL;
    __Pyx_INCREF(__pyx_builtin_ValueError);
    __pyx_t_8 = __pyx_builtin_ValueError; 
    __pyx_t_3 = __Pyx_PyUnicode_From_unsigned_char(__pyx_v_typecode, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyUnicode_From_unsigned_int((__pyx_v_pos[0]), 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_typecode;
    __pyx_t_7[1] = __pyx_t_3;
    __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u_at_pos;
    __pyx_t_7[3] = __pyx_t_6;
    __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, 18 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 9 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127);
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 514, __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(0, 514, __pyx_L1_error)
  }
 515: 
+516: def loads(data, decode_utf8=False):
/* Python wrapper */
static PyObject *__pyx_pw_7rencode_8_rencode_3loads(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7rencode_8_rencode_2loads, "\n    Decodes the string into an object\n\n    :param data: the string to decode\n    :type data: bytes\n    :param decode_utf8: if True, will attempt to decode all str into unicode\n                        objects using utf8\n    :type decode_utf8: bool\n    :return: The decoded object\n    :rtype: object\n    ");
static PyMethodDef __pyx_mdef_7rencode_8_rencode_3loads = {"loads", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7rencode_8_rencode_3loads, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7rencode_8_rencode_2loads};
static PyObject *__pyx_pw_7rencode_8_rencode_3loads(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_data = 0;
  PyObject *__pyx_v_decode_utf8 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("loads (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_data,&__pyx_mstate_global->__pyx_n_u_decode_utf8,0};
  PyObject* values[2] = {0,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 516, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 516, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 516, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "loads", 0) < 0) __PYX_ERR(0, 516, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("loads", 0, 1, 2, i); __PYX_ERR(0, 516, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 516, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 516, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_data = values[0];
    __pyx_v_decode_utf8 = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("loads", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 516, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("rencode._rencode.loads", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7rencode_8_rencode_2loads(__pyx_self, __pyx_v_data, __pyx_v_decode_utf8);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7rencode_8_rencode_2loads(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data, PyObject *__pyx_v_decode_utf8) {
  unsigned int __pyx_v_pos;
  PyObject *__pyx_r = NULL;
/* … */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_7rencode_8_rencode_3loads, 0, __pyx_mstate_global->__pyx_n_u_loads, NULL, __pyx_mstate_global->__pyx_n_u_rencode__rencode, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[1]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_loads, __pyx_t_3) < 0) __PYX_ERR(0, 516, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 517:     """
 518:     Decodes the string into an object
 519: 
 520:     :param data: the string to decode
 521:     :type data: bytes
 522:     :param decode_utf8: if True, will attempt to decode all str into unicode
 523:                         objects using utf8
 524:     :type decode_utf8: bool
 525:     :return: The decoded object
 526:     :rtype: object
 527:     """
+528:     cdef unsigned int pos = 0
  __pyx_v_pos = 0;
 529:     global data_length
+530:     data_length = len(data)
  __pyx_t_1 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 530, __pyx_L1_error)
  __pyx_v_7rencode_8_rencode_data_length = __pyx_t_1;
 531:     global _decode_utf8
+532:     _decode_utf8 = decode_utf8
  __pyx_t_2 = __pyx_v_decode_utf8;
  __Pyx_INCREF(__pyx_t_2);
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7cpython_4bool_bool))))) __PYX_ERR(0, 532, __pyx_L1_error)
  __Pyx_XGOTREF((PyObject *)__pyx_v_7rencode_8_rencode__decode_utf8);
  __Pyx_DECREF_SET(__pyx_v_7rencode_8_rencode__decode_utf8, ((PyLongObject *)__pyx_t_2));
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
+533:     return decode(data, &pos)
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_AsWritableString(__pyx_v_data); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(0, 533, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_7rencode_8_rencode_decode(__pyx_t_3, (&__pyx_v_pos)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;