Generated by Cython 0.13.rc1 on Mon Aug 23 19:47:05 2010

Raw output: depsolve.c

 1: #!/usr/bin/python -t
  /* "/home/david/coding/yum/yum/depsolve.pyx":1
 * #!/usr/bin/python -t             # <<<<<<<<<<<<<<
 * # This program is free software; you can redistribute it and/or modify
 * # it under the terms of the GNU General Public License as published by
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___getTs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_89), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___getTsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_90), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__initActionTs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_91), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__whatProvides); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_92), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s_25); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_93), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__populateTs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_94), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___processReq); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_95), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s_31); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_96), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s_30); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_97), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___processConflict); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_98), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___sort_reqs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_99), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 2: # This program is free software; you can redistribute it and/or modify
 3: # it under the terms of the GNU General Public License as published by
 4: # the Free Software Foundation; either version 2 of the License, or
 5: # (at your option) any later version.
 6: #
 7: # This program is distributed in the hope that it will be useful,
 8: # but WITHOUT ANY WARRANTY; without even the implied warranty of
 9: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 10: # GNU Library General Public License for more details.
 11: #
 12: # You should have received a copy of the GNU General Public License
 13: # along with this program; if not, write to the Free Software
 14: # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 15: # Copyright 2005 Duke University
 16: 
 17: """
 18: Depedancy resolution module for yum.
 19: """
 20: 
 21: import os.path
  /* "/home/david/coding/yum/yum/depsolve.pyx":21
 * """
 * 
 * import os.path             # <<<<<<<<<<<<<<
 * import types
 * import logging
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_80), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__os, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 22: import types
  /* "/home/david/coding/yum/yum/depsolve.pyx":22
 * 
 * import os.path
 * import types             # <<<<<<<<<<<<<<
 * import logging
 * 
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__types), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__types, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 23: import logging
  /* "/home/david/coding/yum/yum/depsolve.pyx":23
 * import os.path
 * import types
 * import logging             # <<<<<<<<<<<<<<
 * 
 * import rpmUtils.transaction
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__logging), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__logging, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 24: 
 25: import rpmUtils.transaction
  /* "/home/david/coding/yum/yum/depsolve.pyx":25
 * import logging
 * 
 * import rpmUtils.transaction             # <<<<<<<<<<<<<<
 * import rpmUtils.miscutils
 * import rpmUtils.arch
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_81), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__rpmUtils, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 26: import rpmUtils.miscutils
  /* "/home/david/coding/yum/yum/depsolve.pyx":26
 * 
 * import rpmUtils.transaction
 * import rpmUtils.miscutils             # <<<<<<<<<<<<<<
 * import rpmUtils.arch
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_82), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__rpmUtils, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 27: import rpmUtils.arch
  /* "/home/david/coding/yum/yum/depsolve.pyx":27
 * import rpmUtils.transaction
 * import rpmUtils.miscutils
 * import rpmUtils.arch             # <<<<<<<<<<<<<<
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
 * import misc
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_83), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__rpmUtils, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 28: from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
  /* "/home/david/coding/yum/yum/depsolve.pyx":28
 * import rpmUtils.miscutils
 * import rpmUtils.arch
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall             # <<<<<<<<<<<<<<
 * import misc
 * from misc import unique, version_tuple_to_string
 */
  __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__archDifference));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__archDifference));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__archDifference));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__isMultiLibArch));
  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__isMultiLibArch));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__isMultiLibArch));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__getBestArch));
  PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_n_s__getBestArch));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__getBestArch));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__canCoinstall));
  PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_n_s__canCoinstall));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__canCoinstall));
  __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s_83), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__archDifference); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__archDifference, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__isMultiLibArch); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__isMultiLibArch, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getBestArch); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__getBestArch, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__canCoinstall); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__canCoinstall, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 29: import misc
  /* "/home/david/coding/yum/yum/depsolve.pyx":29
 * import rpmUtils.arch
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
 * import misc             # <<<<<<<<<<<<<<
 * from misc import unique, version_tuple_to_string
 * import rpm
 */
  __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__misc), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__misc, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 30: from misc import unique, version_tuple_to_string
  /* "/home/david/coding/yum/yum/depsolve.pyx":30
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
 * import misc
 * from misc import unique, version_tuple_to_string             # <<<<<<<<<<<<<<
 * import rpm
 * 
 */
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__unique));
  PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__unique));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__unique));
  __Pyx_INCREF(((PyObject *)__pyx_n_s_32));
  PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_n_s_32));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_32));
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__misc), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__unique); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__unique, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_32); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_32, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 31: import rpm
  /* "/home/david/coding/yum/yum/depsolve.pyx":31
 * import misc
 * from misc import unique, version_tuple_to_string
 * import rpm             # <<<<<<<<<<<<<<
 * 
 * from packageSack import ListPackageSack
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__rpm), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__rpm, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 32: 
 33: from packageSack import ListPackageSack
  /* "/home/david/coding/yum/yum/depsolve.pyx":33
 * import rpm
 * 
 * from packageSack import ListPackageSack             # <<<<<<<<<<<<<<
 * from constants import *
 * import packages
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__ListPackageSack));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__ListPackageSack));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ListPackageSack));
  __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__packageSack), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__ListPackageSack); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ListPackageSack, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 34: from constants import *
  /* "/home/david/coding/yum/yum/depsolve.pyx":34
 * 
 * from packageSack import ListPackageSack
 * from constants import *             # <<<<<<<<<<<<<<
 * import packages
 * import logginglevels
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(((PyObject *)__pyx_n_s_84));
  PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s_84));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_84));
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__constants), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (__pyx_import_star(__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 35: import packages
  /* "/home/david/coding/yum/yum/depsolve.pyx":35
 * from packageSack import ListPackageSack
 * from constants import *
 * import packages             # <<<<<<<<<<<<<<
 * import logginglevels
 * import Errors
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__packages), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__packages, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 36: import logginglevels
  /* "/home/david/coding/yum/yum/depsolve.pyx":36
 * from constants import *
 * import packages
 * import logginglevels             # <<<<<<<<<<<<<<
 * import Errors
 * import warnings
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__logginglevels), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__logginglevels, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 37: import Errors
  /* "/home/david/coding/yum/yum/depsolve.pyx":37
 * import packages
 * import logginglevels
 * import Errors             # <<<<<<<<<<<<<<
 * import warnings
 * warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__Errors), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Errors, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 38: import warnings
  /* "/home/david/coding/yum/yum/depsolve.pyx":38
 * import logginglevels
 * import Errors
 * import warnings             # <<<<<<<<<<<<<<
 * warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
 * from operator import itemgetter
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__warnings, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 39: warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
  /* "/home/david/coding/yum/yum/depsolve.pyx":39
 * import Errors
 * import warnings
 * warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)             # <<<<<<<<<<<<<<
 * from operator import itemgetter
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__warnings); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__simplefilter); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__ignore));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__ignore));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ignore));
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __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;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 40: from operator import itemgetter
  /* "/home/david/coding/yum/yum/depsolve.pyx":40
 * import warnings
 * warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
 * from operator import itemgetter             # <<<<<<<<<<<<<<
 * 
 * from yum import _
 */
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__itemgetter));
  PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__itemgetter));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__itemgetter));
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__operator), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__itemgetter); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__itemgetter, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 41: 
 42: from yum import _
  /* "/home/david/coding/yum/yum/depsolve.pyx":42
 * from operator import itemgetter
 * 
 * from yum import _             # <<<<<<<<<<<<<<
 * 
 * try:
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s___));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s___));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s___));
  __pyx_t_3 = __Pyx_Import(((PyObject *)__pyx_n_s__yum), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 43: 
 44: try:
  /* "/home/david/coding/yum/yum/depsolve.pyx":44
 * from yum import _
 * 
 * try:             # <<<<<<<<<<<<<<
 *     assert max(2, 4) == 4
 * except:
 */
  {
    PyObject *__pyx_save_exc_type, *__pyx_save_exc_value, *__pyx_save_exc_tb;
    __Pyx_ExceptionSave(&__pyx_save_exc_type, &__pyx_save_exc_value, &__pyx_save_exc_tb);
    __Pyx_XGOTREF(__pyx_save_exc_type);
    __Pyx_XGOTREF(__pyx_save_exc_value);
    __Pyx_XGOTREF(__pyx_save_exc_tb);
    /*try:*/ {
 45:     assert max(2, 4) == 4
      /* "/home/david/coding/yum/yum/depsolve.pyx":45
 * 
 * try:
 *     assert max(2, 4) == 4             # <<<<<<<<<<<<<<
 * except:
 *     # Python-2.4.x doesn't have min/max ... *sigh*
 */
      #ifndef PYREX_WITHOUT_ASSERTIONS
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__max); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_int_2);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
      __Pyx_GIVEREF(__pyx_int_2);
      __Pyx_INCREF(__pyx_int_4);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4);
      __Pyx_GIVEREF(__pyx_int_4);
      __pyx_t_2 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_4, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) {
        PyErr_SetNone(PyExc_AssertionError);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      }
      #endif
    }
    __Pyx_XDECREF(__pyx_save_exc_type); __pyx_save_exc_type = 0;
    __Pyx_XDECREF(__pyx_save_exc_value); __pyx_save_exc_value = 0;
    __Pyx_XDECREF(__pyx_save_exc_tb); __pyx_save_exc_tb = 0;
    goto __pyx_L9_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 46: except:
    /* "/home/david/coding/yum/yum/depsolve.pyx":46
 * try:
 *     assert max(2, 4) == 4
 * except:             # <<<<<<<<<<<<<<
 *     # Python-2.4.x doesn't have min/max ... *sigh*
 *         def min(x, *args):
 */
    /*except:*/ {
      __Pyx_AddTraceback("yum.depsolve");
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_3);
 47:     # Python-2.4.x doesn't have min/max ... *sigh*
 48:         def min(x, *args):
/* "/home/david/coding/yum/yum/depsolve.pyx":48
 * except:
 *     # Python-2.4.x doesn't have min/max ... *sigh*
 *         def min(x, *args):             # <<<<<<<<<<<<<<
 *             for y in args:
 *                 if x > y: x = y
 */

static PyObject *__pyx_pf_3yum_8depsolve_min(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pf_3yum_8depsolve_min(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_y;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,0};
  __Pyx_RefNannySetupContext("min");
  __pyx_self = __pyx_self;
  if (PyTuple_GET_SIZE(__pyx_args) > 1) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); __Pyx_GOTREF(__pyx_v_args);
    if (unlikely(!__pyx_v_args)) return NULL;
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[1] = {0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      default:
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
    }
    if (unlikely(kw_args > 0)) {
      const Py_ssize_t used_pos_args = (PyTuple_GET_SIZE(__pyx_args) < 1) ? PyTuple_GET_SIZE(__pyx_args) : 1;
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "min") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_x = values[0];
  } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_x = PyTuple_GET_ITEM(__pyx_args, 0);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("min", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_AddTraceback("yum.depsolve.min");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_x);
  __pyx_v_y = Py_None; __Pyx_INCREF(Py_None);
 49:             for y in args:
  /* "/home/david/coding/yum/yum/depsolve.pyx":49
 *     # Python-2.4.x doesn't have min/max ... *sigh*
 *         def min(x, *args):
 *             for y in args:             # <<<<<<<<<<<<<<
 *                 if x > y: x = y
 *             return x
 */
  if (likely(((PyObject *)__pyx_v_args) != Py_None)) {
    __pyx_t_1 = 0; __pyx_t_2 = ((PyObject *)__pyx_v_args); __Pyx_INCREF(__pyx_t_2);
  } else {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  for (;;) {
    if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++;
    __Pyx_DECREF(__pyx_v_y);
    __pyx_v_y = __pyx_t_3;
    __pyx_t_3 = 0;
 50:                 if x > y: x = y
    /* "/home/david/coding/yum/yum/depsolve.pyx":50
 *         def min(x, *args):
 *             for y in args:
 *                 if x > y: x = y             # <<<<<<<<<<<<<<
 *             return x
 *         def max(x, *args):
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_x, __pyx_v_y, Py_GT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_4) {
      __Pyx_INCREF(__pyx_v_y);
      __Pyx_DECREF(__pyx_v_x);
      __pyx_v_x = __pyx_v_y;
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 51:             return x
  /* "/home/david/coding/yum/yum/depsolve.pyx":51
 *             for y in args:
 *                 if x > y: x = y
 *             return x             # <<<<<<<<<<<<<<
 *         def max(x, *args):
 *             for y in args:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_x);
  __pyx_r = __pyx_v_x;
  goto __pyx_L0;

  __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_AddTraceback("yum.depsolve.min");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_DECREF(__pyx_v_y);
  __Pyx_DECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 52:         def max(x, *args):
/* "/home/david/coding/yum/yum/depsolve.pyx":52
 *                 if x > y: x = y
 *             return x
 *         def max(x, *args):             # <<<<<<<<<<<<<<
 *             for y in args:
 *                 if x < y: x = y
 */

static PyObject *__pyx_pf_3yum_8depsolve_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pf_3yum_8depsolve_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_y;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,0};
  __Pyx_RefNannySetupContext("max");
  __pyx_self = __pyx_self;
  if (PyTuple_GET_SIZE(__pyx_args) > 1) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); __Pyx_GOTREF(__pyx_v_args);
    if (unlikely(!__pyx_v_args)) return NULL;
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[1] = {0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      default:
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
    }
    if (unlikely(kw_args > 0)) {
      const Py_ssize_t used_pos_args = (PyTuple_GET_SIZE(__pyx_args) < 1) ? PyTuple_GET_SIZE(__pyx_args) : 1;
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "max") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_x = values[0];
  } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_x = PyTuple_GET_ITEM(__pyx_args, 0);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("max", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_AddTraceback("yum.depsolve.max");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_x);
  __pyx_v_y = Py_None; __Pyx_INCREF(Py_None);

      /* "/home/david/coding/yum/yum/depsolve.pyx":52
 *                 if x > y: x = y
 *             return x
 *         def max(x, *args):             # <<<<<<<<<<<<<<
 *             for y in args:
 *                 if x < y: x = y
 */
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L3_exception_handled;
    }
    __pyx_L4_except_error:;
    __Pyx_XGIVEREF(__pyx_save_exc_type);
    __Pyx_XGIVEREF(__pyx_save_exc_value);
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_save_exc_type);
    __Pyx_XGIVEREF(__pyx_save_exc_value);
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
    __pyx_L9_try_end:;
  }
 53:             for y in args:
  /* "/home/david/coding/yum/yum/depsolve.pyx":53
 *             return x
 *         def max(x, *args):
 *             for y in args:             # <<<<<<<<<<<<<<
 *                 if x < y: x = y
 *             return x
 */
  if (likely(((PyObject *)__pyx_v_args) != Py_None)) {
    __pyx_t_1 = 0; __pyx_t_2 = ((PyObject *)__pyx_v_args); __Pyx_INCREF(__pyx_t_2);
  } else {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  for (;;) {
    if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++;
    __Pyx_DECREF(__pyx_v_y);
    __pyx_v_y = __pyx_t_3;
    __pyx_t_3 = 0;
 54:                 if x < y: x = y
    /* "/home/david/coding/yum/yum/depsolve.pyx":54
 *         def max(x, *args):
 *             for y in args:
 *                 if x < y: x = y             # <<<<<<<<<<<<<<
 *             return x
 * flags = {"GT": rpm.RPMSENSE_GREATER,
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_x, __pyx_v_y, Py_LT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_4) {
      __Pyx_INCREF(__pyx_v_y);
      __Pyx_DECREF(__pyx_v_x);
      __pyx_v_x = __pyx_v_y;
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 55:             return x
  /* "/home/david/coding/yum/yum/depsolve.pyx":55
 *             for y in args:
 *                 if x < y: x = y
 *             return x             # <<<<<<<<<<<<<<
 * flags = {"GT": rpm.RPMSENSE_GREATER,
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_x);
  __pyx_r = __pyx_v_x;
  goto __pyx_L0;

  __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_AddTraceback("yum.depsolve.max");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_DECREF(__pyx_v_y);
  __Pyx_DECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 56: flags = {"GT": rpm.RPMSENSE_GREATER,
  /* "/home/david/coding/yum/yum/depsolve.pyx":56
 *                 if x < y: x = y
 *             return x
 * flags = {"GT": rpm.RPMSENSE_GREATER,             # <<<<<<<<<<<<<<
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
 *          "LT": rpm.RPMSENSE_LESS,
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__RPMSENSE_GREATER); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__GT), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 57:          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
  /* "/home/david/coding/yum/yum/depsolve.pyx":57
 *             return x
 * flags = {"GT": rpm.RPMSENSE_GREATER,
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,             # <<<<<<<<<<<<<<
 *          "LT": rpm.RPMSENSE_LESS,
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__RPMSENSE_EQUAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__RPMSENSE_GREATER); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Or(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__GE), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 58:          "LT": rpm.RPMSENSE_LESS,
  /* "/home/david/coding/yum/yum/depsolve.pyx":58
 * flags = {"GT": rpm.RPMSENSE_GREATER,
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
 *          "LT": rpm.RPMSENSE_LESS,             # <<<<<<<<<<<<<<
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
 *          "EQ": rpm.RPMSENSE_EQUAL,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__RPMSENSE_LESS); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__LT), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 59:          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
  /* "/home/david/coding/yum/yum/depsolve.pyx":59
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
 *          "LT": rpm.RPMSENSE_LESS,
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,             # <<<<<<<<<<<<<<
 *          "EQ": rpm.RPMSENSE_EQUAL,
 *          None: 0 }
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__RPMSENSE_LESS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__RPMSENSE_EQUAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Or(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__LE), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 60:          "EQ": rpm.RPMSENSE_EQUAL,
  /* "/home/david/coding/yum/yum/depsolve.pyx":60
 *          "LT": rpm.RPMSENSE_LESS,
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
 *          "EQ": rpm.RPMSENSE_EQUAL,             # <<<<<<<<<<<<<<
 *          None: 0 }
 * 
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__RPMSENSE_EQUAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__EQ), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 61:          None: 0 }
  /* "/home/david/coding/yum/yum/depsolve.pyx":61
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
 *          "EQ": rpm.RPMSENSE_EQUAL,
 *          None: 0 }             # <<<<<<<<<<<<<<
 * 
 * class Depsolve(object):
 */
  if (PyDict_SetItem(__pyx_t_3, Py_None, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__flags, ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 62: 
 63: class Depsolve(object):
  /* "/home/david/coding/yum/yum/depsolve.pyx":63
 *          None: 0 }
 * 
 * class Depsolve(object):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  if (PyDict_SetItemString(((PyObject *)__pyx_t_3), "__doc__", ((PyObject *)__pyx_kp_s_85)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_CreateClass(__pyx_t_2, ((PyObject *)__pyx_t_3), __pyx_n_s__Depsolve, "yum.depsolve"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 64: 
 65:     """
 66:     Dependency resolving class.
 67:     """
 68: 
 69:     def __init__(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":69
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         packages.base = self
 *         self._ts = None
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve___init__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve___init__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve___init__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":69
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         packages.base = self
 *         self._ts = None
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve___init__, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 70:         packages.base = self
  /* "/home/david/coding/yum/yum/depsolve.pyx":70
 * 
 *     def __init__(self):
 *         packages.base = self             # <<<<<<<<<<<<<<
 *         self._ts = None
 *         self._tsInfo = None
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__packages); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_t_1, __pyx_n_s__base, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 71:         self._ts = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":71
 *     def __init__(self):
 *         packages.base = self
 *         self._ts = None             # <<<<<<<<<<<<<<
 *         self._tsInfo = None
 *         self.dsCallback = None
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___ts, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 72:         self._tsInfo = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":72
 *         packages.base = self
 *         self._ts = None
 *         self._tsInfo = None             # <<<<<<<<<<<<<<
 *         self.dsCallback = None
 *         self.logger = logging.getLogger("yum.Depsolve")
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___tsInfo, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 73:         self.dsCallback = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":73
 *         self._ts = None
 *         self._tsInfo = None
 *         self.dsCallback = None             # <<<<<<<<<<<<<<
 *         self.logger = logging.getLogger("yum.Depsolve")
 *         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__dsCallback, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 74:         self.logger = logging.getLogger("yum.Depsolve")
  /* "/home/david/coding/yum/yum/depsolve.pyx":74
 *         self._tsInfo = None
 *         self.dsCallback = None
 *         self.logger = logging.getLogger("yum.Depsolve")             # <<<<<<<<<<<<<<
 *         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logging); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_1));
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __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;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__logger, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 75:         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
  /* "/home/david/coding/yum/yum/depsolve.pyx":75
 *         self.dsCallback = None
 *         self.logger = logging.getLogger("yum.Depsolve")
 *         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")             # <<<<<<<<<<<<<<
 * 
 *         self.path = []
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logging); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_2));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_2));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_2));
  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__verbose_logger, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 76: 
 77:         self.path = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":77
 *         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
 * 
 *         self.path = []             # <<<<<<<<<<<<<<
 *         self.loops = []
 * 
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__path, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 78:         self.loops = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":78
 * 
 *         self.path = []
 *         self.loops = []             # <<<<<<<<<<<<<<
 * 
 *         self.installedFileRequires = None
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__loops, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 79: 
 80:         self.installedFileRequires = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":80
 *         self.loops = []
 * 
 *         self.installedFileRequires = None             # <<<<<<<<<<<<<<
 *         self.installedUnresolvedFileRequires = None
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s_3, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 81:         self.installedUnresolvedFileRequires = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":81
 * 
 *         self.installedFileRequires = None
 *         self.installedUnresolvedFileRequires = None             # <<<<<<<<<<<<<<
 * 
 *     def doTsSetup(self):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s_4, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __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("yum.depsolve.Depsolve.__init__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 82: 
 83:     def doTsSetup(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":83
 *         self.installedUnresolvedFileRequires = None
 * 
 *     def doTsSetup(self):             # <<<<<<<<<<<<<<
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_doTsSetup(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_doTsSetup = {__Pyx_NAMESTR("doTsSetup"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_doTsSetup, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_doTsSetup(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("doTsSetup");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":83
 *         self.installedUnresolvedFileRequires = None
 * 
 *     def doTsSetup(self):             # <<<<<<<<<<<<<<
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_doTsSetup, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__doTsSetup, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 84:         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
  /* "/home/david/coding/yum/yum/depsolve.pyx":84
 * 
 *     def doTsSetup(self):
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),             # <<<<<<<<<<<<<<
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 *         return self._getTs()
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__warnings); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__warn); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_5));
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/david/coding/yum/yum/depsolve.pyx":84
 * 
 *     def doTsSetup(self):
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),             # <<<<<<<<<<<<<<
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 *         return self._getTs()
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__stacklevel), __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 85:                 Errors.YumFutureDeprecationWarning, stacklevel=2)
  /* "/home/david/coding/yum/yum/depsolve.pyx":85
 *     def doTsSetup(self):
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)             # <<<<<<<<<<<<<<
 *         return self._getTs()
 * 
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_4 = 0;
  __pyx_t_1 = 0;
 86:         return self._getTs()
  /* "/home/david/coding/yum/yum/depsolve.pyx":86
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 *         return self._getTs()             # <<<<<<<<<<<<<<
 * 
 *     def _getTs(self, remove_only=False):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___getTs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.doTsSetup");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 87: 
 88:     def _getTs(self, remove_only=False):
/* "/home/david/coding/yum/yum/depsolve.pyx":88
 *         return self._getTs()
 * 
 *     def _getTs(self, remove_only=False):             # <<<<<<<<<<<<<<
 *         """setup all the transaction set storage items we'll need
 *            This can't happen in __init__ b/c we don't know our installroot
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getTs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__getTs[] = "setup all the transaction set storage items we'll need\n           This can't happen in __init__ b/c we don't know our installroot\n           yet";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__getTs = {__Pyx_NAMESTR("_getTs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__getTs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__getTs)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getTs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_remove_only = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__remove_only,0};
  __Pyx_RefNannySetupContext("_getTs");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    values[1] = __pyx_k_7;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__remove_only);
        if (value) { values[1] = value; kw_args--; }
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_getTs") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_remove_only = values[1];
  } else {
    __pyx_v_remove_only = __pyx_k_7;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: __pyx_v_remove_only = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
      break;
      default: goto __pyx_L5_argtuple_error;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_getTs", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getTs");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":88
 *         return self._getTs()
 * 
 *     def _getTs(self, remove_only=False):             # <<<<<<<<<<<<<<
 *         """setup all the transaction set storage items we'll need
 *            This can't happen in __init__ b/c we don't know our installroot
 */
  __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_k_7 = __pyx_t_2;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__getTs, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___getTs, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 89:         """setup all the transaction set storage items we'll need
 90:            This can't happen in __init__ b/c we don't know our installroot
 91:            yet"""
 92: 
 93:         if self._tsInfo != None and self._ts != None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":93
 *            yet"""
 * 
 *         if self._tsInfo != None and self._ts != None:             # <<<<<<<<<<<<<<
 *             if not remove_only and self._tsInfo.pkgSack is None:
 *                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, Py_None, Py_NE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, Py_None, Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __pyx_t_4;
  } else {
    __pyx_t_5 = __pyx_t_3;
  }
  if (__pyx_t_5) {
 94:             if not remove_only and self._tsInfo.pkgSack is None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":94
 * 
 *         if self._tsInfo != None and self._ts != None:
 *             if not remove_only and self._tsInfo.pkgSack is None:             # <<<<<<<<<<<<<<
 *                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
 *             return
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_remove_only); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (!__pyx_t_5);
    if (__pyx_t_3) {
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = (__pyx_t_2 == Py_None);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __pyx_t_5;
    } else {
      __pyx_t_4 = __pyx_t_3;
    }
    if (__pyx_t_4) {
 95:                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
      /* "/home/david/coding/yum/yum/depsolve.pyx":95
 *         if self._tsInfo != None and self._ts != None:
 *             if not remove_only and self._tsInfo.pkgSack is None:
 *                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)             # <<<<<<<<<<<<<<
 *             return
 * 
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__setDatabases); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_2 = 0;
      __pyx_t_6 = 0;
      __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;
 96:             return
    /* "/home/david/coding/yum/yum/depsolve.pyx":96
 *             if not remove_only and self._tsInfo.pkgSack is None:
 *                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
 *             return             # <<<<<<<<<<<<<<
 * 
 *         if not self.conf.installroot:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 97: 
 98:         if not self.conf.installroot:
  /* "/home/david/coding/yum/yum/depsolve.pyx":98
 *             return
 * 
 *         if not self.conf.installroot:             # <<<<<<<<<<<<<<
 *             raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')
 * 
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__installroot); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_3 = (!__pyx_t_4);
  if (__pyx_t_3) {
 99:             raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')
    /* "/home/david/coding/yum/yum/depsolve.pyx":99
 * 
 *         if not self.conf.installroot:
 *             raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')             # <<<<<<<<<<<<<<
 * 
 *         self._getTsInfo(remove_only)
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__YumBaseError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_8));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_8));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_8));
    __pyx_t_2 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, __pyx_t_2, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L8;
  }
  __pyx_L8:;
 100: 
 101:         self._getTsInfo(remove_only)
  /* "/home/david/coding/yum/yum/depsolve.pyx":101
 *             raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')
 * 
 *         self._getTsInfo(remove_only)             # <<<<<<<<<<<<<<
 *         self.initActionTs()
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___getTsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_remove_only);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_remove_only);
  __Pyx_GIVEREF(__pyx_v_remove_only);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 102:         self.initActionTs()
  /* "/home/david/coding/yum/yum/depsolve.pyx":102
 * 
 *         self._getTsInfo(remove_only)
 *         self.initActionTs()             # <<<<<<<<<<<<<<
 * 
 *     def _getTsInfo(self, remove_only=False):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__initActionTs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  __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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getTs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 103: 
 104:     def _getTsInfo(self, remove_only=False):
/* "/home/david/coding/yum/yum/depsolve.pyx":104
 *         self.initActionTs()
 * 
 *     def _getTsInfo(self, remove_only=False):             # <<<<<<<<<<<<<<
 *         """ remove_only param. says if we are going to do _only_ remove(s) in
 *             the transaction. If so we don't need to setup the remote repos. """
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getTsInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__getTsInfo[] = " remove_only param. says if we are going to do _only_ remove(s) in\n            the transaction. If so we don't need to setup the remote repos. ";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__getTsInfo = {__Pyx_NAMESTR("_getTsInfo"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__getTsInfo, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__getTsInfo)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getTsInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_remove_only = 0;
  PyObject *__pyx_v_pkgSack;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__remove_only,0};
  __Pyx_RefNannySetupContext("_getTsInfo");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    values[1] = __pyx_k_9;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__remove_only);
        if (value) { values[1] = value; kw_args--; }
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_getTsInfo") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_remove_only = values[1];
  } else {
    __pyx_v_remove_only = __pyx_k_9;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: __pyx_v_remove_only = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
      break;
      default: goto __pyx_L5_argtuple_error;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_getTsInfo", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getTsInfo");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_pkgSack = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":104
 *         self.initActionTs()
 * 
 *     def _getTsInfo(self, remove_only=False):             # <<<<<<<<<<<<<<
 *         """ remove_only param. says if we are going to do _only_ remove(s) in
 *             the transaction. If so we don't need to setup the remote repos. """
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k_9 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__getTsInfo, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___getTsInfo, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 105:         """ remove_only param. says if we are going to do _only_ remove(s) in
 106:             the transaction. If so we don't need to setup the remote repos. """
 107:         if self._tsInfo is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":107
 *         """ remove_only param. says if we are going to do _only_ remove(s) in
 *             the transaction. If so we don't need to setup the remote repos. """
 *         if self._tsInfo is None:             # <<<<<<<<<<<<<<
 *             self._tsInfo = self._transactionDataFactory()
 *             if remove_only:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
 108:             self._tsInfo = self._transactionDataFactory()
    /* "/home/david/coding/yum/yum/depsolve.pyx":108
 *             the transaction. If so we don't need to setup the remote repos. """
 *         if self._tsInfo is None:
 *             self._tsInfo = self._transactionDataFactory()             # <<<<<<<<<<<<<<
 *             if remove_only:
 *                 pkgSack = None
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_10); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___tsInfo, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 109:             if remove_only:
    /* "/home/david/coding/yum/yum/depsolve.pyx":109
 *         if self._tsInfo is None:
 *             self._tsInfo = self._transactionDataFactory()
 *             if remove_only:             # <<<<<<<<<<<<<<
 *                 pkgSack = None
 *             else:
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_remove_only); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
 110:                 pkgSack = None
      /* "/home/david/coding/yum/yum/depsolve.pyx":110
 *             self._tsInfo = self._transactionDataFactory()
 *             if remove_only:
 *                 pkgSack = None             # <<<<<<<<<<<<<<
 *             else:
 *                 pkgSack = self.pkgSack
 */
      __Pyx_INCREF(Py_None);
      __Pyx_DECREF(__pyx_v_pkgSack);
      __pyx_v_pkgSack = Py_None;
      goto __pyx_L7;
    }
    /*else*/ {
 111:             else:
 112:                 pkgSack = self.pkgSack
      /* "/home/david/coding/yum/yum/depsolve.pyx":112
 *                 pkgSack = None
 *             else:
 *                 pkgSack = self.pkgSack             # <<<<<<<<<<<<<<
 *             self._tsInfo.setDatabases(self.rpmdb, pkgSack)
 *             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_v_pkgSack);
      __pyx_v_pkgSack = __pyx_t_3;
      __pyx_t_3 = 0;
    }
    __pyx_L7:;
 113:             self._tsInfo.setDatabases(self.rpmdb, pkgSack)
    /* "/home/david/coding/yum/yum/depsolve.pyx":113
 *             else:
 *                 pkgSack = self.pkgSack
 *             self._tsInfo.setDatabases(self.rpmdb, pkgSack)             # <<<<<<<<<<<<<<
 *             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
 *             # this REALLY sucks, sadly (needed for group conditionals)
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__setDatabases); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pkgSack);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_pkgSack);
    __Pyx_GIVEREF(__pyx_v_pkgSack);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 114:             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
    /* "/home/david/coding/yum/yum/depsolve.pyx":114
 *                 pkgSack = self.pkgSack
 *             self._tsInfo.setDatabases(self.rpmdb, pkgSack)
 *             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks             # <<<<<<<<<<<<<<
 *             # this REALLY sucks, sadly (needed for group conditionals)
 *             self._tsInfo.install_method = self.install
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__installonlypkgs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyObject_SetAttr(__pyx_t_3, __pyx_n_s__installonlypkgs, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 115:             # this REALLY sucks, sadly (needed for group conditionals)
 116:             self._tsInfo.install_method = self.install
    /* "/home/david/coding/yum/yum/depsolve.pyx":116
 *             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
 *             # this REALLY sucks, sadly (needed for group conditionals)
 *             self._tsInfo.install_method = self.install             # <<<<<<<<<<<<<<
 *             self._tsInfo.update_method = self.update
 *             self._tsInfo.remove_method = self.remove
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__install); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyObject_SetAttr(__pyx_t_4, __pyx_n_s__install_method, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 117:             self._tsInfo.update_method = self.update
    /* "/home/david/coding/yum/yum/depsolve.pyx":117
 *             # this REALLY sucks, sadly (needed for group conditionals)
 *             self._tsInfo.install_method = self.install
 *             self._tsInfo.update_method = self.update             # <<<<<<<<<<<<<<
 *             self._tsInfo.remove_method = self.remove
 *         return self._tsInfo
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyObject_SetAttr(__pyx_t_3, __pyx_n_s__update_method, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 118:             self._tsInfo.remove_method = self.remove
    /* "/home/david/coding/yum/yum/depsolve.pyx":118
 *             self._tsInfo.install_method = self.install
 *             self._tsInfo.update_method = self.update
 *             self._tsInfo.remove_method = self.remove             # <<<<<<<<<<<<<<
 *         return self._tsInfo
 * 
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__remove); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyObject_SetAttr(__pyx_t_4, __pyx_n_s__remove_method, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 119:         return self._tsInfo
  /* "/home/david/coding/yum/yum/depsolve.pyx":119
 *             self._tsInfo.update_method = self.update
 *             self._tsInfo.remove_method = self.remove
 *         return self._tsInfo             # <<<<<<<<<<<<<<
 * 
 *     def _setTsInfo(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getTsInfo");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_pkgSack);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 120: 
 121:     def _setTsInfo(self, value):
/* "/home/david/coding/yum/yum/depsolve.pyx":121
 *         return self._tsInfo
 * 
 *     def _setTsInfo(self, value):             # <<<<<<<<<<<<<<
 *         self._tsInfo = value
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__setTsInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__setTsInfo = {__Pyx_NAMESTR("_setTsInfo"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__setTsInfo, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__setTsInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__value,0};
  __Pyx_RefNannySetupContext("_setTsInfo");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_setTsInfo", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_setTsInfo") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_value = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_value = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_setTsInfo", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._setTsInfo");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":121
 *         return self._tsInfo
 * 
 *     def _setTsInfo(self, value):             # <<<<<<<<<<<<<<
 *         self._tsInfo = value
 * 
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__setTsInfo, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___setTsInfo, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 122:         self._tsInfo = value
  /* "/home/david/coding/yum/yum/depsolve.pyx":122
 * 
 *     def _setTsInfo(self, value):
 *         self._tsInfo = value             # <<<<<<<<<<<<<<
 * 
 *     def _delTsInfo(self):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___tsInfo, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._setTsInfo");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 123: 
 124:     def _delTsInfo(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":124
 *         self._tsInfo = value
 * 
 *     def _delTsInfo(self):             # <<<<<<<<<<<<<<
 *         self._tsInfo = None
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__delTsInfo(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__delTsInfo = {__Pyx_NAMESTR("_delTsInfo"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__delTsInfo, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__delTsInfo(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("_delTsInfo");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":124
 *         self._tsInfo = value
 * 
 *     def _delTsInfo(self):             # <<<<<<<<<<<<<<
 *         self._tsInfo = None
 * 
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__delTsInfo, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___delTsInfo, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 125:         self._tsInfo = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":125
 * 
 *     def _delTsInfo(self):
 *         self._tsInfo = None             # <<<<<<<<<<<<<<
 * 
 *     def _getActionTs(self):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___tsInfo, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._delTsInfo");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 126: 
 127:     def _getActionTs(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":127
 *         self._tsInfo = None
 * 
 *     def _getActionTs(self):             # <<<<<<<<<<<<<<
 *         if not self._ts:
 *             self.initActionTs()
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getActionTs(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__getActionTs = {__Pyx_NAMESTR("_getActionTs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__getActionTs, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getActionTs(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("_getActionTs");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":127
 *         self._tsInfo = None
 * 
 *     def _getActionTs(self):             # <<<<<<<<<<<<<<
 *         if not self._ts:
 *             self.initActionTs()
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__getActionTs, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___getActionTs, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 128:         if not self._ts:
  /* "/home/david/coding/yum/yum/depsolve.pyx":128
 * 
 *     def _getActionTs(self):
 *         if not self._ts:             # <<<<<<<<<<<<<<
 *             self.initActionTs()
 *         return self._ts
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
 129:             self.initActionTs()
    /* "/home/david/coding/yum/yum/depsolve.pyx":129
 *     def _getActionTs(self):
 *         if not self._ts:
 *             self.initActionTs()             # <<<<<<<<<<<<<<
 *         return self._ts
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__initActionTs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;
 130:         return self._ts
  /* "/home/david/coding/yum/yum/depsolve.pyx":130
 *         if not self._ts:
 *             self.initActionTs()
 *         return self._ts             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getActionTs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 131: 
 132: 
 133:     def initActionTs(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":133
 * 
 * 
 *     def initActionTs(self):             # <<<<<<<<<<<<<<
 *         """sets up the ts we'll use for all the work"""
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_initActionTs(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve_initActionTs[] = "sets up the ts we'll use for all the work";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_initActionTs = {__Pyx_NAMESTR("initActionTs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_initActionTs, METH_O, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve_initActionTs)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_initActionTs(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_ts_flags_to_rpm;
  PyObject *__pyx_v_flag;
  PyObject *__pyx_v_probfilter;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("initActionTs");
  __pyx_self = __pyx_self;
  __pyx_v_ts_flags_to_rpm = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_flag = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_probfilter = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":133
 * 
 * 
 *     def initActionTs(self):             # <<<<<<<<<<<<<<
 *         """sets up the ts we'll use for all the work"""
 * 
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_initActionTs, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__initActionTs, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 134:         """sets up the ts we'll use for all the work"""
 135: 
 136:         self._ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
  /* "/home/david/coding/yum/yum/depsolve.pyx":136
 *         """sets up the ts we'll use for all the work"""
 * 
 *         self._ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)             # <<<<<<<<<<<<<<
 *         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__transaction); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__TransactionWrapper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__installroot); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___ts, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 137:         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,
  /* "/home/david/coding/yum/yum/depsolve.pyx":137
 * 
 *         self._ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
 *         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,             # <<<<<<<<<<<<<<
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__noscripts), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 138:                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
  /* "/home/david/coding/yum/yum/depsolve.pyx":138
 *         self._ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
 *         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,             # <<<<<<<<<<<<<<
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
 *                             'test': rpm.RPMTRANS_FLAG_TEST,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_12); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__notriggers), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 139:                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
  /* "/home/david/coding/yum/yum/depsolve.pyx":139
 *         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,             # <<<<<<<<<<<<<<
 *                             'test': rpm.RPMTRANS_FLAG_TEST,
 *                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s_13); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__nodocs), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 140:                             'test': rpm.RPMTRANS_FLAG_TEST,
  /* "/home/david/coding/yum/yum/depsolve.pyx":140
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
 *                             'test': rpm.RPMTRANS_FLAG_TEST,             # <<<<<<<<<<<<<<
 *                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
 *                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__RPMTRANS_FLAG_TEST); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__test), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 141:                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
  /* "/home/david/coding/yum/yum/depsolve.pyx":141
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
 *                             'test': rpm.RPMTRANS_FLAG_TEST,
 *                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,             # <<<<<<<<<<<<<<
 *                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
 * 
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s_14); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__justdb), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 142:                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
  /* "/home/david/coding/yum/yum/depsolve.pyx":142
 *                             'test': rpm.RPMTRANS_FLAG_TEST,
 *                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
 *                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}             # <<<<<<<<<<<<<<
 * 
 *         self._ts.setFlags(0) # reset everything.
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_15); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__repackage), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_v_ts_flags_to_rpm));
  __pyx_v_ts_flags_to_rpm = __pyx_t_3;
  __pyx_t_3 = 0;
 143: 
 144:         self._ts.setFlags(0) # reset everything.
  /* "/home/david/coding/yum/yum/depsolve.pyx":144
 *                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
 * 
 *         self._ts.setFlags(0) # reset everything.             # <<<<<<<<<<<<<<
 * 
 *         for flag in self.conf.tsflags:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__setFlags); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __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_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 145: 
 146:         for flag in self.conf.tsflags:
  /* "/home/david/coding/yum/yum/depsolve.pyx":146
 *         self._ts.setFlags(0) # reset everything.
 * 
 *         for flag in self.conf.tsflags:             # <<<<<<<<<<<<<<
 *             if ts_flags_to_rpm.has_key(flag):
 *                 self._ts.addTsFlag(ts_flags_to_rpm[flag])
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__tsflags); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = 0; __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_1))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_1);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_flag);
    __pyx_v_flag = __pyx_t_3;
    __pyx_t_3 = 0;
 147:             if ts_flags_to_rpm.has_key(flag):
    /* "/home/david/coding/yum/yum/depsolve.pyx":147
 * 
 *         for flag in self.conf.tsflags:
 *             if ts_flags_to_rpm.has_key(flag):             # <<<<<<<<<<<<<<
 *                 self._ts.addTsFlag(ts_flags_to_rpm[flag])
 *             else:
 */
    __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_ts_flags_to_rpm), __pyx_n_s__has_key); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_flag);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_flag);
    __Pyx_GIVEREF(__pyx_v_flag);
    __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_6) {
 148:                 self._ts.addTsFlag(ts_flags_to_rpm[flag])
      /* "/home/david/coding/yum/yum/depsolve.pyx":148
 *         for flag in self.conf.tsflags:
 *             if ts_flags_to_rpm.has_key(flag):
 *                 self._ts.addTsFlag(ts_flags_to_rpm[flag])             # <<<<<<<<<<<<<<
 *             else:
 *                 self.logger.critical(_('Invalid tsflag in config file: %s'), flag)
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__addTsFlag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_ts_flags_to_rpm), __pyx_v_flag); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L7;
    }
    /*else*/ {
 149:             else:
 150:                 self.logger.critical(_('Invalid tsflag in config file: %s'), flag)
      /* "/home/david/coding/yum/yum/depsolve.pyx":150
 *                 self._ts.addTsFlag(ts_flags_to_rpm[flag])
 *             else:
 *                 self.logger.critical(_('Invalid tsflag in config file: %s'), flag)             # <<<<<<<<<<<<<<
 * 
 *         probfilter = 0
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__logger); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__critical); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_16));
      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_16));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_16));
      __pyx_t_7 = PyObject_Call(__pyx_t_5, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_flag);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_flag);
      __Pyx_GIVEREF(__pyx_v_flag);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_L7:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 151: 
 152:         probfilter = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":152
 *                 self.logger.critical(_('Invalid tsflag in config file: %s'), flag)
 * 
 *         probfilter = 0             # <<<<<<<<<<<<<<
 *         for flag in self.tsInfo.probFilterFlags:
 *             probfilter |= flag
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_probfilter);
  __pyx_v_probfilter = __pyx_int_0;
 153:         for flag in self.tsInfo.probFilterFlags:
  /* "/home/david/coding/yum/yum/depsolve.pyx":153
 * 
 *         probfilter = 0
 *         for flag in self.tsInfo.probFilterFlags:             # <<<<<<<<<<<<<<
 *             probfilter |= flag
 *         self._ts.setProbFilter(probfilter)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__probFilterFlags); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_7) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_4 = 0; __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_1))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++;
    } else {
      __pyx_t_7 = PyIter_Next(__pyx_t_1);
      if (!__pyx_t_7) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_DECREF(__pyx_v_flag);
    __pyx_v_flag = __pyx_t_7;
    __pyx_t_7 = 0;
 154:             probfilter |= flag
    /* "/home/david/coding/yum/yum/depsolve.pyx":154
 *         probfilter = 0
 *         for flag in self.tsInfo.probFilterFlags:
 *             probfilter |= flag             # <<<<<<<<<<<<<<
 *         self._ts.setProbFilter(probfilter)
 * 
 */
    __pyx_t_7 = PyNumber_InPlaceOr(__pyx_v_probfilter, __pyx_v_flag); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_v_probfilter);
    __pyx_v_probfilter = __pyx_t_7;
    __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 155:         self._ts.setProbFilter(probfilter)
  /* "/home/david/coding/yum/yum/depsolve.pyx":155
 *         for flag in self.tsInfo.probFilterFlags:
 *             probfilter |= flag
 *         self._ts.setProbFilter(probfilter)             # <<<<<<<<<<<<<<
 * 
 *     def whatProvides(self, name, flags, version):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__setProbFilter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_probfilter);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_probfilter);
  __Pyx_GIVEREF(__pyx_v_probfilter);
  __pyx_t_2 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.initActionTs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_ts_flags_to_rpm);
  __Pyx_DECREF(__pyx_v_flag);
  __Pyx_DECREF(__pyx_v_probfilter);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 156: 
 157:     def whatProvides(self, name, flags, version):
/* "/home/david/coding/yum/yum/depsolve.pyx":157
 *         self._ts.setProbFilter(probfilter)
 * 
 *     def whatProvides(self, name, flags, version):             # <<<<<<<<<<<<<<
 *         """searches the packageSacks for what provides the arguments
 *            returns a ListPackageSack of providing packages, possibly empty"""
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_whatProvides(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve_whatProvides[] = "searches the packageSacks for what provides the arguments\n           returns a ListPackageSack of providing packages, possibly empty";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_whatProvides = {__Pyx_NAMESTR("whatProvides"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_whatProvides, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve_whatProvides)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_whatProvides(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_flags = 0;
  PyObject *__pyx_v_version = 0;
  PyObject *__pyx_v_pkgs;
  PyObject *__pyx_v_r_e;
  PyObject *__pyx_v_r_v;
  PyObject *__pyx_v_r_r;
  PyObject *__pyx_v_defSack;
  PyObject *__pyx_v_po;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__flags,&__pyx_n_s__version,0};
  __Pyx_RefNannySetupContext("whatProvides");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("whatProvides", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__flags);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("whatProvides", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__version);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("whatProvides", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "whatProvides") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_flags = values[2];
    __pyx_v_version = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_flags = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_version = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("whatProvides", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve.whatProvides");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_flags);
  __pyx_v_pkgs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_e = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_defSack = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":157
 *         self._ts.setProbFilter(probfilter)
 * 
 *     def whatProvides(self, name, flags, version):             # <<<<<<<<<<<<<<
 *         """searches the packageSacks for what provides the arguments
 *            returns a ListPackageSack of providing packages, possibly empty"""
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_whatProvides, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__whatProvides, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 158:         """searches the packageSacks for what provides the arguments
 159:            returns a ListPackageSack of providing packages, possibly empty"""
 160: 
 161:         self.verbose_logger.log(logginglevels.DEBUG_1, _('Searching pkgSack for dep: %s'),
  /* "/home/david/coding/yum/yum/depsolve.pyx":161
 *            returns a ListPackageSack of providing packages, possibly empty"""
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('Searching pkgSack for dep: %s'),             # <<<<<<<<<<<<<<
 *             name)
 *         # we need to check the name - if it doesn't match:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_17));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_17));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_17));
  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 162:             name)
  /* "/home/david/coding/yum/yum/depsolve.pyx":162
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('Searching pkgSack for dep: %s'),
 *             name)             # <<<<<<<<<<<<<<
 *         # we need to check the name - if it doesn't match:
 *         # /etc/[inserted by cython to avoid comment start]* bin/[inserted by cython to avoid comment start]* or /usr/lib/sendmail then we should fetch the
 */
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __pyx_t_3 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 163:         # we need to check the name - if it doesn't match:
 164:         # /etc/* bin/* or /usr/lib/sendmail then we should fetch the
 165:         # filelists.xml for all repos to make the searchProvides more complete.
 166:         if name[0] == '/':
  /* "/home/david/coding/yum/yum/depsolve.pyx":166
 *         # /etc/[inserted by cython to avoid comment start]* bin/[inserted by cython to avoid comment start]* or /usr/lib/sendmail then we should fetch the
 *         # filelists.xml for all repos to make the searchProvides more complete.
 *         if name[0] == '/':             # <<<<<<<<<<<<<<
 *             if not misc.re_primary_filename(name):
 *                 self.doSackFilelistPopulate()
 */
  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_name, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_kp_s_18), Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_6) {
 167:             if not misc.re_primary_filename(name):
    /* "/home/david/coding/yum/yum/depsolve.pyx":167
 *         # filelists.xml for all repos to make the searchProvides more complete.
 *         if name[0] == '/':
 *             if not misc.re_primary_filename(name):             # <<<<<<<<<<<<<<
 *                 self.doSackFilelistPopulate()
 * 
 */
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__misc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__re_primary_filename); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __pyx_t_2 = PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = (!__pyx_t_6);
    if (__pyx_t_7) {
 168:                 self.doSackFilelistPopulate()
      /* "/home/david/coding/yum/yum/depsolve.pyx":168
 *         if name[0] == '/':
 *             if not misc.re_primary_filename(name):
 *                 self.doSackFilelistPopulate()             # <<<<<<<<<<<<<<
 * 
 *         pkgs = self.pkgSack.searchProvides(name)
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_19); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;
    goto __pyx_L6;
  }
  __pyx_L6:;
 169: 
 170:         pkgs = self.pkgSack.searchProvides(name)
  /* "/home/david/coding/yum/yum/depsolve.pyx":170
 *                 self.doSackFilelistPopulate()
 * 
 *         pkgs = self.pkgSack.searchProvides(name)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__searchProvides); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_v_pkgs);
  __pyx_v_pkgs = __pyx_t_5;
  __pyx_t_5 = 0;
 171: 
 172: 
 173:         if flags == 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":173
 * 
 * 
 *         if flags == 0:             # <<<<<<<<<<<<<<
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 */
  __pyx_t_5 = PyObject_RichCompare(__pyx_v_flags, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_7) {
 174:             flags = None
    /* "/home/david/coding/yum/yum/depsolve.pyx":174
 * 
 *         if flags == 0:
 *             flags = None             # <<<<<<<<<<<<<<
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 */
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = Py_None;
    goto __pyx_L8;
  }
  __pyx_L8:;
 175:         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
  /* "/home/david/coding/yum/yum/depsolve.pyx":175
 *         if flags == 0:
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):             # <<<<<<<<<<<<<<
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_version)));
  __pyx_t_5 = ((PyObject *)Py_TYPE(__pyx_v_version));
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__StringType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = __pyx_t_7;
  if (!__pyx_t_6) {
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__NoneType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __pyx_t_7;
    __pyx_t_7 = __pyx_t_8;
  } else {
    __pyx_t_7 = __pyx_t_6;
  }
  if (!__pyx_t_7) {
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__UnicodeType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __pyx_t_6;
    __pyx_t_6 = __pyx_t_8;
  } else {
    __pyx_t_6 = __pyx_t_7;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = __pyx_t_6;
  if (__pyx_t_7) {
 176:             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
    /* "/home/david/coding/yum/yum/depsolve.pyx":176
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)             # <<<<<<<<<<<<<<
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 *             (r_e, r_v, r_r) = version
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__stringToVersion); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_version);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_version);
    __Pyx_GIVEREF(__pyx_v_version);
    __pyx_t_2 = PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyTuple_CheckExact(__pyx_t_2) && likely(PyTuple_GET_SIZE(__pyx_t_2) == 3)) {
      PyObject* tuple = __pyx_t_2;
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
      __pyx_t_5 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_5;
      __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_3;
      __pyx_t_3 = 0;
    } else {
      __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_1, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_1, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_EndUnpack(__pyx_t_1, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_5;
      __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_3;
      __pyx_t_3 = 0;
    }
    goto __pyx_L9;
  }
 177:         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
  /* "/home/david/coding/yum/yum/depsolve.pyx":177
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?             # <<<<<<<<<<<<<<
 *             (r_e, r_v, r_r) = version
 * 
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_version)));
  __pyx_t_2 = ((PyObject *)Py_TYPE(__pyx_v_version));
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__TupleType); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_2), __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __pyx_t_7;
  if (!__pyx_t_6) {
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__ListType); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_2), __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = __pyx_t_7;
    __pyx_t_7 = __pyx_t_8;
  } else {
    __pyx_t_7 = __pyx_t_6;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __pyx_t_7;
  if (__pyx_t_6) {
 178:             (r_e, r_v, r_r) = version
    /* "/home/david/coding/yum/yum/depsolve.pyx":178
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 *             (r_e, r_v, r_r) = version             # <<<<<<<<<<<<<<
 * 
 *         defSack = ListPackageSack() # holder for items definitely providing this dep
 */
    if (PyTuple_CheckExact(__pyx_v_version) && likely(PyTuple_GET_SIZE(__pyx_v_version) == 3)) {
      PyObject* tuple = __pyx_v_version;
      __pyx_t_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_5;
      __pyx_t_5 = 0;
    } else {
      __pyx_t_4 = PyObject_GetIter(__pyx_v_version); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_5;
      __pyx_t_5 = 0;
    }
    goto __pyx_L9;
  }
  __pyx_L9:;
 179: 
 180:         defSack = ListPackageSack() # holder for items definitely providing this dep
  /* "/home/david/coding/yum/yum/depsolve.pyx":180
 *             (r_e, r_v, r_r) = version
 * 
 *         defSack = ListPackageSack() # holder for items definitely providing this dep             # <<<<<<<<<<<<<<
 * 
 *         for po in pkgs:
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__ListPackageSack); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_v_defSack);
  __pyx_v_defSack = __pyx_t_3;
  __pyx_t_3 = 0;
 181: 
 182:         for po in pkgs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":182
 *         defSack = ListPackageSack() # holder for items definitely providing this dep
 * 
 *         for po in pkgs:             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential match for %s from %s'), name, po)
 */
  if (PyList_CheckExact(__pyx_v_pkgs) || PyTuple_CheckExact(__pyx_v_pkgs)) {
    __pyx_t_9 = 0; __pyx_t_3 = __pyx_v_pkgs; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_pkgs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++;
    } else {
      __pyx_t_5 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_5) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF(__pyx_v_po);
    __pyx_v_po = __pyx_t_5;
    __pyx_t_5 = 0;
 183:             self.verbose_logger.log(logginglevels.DEBUG_2,
    /* "/home/david/coding/yum/yum/depsolve.pyx":183
 * 
 *         for po in pkgs:
 *             self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                 _('Potential match for %s from %s'), name, po)
 *             if name[0] == '/' and r_v is None:
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 184:                 _('Potential match for %s from %s'), name, po)
    /* "/home/david/coding/yum/yum/depsolve.pyx":184
 *         for po in pkgs:
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential match for %s from %s'), name, po)             # <<<<<<<<<<<<<<
 *             if name[0] == '/' and r_v is None:
 *                 # file dep add all matches to the defSack
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_20));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_20));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_20));
    __pyx_t_10 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __Pyx_INCREF(__pyx_v_po);
    PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_po);
    __Pyx_GIVEREF(__pyx_v_po);
    __pyx_t_4 = 0;
    __pyx_t_10 = 0;
    __pyx_t_10 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 185:             if name[0] == '/' and r_v is None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":185
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential match for %s from %s'), name, po)
 *             if name[0] == '/' and r_v is None:             # <<<<<<<<<<<<<<
 *                 # file dep add all matches to the defSack
 *                 defSack.addPackage(po)
 */
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_name, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_10, ((PyObject *)__pyx_kp_s_18), Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {
      __pyx_t_7 = (__pyx_v_r_v == Py_None);
      __pyx_t_8 = __pyx_t_7;
    } else {
      __pyx_t_8 = __pyx_t_6;
    }
    if (__pyx_t_8) {
 186:                 # file dep add all matches to the defSack
 187:                 defSack.addPackage(po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":187
 *             if name[0] == '/' and r_v is None:
 *                 # file dep add all matches to the defSack
 *                 defSack.addPackage(po)             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_defSack, __pyx_n_s__addPackage); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 188:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":188
 *                 # file dep add all matches to the defSack
 *                 defSack.addPackage(po)
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 */
      goto __pyx_L10_continue;
      goto __pyx_L12;
    }
    __pyx_L12:;
 189: 
 190:             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
    /* "/home/david/coding/yum/yum/depsolve.pyx":190
 *                 continue
 * 
 *             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):             # <<<<<<<<<<<<<<
 *                 defSack.addPackage(po)
 *                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__checkPrco); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_r_e);
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_r_e);
    __Pyx_GIVEREF(__pyx_v_r_e);
    __Pyx_INCREF(__pyx_v_r_v);
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_r_v);
    __Pyx_GIVEREF(__pyx_v_r_v);
    __Pyx_INCREF(__pyx_v_r_r);
    PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_r_r);
    __Pyx_GIVEREF(__pyx_v_r_r);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __Pyx_INCREF(__pyx_v_flags);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_flags);
    __Pyx_GIVEREF(__pyx_v_flags);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_10);
    __pyx_t_10 = 0;
    __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(((PyObject *)__pyx_n_s__provides));
    PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_n_s__provides));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__provides));
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {
 191:                 defSack.addPackage(po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":191
 * 
 *             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *                 defSack.addPackage(po)             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
 * 
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_defSack, __pyx_n_s__addPackage); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 192:                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
      /* "/home/david/coding/yum/yum/depsolve.pyx":192
 *             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *                 defSack.addPackage(po)
 *                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)             # <<<<<<<<<<<<<<
 * 
 *         return defSack
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__debug); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_21));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_21));
      __pyx_t_4 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L13;
    }
    __pyx_L13:;
    __pyx_L10_continue:;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 193: 
 194:         return defSack
  /* "/home/david/coding/yum/yum/depsolve.pyx":194
 *                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
 * 
 *         return defSack             # <<<<<<<<<<<<<<
 * 
 *     def allowedMultipleInstalls(self, po):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_defSack);
  __pyx_r = __pyx_v_defSack;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.whatProvides");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_pkgs);
  __Pyx_DECREF(__pyx_v_r_e);
  __Pyx_DECREF(__pyx_v_r_v);
  __Pyx_DECREF(__pyx_v_r_r);
  __Pyx_DECREF(__pyx_v_defSack);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_flags);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 195: 
 196:     def allowedMultipleInstalls(self, po):
/* "/home/david/coding/yum/yum/depsolve.pyx":196
 *         return defSack
 * 
 *     def allowedMultipleInstalls(self, po):             # <<<<<<<<<<<<<<
 *         """takes a packageObject, returns 1 or 0 depending on if the package
 *            should/can be installed multiple times with different vers
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_allowedMultipleInstalls(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve_allowedMultipleInstalls[] = "takes a packageObject, returns 1 or 0 depending on if the package \n           should/can be installed multiple times with different vers\n           like kernels and kernel modules, for example";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_allowedMultipleInstalls = {__Pyx_NAMESTR("allowedMultipleInstalls"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_allowedMultipleInstalls, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve_allowedMultipleInstalls)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_allowedMultipleInstalls(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls *__pyx_cur_scope;
  PyObject *__pyx_v_po = 0;
  PyObject *__pyx_v_provides;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__po,0};
  __Pyx_RefNannySetupContext("allowedMultipleInstalls");
  __pyx_cur_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls *)__pyx_ptype_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls->tp_new(__pyx_ptype_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_cur_scope);
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__po);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("allowedMultipleInstalls", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "allowedMultipleInstalls") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_cur_scope->__pyx_v_self = values[0];
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_po = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_cur_scope->__pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_po = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("allowedMultipleInstalls", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve.allowedMultipleInstalls");
  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_self = 0;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_provides = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":196
 *         return defSack
 * 
 *     def allowedMultipleInstalls(self, po):             # <<<<<<<<<<<<<<
 *         """takes a packageObject, returns 1 or 0 depending on if the package
 *            should/can be installed multiple times with different vers
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_allowedMultipleInstalls, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s_25, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

/* "/home/david/coding/yum/yum/depsolve.pyx":196
 *         return defSack
 * 
 *     def allowedMultipleInstalls(self, po):             # <<<<<<<<<<<<<<
 *         """takes a packageObject, returns 1 or 0 depending on if the package
 *            should/can be installed multiple times with different vers
 */

struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls {
  PyObject_HEAD
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_provides;
  PyObject *__pyx_v_self;
};
 197:         """takes a packageObject, returns 1 or 0 depending on if the package
 198:            should/can be installed multiple times with different vers
 199:            like kernels and kernel modules, for example"""
 200: 
 201:         if po.name in self.conf.installonlypkgs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":201
 *            like kernels and kernel modules, for example"""
 * 
 *         if po.name in self.conf.installonlypkgs:             # <<<<<<<<<<<<<<
 *             return True
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__installonlypkgs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = ((PySequence_Contains(__pyx_t_3, __pyx_t_1))); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
 202:             return True
    /* "/home/david/coding/yum/yum/depsolve.pyx":202
 * 
 *         if po.name in self.conf.installonlypkgs:
 *             return True             # <<<<<<<<<<<<<<
 * 
 *         provides = po.provides_names
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 203: 
 204:         provides = po.provides_names
  /* "/home/david/coding/yum/yum/depsolve.pyx":204
 *             return True
 * 
 *         provides = po.provides_names             # <<<<<<<<<<<<<<
 *         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):
 *             return True
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__provides_names); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_v_provides);
  __pyx_v_provides = __pyx_t_3;
  __pyx_t_3 = 0;
 205:         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):
/* "/home/david/coding/yum/yum/depsolve.pyx":205
 * 
 *         provides = po.provides_names
 *         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):             # <<<<<<<<<<<<<<
 *             return True
 * 
 */

static PyObject *__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1(PyObject *__pyx_self, PyObject *__pyx_v_prov); /*proto*/
static PyMethodDef __pyx_lambda_methdef3yum_8depsolve_23allowedMultipleInstalls_lambda1 = {__Pyx_NAMESTR("__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1"), (PyCFunction)__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1(PyObject *__pyx_self, PyObject *__pyx_v_prov) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls *)__pyx_self;
  __pyx_self = __pyx_self;
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_outer_scope->__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__installonlypkgs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((PySequence_Contains(__pyx_t_2, __pyx_v_prov))); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __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_AddTraceback("yum.depsolve.allowedMultipleInstalls.lambda1");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

  /* "/home/david/coding/yum/yum/depsolve.pyx":205
 * 
 *         provides = po.provides_names
 *         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):             # <<<<<<<<<<<<<<
 *             return True
 * 
 */
  __pyx_t_3 = __pyx_binding_PyCFunctionType_New(&__pyx_lambda_methdef3yum_8depsolve_23allowedMultipleInstalls_lambda1, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_provides);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_provides);
  __Pyx_GIVEREF(__pyx_v_provides);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_builtin_filter, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
 206:             return True
    /* "/home/david/coding/yum/yum/depsolve.pyx":206
 *         provides = po.provides_names
 *         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):
 *             return True             # <<<<<<<<<<<<<<
 * 
 *         return False
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;
 207: 
 208:         return False
  /* "/home/david/coding/yum/yum/depsolve.pyx":208
 *             return True
 * 
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def populateTs(self, test=0, keepold=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __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("yum.depsolve.Depsolve.allowedMultipleInstalls");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_provides);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 209: 
 210:     def populateTs(self, test=0, keepold=1):
/* "/home/david/coding/yum/yum/depsolve.pyx":210
 *         return False
 * 
 *     def populateTs(self, test=0, keepold=1):             # <<<<<<<<<<<<<<
 *         """take transactionData class and populate transaction set"""
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_populateTs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve_populateTs[] = "take transactionData class and populate transaction set";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_populateTs = {__Pyx_NAMESTR("populateTs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_populateTs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve_populateTs)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_populateTs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_test = 0;
  PyObject *__pyx_v_keepold = 0;
  PyObject *__pyx_v_ts_elem;
  PyObject *__pyx_v_te;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_pkginfo;
  PyObject *__pyx_v_mode;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_rpmfile;
  PyObject *__pyx_v_hdr;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__test,&__pyx_n_s__keepold,0};
  __Pyx_RefNannySetupContext("populateTs");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)__pyx_int_1);
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__test);
        if (value) { values[1] = value; kw_args--; }
      }
      case  2:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keepold);
        if (value) { values[2] = value; kw_args--; }
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "populateTs") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_test = values[1];
    __pyx_v_keepold = values[2];
  } else {
    __pyx_v_test = ((PyObject *)__pyx_int_0);
    __pyx_v_keepold = ((PyObject *)__pyx_int_1);
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: __pyx_v_keepold = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: __pyx_v_test = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
      break;
      default: goto __pyx_L5_argtuple_error;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("populateTs", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve.populateTs");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_ts_elem = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_te = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_epoch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkginfo = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_mode = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rpmfile = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_hdr = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":210
 *         return False
 * 
 *     def populateTs(self, test=0, keepold=1):             # <<<<<<<<<<<<<<
 *         """take transactionData class and populate transaction set"""
 * 
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_populateTs, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__populateTs, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 211:         """take transactionData class and populate transaction set"""
 212: 
 213:         if self.dsCallback: self.dsCallback.transactionPopulation()
  /* "/home/david/coding/yum/yum/depsolve.pyx":213
 *         """take transactionData class and populate transaction set"""
 * 
 *         if self.dsCallback: self.dsCallback.transactionPopulation()             # <<<<<<<<<<<<<<
 *         ts_elem = {}
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_22); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 214:         ts_elem = {}
  /* "/home/david/coding/yum/yum/depsolve.pyx":214
 * 
 *         if self.dsCallback: self.dsCallback.transactionPopulation()
 *         ts_elem = {}             # <<<<<<<<<<<<<<
 * 
 *         if self.ts.ts is None:
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_v_ts_elem));
  __pyx_v_ts_elem = __pyx_t_1;
  __pyx_t_1 = 0;
 215: 
 216:         if self.ts.ts is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":216
 *         ts_elem = {}
 * 
 *         if self.ts.ts is None:             # <<<<<<<<<<<<<<
 *             self.initActionTs()
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ts); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = (__pyx_t_3 == Py_None);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {
 217:             self.initActionTs()
    /* "/home/david/coding/yum/yum/depsolve.pyx":217
 * 
 *         if self.ts.ts is None:
 *             self.initActionTs()             # <<<<<<<<<<<<<<
 * 
 *         if keepold:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__initActionTs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;
 218: 
 219:         if keepold:
  /* "/home/david/coding/yum/yum/depsolve.pyx":219
 *             self.initActionTs()
 * 
 *         if keepold:             # <<<<<<<<<<<<<<
 *             for te in self.ts:
 *                 epoch = te.E()
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_keepold); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {
 220:             for te in self.ts:
    /* "/home/david/coding/yum/yum/depsolve.pyx":220
 * 
 *         if keepold:
 *             for te in self.ts:             # <<<<<<<<<<<<<<
 *                 epoch = te.E()
 *                 if epoch is None:
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_4 = 0; __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);
    } else {
      __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
      } else {
        __pyx_t_1 = PyIter_Next(__pyx_t_3);
        if (!__pyx_t_1) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_v_te);
      __pyx_v_te = __pyx_t_1;
      __pyx_t_1 = 0;
 221:                 epoch = te.E()
      /* "/home/david/coding/yum/yum/depsolve.pyx":221
 *         if keepold:
 *             for te in self.ts:
 *                 epoch = te.E()             # <<<<<<<<<<<<<<
 *                 if epoch is None:
 *                     epoch = '0'
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__E); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_epoch);
      __pyx_v_epoch = __pyx_t_5;
      __pyx_t_5 = 0;
 222:                 if epoch is None:
      /* "/home/david/coding/yum/yum/depsolve.pyx":222
 *             for te in self.ts:
 *                 epoch = te.E()
 *                 if epoch is None:             # <<<<<<<<<<<<<<
 *                     epoch = '0'
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
 */
      __pyx_t_2 = (__pyx_v_epoch == Py_None);
      if (__pyx_t_2) {
 223:                     epoch = '0'
        /* "/home/david/coding/yum/yum/depsolve.pyx":223
 *                 epoch = te.E()
 *                 if epoch is None:
 *                     epoch = '0'             # <<<<<<<<<<<<<<
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
 *                 if te.Type() == 1:
 */
        __Pyx_INCREF(((PyObject *)__pyx_kp_s__0));
        __Pyx_DECREF(__pyx_v_epoch);
        __pyx_v_epoch = ((PyObject *)__pyx_kp_s__0);
        goto __pyx_L11;
      }
      __pyx_L11:;
 224:                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
      /* "/home/david/coding/yum/yum/depsolve.pyx":224
 *                 if epoch is None:
 *                     epoch = '0'
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())             # <<<<<<<<<<<<<<
 *                 if te.Type() == 1:
 *                     mode = 'i'
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__N); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__A); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__V); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__R); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_epoch);
      PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_epoch);
      __Pyx_GIVEREF(__pyx_v_epoch);
      PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_1 = 0;
      __pyx_t_6 = 0;
      __pyx_t_7 = 0;
      __pyx_t_8 = 0;
      if (!(likely(PyTuple_CheckExact(__pyx_t_5))||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(((PyObject *)__pyx_v_pkginfo));
      __pyx_v_pkginfo = ((PyObject *)__pyx_t_5);
      __pyx_t_5 = 0;
 225:                 if te.Type() == 1:
      /* "/home/david/coding/yum/yum/depsolve.pyx":225
 *                     epoch = '0'
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
 *                 if te.Type() == 1:             # <<<<<<<<<<<<<<
 *                     mode = 'i'
 *                 elif te.Type() == 2:
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__Type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_8, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_2) {
 226:                     mode = 'i'
        /* "/home/david/coding/yum/yum/depsolve.pyx":226
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
 *                 if te.Type() == 1:
 *                     mode = 'i'             # <<<<<<<<<<<<<<
 *                 elif te.Type() == 2:
 *                     mode = 'e'
 */
        __Pyx_INCREF(((PyObject *)__pyx_n_s__i));
        __Pyx_DECREF(__pyx_v_mode);
        __pyx_v_mode = ((PyObject *)__pyx_n_s__i);
        goto __pyx_L12;
      }
 227:                 elif te.Type() == 2:
      /* "/home/david/coding/yum/yum/depsolve.pyx":227
 *                 if te.Type() == 1:
 *                     mode = 'i'
 *                 elif te.Type() == 2:             # <<<<<<<<<<<<<<
 *                     mode = 'e'
 * 
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__Type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_8, __pyx_int_2, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_2) {
 228:                     mode = 'e'
        /* "/home/david/coding/yum/yum/depsolve.pyx":228
 *                     mode = 'i'
 *                 elif te.Type() == 2:
 *                     mode = 'e'             # <<<<<<<<<<<<<<
 * 
 *                 ts_elem[(pkginfo, mode)] = 1
 */
        __Pyx_INCREF(((PyObject *)__pyx_n_s__e));
        __Pyx_DECREF(__pyx_v_mode);
        __pyx_v_mode = ((PyObject *)__pyx_n_s__e);
        goto __pyx_L12;
      }
      __pyx_L12:;
 229: 
 230:                 ts_elem[(pkginfo, mode)] = 1
      /* "/home/david/coding/yum/yum/depsolve.pyx":230
 *                     mode = 'e'
 * 
 *                 ts_elem[(pkginfo, mode)] = 1             # <<<<<<<<<<<<<<
 * 
 *         for txmbr in self.tsInfo.getMembers():
 */
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(((PyObject *)__pyx_v_pkginfo));
      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_pkginfo));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_pkginfo));
      __Pyx_INCREF(__pyx_v_mode);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_mode);
      __Pyx_GIVEREF(__pyx_v_mode);
      if (PyDict_SetItem(((PyObject *)__pyx_v_ts_elem), __pyx_t_5, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8;
  }
  __pyx_L8:;
 231: 
 232:         for txmbr in self.tsInfo.getMembers():
  /* "/home/david/coding/yum/yum/depsolve.pyx":232
 *                 ts_elem[(pkginfo, mode)] = 1
 * 
 *         for txmbr in self.tsInfo.getMembers():             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)
 *             if txmbr.ts_state in ['u', 'i']:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getMembers); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = 0; __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5);
  } else {
    __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_5))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_5))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_5);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_3;
    __pyx_t_3 = 0;
 233:             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)
    /* "/home/david/coding/yum/yum/depsolve.pyx":233
 * 
 *         for txmbr in self.tsInfo.getMembers():
 *             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)             # <<<<<<<<<<<<<<
 *             if txmbr.ts_state in ['u', 'i']:
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__log); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DEBUG_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_23));
    PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_s_23));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_23));
    __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_txmbr);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_txmbr);
    __Pyx_GIVEREF(__pyx_v_txmbr);
    __pyx_t_7 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 234:             if txmbr.ts_state in ['u', 'i']:
    /* "/home/david/coding/yum/yum/depsolve.pyx":234
 *         for txmbr in self.tsInfo.getMembers():
 *             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)
 *             if txmbr.ts_state in ['u', 'i']:             # <<<<<<<<<<<<<<
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
 *                     continue
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = __pyx_t_2;
    if (!__pyx_t_9) {
      __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__i), Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_10 = __pyx_t_2;
      __pyx_t_2 = __pyx_t_10;
    } else {
      __pyx_t_2 = __pyx_t_9;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_9 = __pyx_t_2;
    if (__pyx_t_9) {
 235:                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
      /* "/home/david/coding/yum/yum/depsolve.pyx":235
 *             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)
 *             if txmbr.ts_state in ['u', 'i']:
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):             # <<<<<<<<<<<<<<
 *                     continue
 *                 rpmfile = txmbr.po.localPkg()
 */
      __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_ts_elem), __pyx_n_s__has_key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_INCREF(((PyObject *)__pyx_n_s__i));
      PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_n_s__i));
      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i));
      __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_9) {
 236:                     continue
        /* "/home/david/coding/yum/yum/depsolve.pyx":236
 *             if txmbr.ts_state in ['u', 'i']:
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
 *                     continue             # <<<<<<<<<<<<<<
 *                 rpmfile = txmbr.po.localPkg()
 *                 if os.path.exists(rpmfile):
 */
        goto __pyx_L13_continue;
        goto __pyx_L16;
      }
      __pyx_L16:;
 237:                 rpmfile = txmbr.po.localPkg()
      /* "/home/david/coding/yum/yum/depsolve.pyx":237
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
 *                     continue
 *                 rpmfile = txmbr.po.localPkg()             # <<<<<<<<<<<<<<
 *                 if os.path.exists(rpmfile):
 *                     hdr = txmbr.po.returnHeaderFromPackage()
 */
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__localPkg); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_v_rpmfile);
      __pyx_v_rpmfile = __pyx_t_8;
      __pyx_t_8 = 0;
 238:                 if os.path.exists(rpmfile):
      /* "/home/david/coding/yum/yum/depsolve.pyx":238
 *                     continue
 *                 rpmfile = txmbr.po.localPkg()
 *                 if os.path.exists(rpmfile):             # <<<<<<<<<<<<<<
 *                     hdr = txmbr.po.returnHeaderFromPackage()
 *                 else:
 */
      __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__path); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__exists); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_rpmfile);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_rpmfile);
      __Pyx_GIVEREF(__pyx_v_rpmfile);
      __pyx_t_1 = PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_9) {
 239:                     hdr = txmbr.po.returnHeaderFromPackage()
        /* "/home/david/coding/yum/yum/depsolve.pyx":239
 *                 rpmfile = txmbr.po.localPkg()
 *                 if os.path.exists(rpmfile):
 *                     hdr = txmbr.po.returnHeaderFromPackage()             # <<<<<<<<<<<<<<
 *                 else:
 *                     self.downloadHeader(txmbr.po)
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_24); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_hdr);
        __pyx_v_hdr = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L17;
      }
      /*else*/ {
 240:                 else:
 241:                     self.downloadHeader(txmbr.po)
        /* "/home/david/coding/yum/yum/depsolve.pyx":241
 *                     hdr = txmbr.po.returnHeaderFromPackage()
 *                 else:
 *                     self.downloadHeader(txmbr.po)             # <<<<<<<<<<<<<<
 *                     hdr = txmbr.po.returnLocalHeader()
 * 
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__downloadHeader); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 242:                     hdr = txmbr.po.returnLocalHeader()
        /* "/home/david/coding/yum/yum/depsolve.pyx":242
 *                 else:
 *                     self.downloadHeader(txmbr.po)
 *                     hdr = txmbr.po.returnLocalHeader()             # <<<<<<<<<<<<<<
 * 
 *                 if txmbr.ts_state == 'u':
 */
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__returnLocalHeader); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_v_hdr);
        __pyx_v_hdr = __pyx_t_6;
        __pyx_t_6 = 0;
      }
      __pyx_L17:;
 243: 
 244:                 if txmbr.ts_state == 'u':
      /* "/home/david/coding/yum/yum/depsolve.pyx":244
 *                     hdr = txmbr.po.returnLocalHeader()
 * 
 *                 if txmbr.ts_state == 'u':             # <<<<<<<<<<<<<<
 *                     if self.allowedMultipleInstalls(txmbr.po):
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,
 */
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_9) {
 245:                     if self.allowedMultipleInstalls(txmbr.po):
        /* "/home/david/coding/yum/yum/depsolve.pyx":245
 * 
 *                 if txmbr.ts_state == 'u':
 *                     if self.allowedMultipleInstalls(txmbr.po):             # <<<<<<<<<<<<<<
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,
 *                             _('%s converted to install'), txmbr.po)
 */
        __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_25); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__pyx_t_9) {
 246:                         self.verbose_logger.log(logginglevels.DEBUG_2,
          /* "/home/david/coding/yum/yum/depsolve.pyx":246
 *                 if txmbr.ts_state == 'u':
 *                     if self.allowedMultipleInstalls(txmbr.po):
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                             _('%s converted to install'), txmbr.po)
 *                         txmbr.ts_state = 'i'
 */
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_8 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 247:                             _('%s converted to install'), txmbr.po)
          /* "/home/david/coding/yum/yum/depsolve.pyx":247
 *                     if self.allowedMultipleInstalls(txmbr.po):
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,
 *                             _('%s converted to install'), txmbr.po)             # <<<<<<<<<<<<<<
 *                         txmbr.ts_state = 'i'
 *                         txmbr.output_state = TS_INSTALL
 */
          __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_INCREF(((PyObject *)__pyx_kp_s_26));
          PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_26));
          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_26));
          __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_7);
          __pyx_t_8 = 0;
          __pyx_t_3 = 0;
          __pyx_t_7 = 0;
          __pyx_t_7 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 248:                         txmbr.ts_state = 'i'
          /* "/home/david/coding/yum/yum/depsolve.pyx":248
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,
 *                             _('%s converted to install'), txmbr.po)
 *                         txmbr.ts_state = 'i'             # <<<<<<<<<<<<<<
 *                         txmbr.output_state = TS_INSTALL
 * 
 */
          if (PyObject_SetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state, ((PyObject *)__pyx_n_s__i)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 249:                         txmbr.output_state = TS_INSTALL
          /* "/home/david/coding/yum/yum/depsolve.pyx":249
 *                             _('%s converted to install'), txmbr.po)
 *                         txmbr.ts_state = 'i'
 *                         txmbr.output_state = TS_INSTALL             # <<<<<<<<<<<<<<
 * 
 * 
 */
          __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_INSTALL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          if (PyObject_SetAttr(__pyx_v_txmbr, __pyx_n_s__output_state, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          goto __pyx_L19;
        }
        __pyx_L19:;
        goto __pyx_L18;
      }
      __pyx_L18:;
 250: 
 251: 
 252:                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)
      /* "/home/david/coding/yum/yum/depsolve.pyx":252
 * 
 * 
 *                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ts); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__addInstall); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_hdr);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_hdr);
      __Pyx_GIVEREF(__pyx_v_hdr);
      __Pyx_INCREF(__pyx_v_rpmfile);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_rpmfile);
      __Pyx_GIVEREF(__pyx_v_rpmfile);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_hdr);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_hdr);
      __Pyx_GIVEREF(__pyx_v_hdr);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_7 = 0;
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 253:                 self.verbose_logger.log(logginglevels.DEBUG_1,
      /* "/home/david/coding/yum/yum/depsolve.pyx":253
 * 
 *                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,             # <<<<<<<<<<<<<<
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
 *                 if self.dsCallback:
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 254:                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
      /* "/home/david/coding/yum/yum/depsolve.pyx":254
 *                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)             # <<<<<<<<<<<<<<
 *                 if self.dsCallback:
 *                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_27));
      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_27));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_27));
      __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_6 = 0;
      __pyx_t_8 = 0;
      __pyx_t_7 = 0;
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 255:                 if self.dsCallback:
      /* "/home/david/coding/yum/yum/depsolve.pyx":255
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
 *                 if self.dsCallback:             # <<<<<<<<<<<<<<
 *                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 * 
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_9) {
 256:                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
        /* "/home/david/coding/yum/yum/depsolve.pyx":256
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
 *                 if self.dsCallback:
 *                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)             # <<<<<<<<<<<<<<
 * 
 *             elif txmbr.ts_state in ['e']:
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__pkgAdded); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __pyx_t_1 = 0;
        __pyx_t_3 = 0;
        __pyx_t_3 = PyObject_Call(__pyx_t_11, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L20;
      }
      __pyx_L20:;
      goto __pyx_L15;
    }
 257: 
 258:             elif txmbr.ts_state in ['e']:
    /* "/home/david/coding/yum/yum/depsolve.pyx":258
 *                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 * 
 *             elif txmbr.ts_state in ['e']:             # <<<<<<<<<<<<<<
 *                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):
 *                     continue
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_n_s__e), Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = __pyx_t_9;
    if (__pyx_t_2) {
 259:                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):
      /* "/home/david/coding/yum/yum/depsolve.pyx":259
 * 
 *             elif txmbr.ts_state in ['e']:
 *                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):             # <<<<<<<<<<<<<<
 *                     continue
 *                 self.ts.addErase(txmbr.po.idx)
 */
      __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_ts_elem), __pyx_n_s__has_key); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_11 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_11);
      __pyx_t_7 = 0;
      __pyx_t_11 = 0;
      __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_2) {
 260:                     continue
        /* "/home/david/coding/yum/yum/depsolve.pyx":260
 *             elif txmbr.ts_state in ['e']:
 *                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):
 *                     continue             # <<<<<<<<<<<<<<
 *                 self.ts.addErase(txmbr.po.idx)
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
 */
        goto __pyx_L13_continue;
        goto __pyx_L21;
      }
      __pyx_L21:;
 261:                 self.ts.addErase(txmbr.po.idx)
      /* "/home/david/coding/yum/yum/depsolve.pyx":261
 *                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):
 *                     continue
 *                 self.ts.addErase(txmbr.po.idx)             # <<<<<<<<<<<<<<
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__addErase); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__idx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_Call(__pyx_t_11, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 262:                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
      /* "/home/david/coding/yum/yum/depsolve.pyx":262
 *                     continue
 *                 self.ts.addErase(txmbr.po.idx)
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Removing Package %s'), txmbr.po)
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_2) {
        __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__pkgAdded); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __Pyx_INCREF(((PyObject *)__pyx_n_s__e));
        PyTuple_SET_ITEM(__pyx_t_11, 1, ((PyObject *)__pyx_n_s__e));
        __Pyx_GIVEREF(((PyObject *)__pyx_n_s__e));
        __pyx_t_3 = 0;
        __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L22;
      }
      __pyx_L22:;
 263:                 self.verbose_logger.log(logginglevels.DEBUG_1,
      /* "/home/david/coding/yum/yum/depsolve.pyx":263
 *                 self.ts.addErase(txmbr.po.idx)
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,             # <<<<<<<<<<<<<<
 *                     _('Removing Package %s'), txmbr.po)
 * 
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_11 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__log); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 264:                     _('Removing Package %s'), txmbr.po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":264
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Removing Package %s'), txmbr.po)             # <<<<<<<<<<<<<<
 * 
 *     def _processReq(self, po, requirement):
 */
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_28));
      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_28));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_28));
      __pyx_t_8 = PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_1 = 0;
      __pyx_t_8 = 0;
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_11, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L15;
    }
    __pyx_L15:;
    __pyx_L13_continue:;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.populateTs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_ts_elem);
  __Pyx_DECREF(__pyx_v_te);
  __Pyx_DECREF(__pyx_v_epoch);
  __Pyx_DECREF(__pyx_v_pkginfo);
  __Pyx_DECREF(__pyx_v_mode);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_DECREF(__pyx_v_rpmfile);
  __Pyx_DECREF(__pyx_v_hdr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 265: 
 266:     def _processReq(self, po, requirement):
/* "/home/david/coding/yum/yum/depsolve.pyx":266
 *                     _('Removing Package %s'), txmbr.po)
 * 
 *     def _processReq(self, po, requirement):             # <<<<<<<<<<<<<<
 *         """processes a Requires dep from the resolveDeps functions, returns a tuple
 *            of (CheckDeps, missingdep, conflicts, errors) the last item is an array
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__processReq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__processReq[] = "processes a Requires dep from the resolveDeps functions, returns a tuple\n           of (CheckDeps, missingdep, conflicts, errors) the last item is an array\n           of error messages";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__processReq = {__Pyx_NAMESTR("_processReq"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__processReq, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__processReq)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__processReq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_po = 0;
  PyObject *__pyx_v_requirement = 0;
  PyObject *__pyx_v_errormsgs;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_flags;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_niceformatneed;
  PyObject *__pyx_v_CheckDeps;
  PyObject *__pyx_v_missingdep;
  PyObject *__pyx_v_e;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__po,&__pyx_n_s__requirement,0};
  __Pyx_RefNannySetupContext("_processReq");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__po);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_processReq", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requirement);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_processReq", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_processReq") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_po = values[1];
    __pyx_v_requirement = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_po = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_requirement = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_processReq", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._processReq");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_errormsgs = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_needname = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_flags = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needversion = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_niceformatneed = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_CheckDeps = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missingdep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_e = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":266
 *                     _('Removing Package %s'), txmbr.po)
 * 
 *     def _processReq(self, po, requirement):             # <<<<<<<<<<<<<<
 *         """processes a Requires dep from the resolveDeps functions, returns a tuple
 *            of (CheckDeps, missingdep, conflicts, errors) the last item is an array
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__processReq, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___processReq, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 267:         """processes a Requires dep from the resolveDeps functions, returns a tuple
 268:            of (CheckDeps, missingdep, conflicts, errors) the last item is an array
 269:            of error messages"""
 270: 
 271:         errormsgs = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":271
 *            of error messages"""
 * 
 *         errormsgs = []             # <<<<<<<<<<<<<<
 * 
 *         needname, flags, needversion = requirement
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_v_errormsgs));
  __pyx_v_errormsgs = __pyx_t_1;
  __pyx_t_1 = 0;
 272: 
 273:         needname, flags, needversion = requirement
  /* "/home/david/coding/yum/yum/depsolve.pyx":273
 *         errormsgs = []
 * 
 *         needname, flags, needversion = requirement             # <<<<<<<<<<<<<<
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)
 */
  if (PyTuple_CheckExact(__pyx_v_requirement) && likely(PyTuple_GET_SIZE(__pyx_v_requirement) == 3)) {
    PyObject* tuple = __pyx_v_requirement;
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_4 = PyObject_GetIter(__pyx_v_requirement); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_3;
    __pyx_t_3 = 0;
  }
 274:         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
  /* "/home/david/coding/yum/yum/depsolve.pyx":274
 * 
 *         needname, flags, needversion = requirement
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)             # <<<<<<<<<<<<<<
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)
 *         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__formatRequire); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __Pyx_INCREF(__pyx_v_flags);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_flags);
  __Pyx_GIVEREF(__pyx_v_flags);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __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;
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __pyx_v_niceformatneed = __pyx_t_1;
  __pyx_t_1 = 0;
 275:         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)
  /* "/home/david/coding/yum/yum/depsolve.pyx":275
 *         needname, flags, needversion = requirement
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)             # <<<<<<<<<<<<<<
 *         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_29));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_29));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_29));
  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_po);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_po);
  __Pyx_GIVEREF(__pyx_v_po);
  __Pyx_INCREF(__pyx_v_niceformatneed);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_niceformatneed);
  __Pyx_GIVEREF(__pyx_v_niceformatneed);
  __pyx_t_3 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 276:         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)
  /* "/home/david/coding/yum/yum/depsolve.pyx":276
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)
 *         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_6) {
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__procReq); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_niceformatneed);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_niceformatneed);
    __Pyx_GIVEREF(__pyx_v_niceformatneed);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 277: 
 278:         try:
  /* "/home/david/coding/yum/yum/depsolve.pyx":278
 *         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             if po.repo.id != "installed":
 *                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
 */
  {
    PyObject *__pyx_save_exc_type, *__pyx_save_exc_value, *__pyx_save_exc_tb;
    __Pyx_ExceptionSave(&__pyx_save_exc_type, &__pyx_save_exc_value, &__pyx_save_exc_tb);
    __Pyx_XGOTREF(__pyx_save_exc_type);
    __Pyx_XGOTREF(__pyx_save_exc_value);
    __Pyx_XGOTREF(__pyx_save_exc_tb);
    /*try:*/ {
 279:             if po.repo.id != "installed":
      /* "/home/david/coding/yum/yum/depsolve.pyx":279
 * 
 *         try:
 *             if po.repo.id != "installed":             # <<<<<<<<<<<<<<
 *                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
 *             else:
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__repo); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__id); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_n_s__installed), Py_NE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_6) {
 280:                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
        /* "/home/david/coding/yum/yum/depsolve.pyx":280
 *         try:
 *             if po.repo.id != "installed":
 *                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)             # <<<<<<<<<<<<<<
 *             else:
 *                 CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, errormsgs)
 */
        __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_30); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        __Pyx_INCREF(__pyx_v_requirement);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_requirement);
        __Pyx_GIVEREF(__pyx_v_requirement);
        __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
        PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_errormsgs));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
        __pyx_t_4 = PyObject_Call(__pyx_t_5, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (PyTuple_CheckExact(__pyx_t_4) && likely(PyTuple_GET_SIZE(__pyx_t_4) == 2)) {
          PyObject* tuple = __pyx_t_4;
          __pyx_t_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_2);
          __pyx_t_5 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_v_CheckDeps);
          __pyx_v_CheckDeps = __pyx_t_2;
          __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_v_missingdep);
          __pyx_v_missingdep = __pyx_t_5;
          __pyx_t_5 = 0;
        } else {
          __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_3, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_3, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_5);
          if (__Pyx_EndUnpack(__pyx_t_3, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_v_CheckDeps);
          __pyx_v_CheckDeps = __pyx_t_2;
          __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_v_missingdep);
          __pyx_v_missingdep = __pyx_t_5;
          __pyx_t_5 = 0;
        }
        goto __pyx_L15;
      }
      /*else*/ {
 281:             else:
 282:                 CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, errormsgs)
        /* "/home/david/coding/yum/yum/depsolve.pyx":282
 *                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
 *             else:
 *                 CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, errormsgs)             # <<<<<<<<<<<<<<
 * 
 *             # Check packages with problems
 */
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_31); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        __Pyx_INCREF(__pyx_v_requirement);
        PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_requirement);
        __Pyx_GIVEREF(__pyx_v_requirement);
        __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
        PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_errormsgs));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
        __pyx_t_2 = PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (PyTuple_CheckExact(__pyx_t_2) && likely(PyTuple_GET_SIZE(__pyx_t_2) == 2)) {
          PyObject* tuple = __pyx_t_2;
          __pyx_t_5 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_5);
          __pyx_t_4 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_v_CheckDeps);
          __pyx_v_CheckDeps = __pyx_t_5;
          __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_v_missingdep);
          __pyx_v_missingdep = __pyx_t_4;
          __pyx_t_4 = 0;
        } else {
          __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_3, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_3, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_4);
          if (__Pyx_EndUnpack(__pyx_t_3, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_v_CheckDeps);
          __pyx_v_CheckDeps = __pyx_t_5;
          __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_v_missingdep);
          __pyx_v_missingdep = __pyx_t_4;
          __pyx_t_4 = 0;
        }
      }
      __pyx_L15:;
 283: 
 284:             # Check packages with problems
 285:             if missingdep:
      /* "/home/david/coding/yum/yum/depsolve.pyx":285
 * 
 *             # Check packages with problems
 *             if missingdep:             # <<<<<<<<<<<<<<
 *                 self.po_with_problems.add((po,self._working_po,errormsgs[-1]))
 * 
 */
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missingdep); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      if (__pyx_t_6) {
 286:                 self.po_with_problems.add((po,self._working_po,errormsgs[-1]))
        /* "/home/david/coding/yum/yum/depsolve.pyx":286
 *             # Check packages with problems
 *             if missingdep:
 *                 self.po_with_problems.add((po,self._working_po,errormsgs[-1]))             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__po_with_problems); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__add); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___working_po); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_errormsgs), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        __pyx_t_2 = 0;
        __pyx_t_5 = 0;
        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L16;
      }
      __pyx_L16:;
    }
    __Pyx_XDECREF(__pyx_save_exc_type); __pyx_save_exc_type = 0;
    __Pyx_XDECREF(__pyx_save_exc_value); __pyx_save_exc_value = 0;
    __Pyx_XDECREF(__pyx_save_exc_tb); __pyx_save_exc_tb = 0;
    goto __pyx_L14_try_end;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 287: 
 288: 
 289:         except Errors.DepError,e:
    /* "/home/david/coding/yum/yum/depsolve.pyx":289
 * 
 * 
 *         except Errors.DepError,e:             # <<<<<<<<<<<<<<
 *             # FIXME: This is a hack, it don't solve the problem
 *             # of tries to update to a package the have been removed from the
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DepError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_7) {
      __Pyx_AddTraceback("yum.depsolve.Depsolve._processReq");
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_3, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_v_e);
      __pyx_v_e = __pyx_t_3;
 290:             # FIXME: This is a hack, it don't solve the problem
 291:             # of tries to update to a package the have been removed from the
 292:             # pkgSack because of dep problems.
 293:             # The real solution is to remove the package from the updates, when
 294:             # it is remove from the pkgSack
 295:             self.po_with_problems.add((po,self._working_po,str(e)))
      /* "/home/david/coding/yum/yum/depsolve.pyx":295
 *             # The real solution is to remove the package from the updates, when
 *             # it is remove from the pkgSack
 *             self.po_with_problems.add((po,self._working_po,str(e)))             # <<<<<<<<<<<<<<
 *             CheckDeps = 1
 *             missingdep = 0
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__po_with_problems); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__add); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___working_po); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_e);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_e);
      __Pyx_GIVEREF(__pyx_v_e);
      __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __pyx_t_2 = 0;
      __pyx_t_9 = 0;
      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 296:             CheckDeps = 1
      /* "/home/david/coding/yum/yum/depsolve.pyx":296
 *             # it is remove from the pkgSack
 *             self.po_with_problems.add((po,self._working_po,str(e)))
 *             CheckDeps = 1             # <<<<<<<<<<<<<<
 *             missingdep = 0
 * 
 */
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_DECREF(__pyx_v_CheckDeps);
      __pyx_v_CheckDeps = __pyx_int_1;
 297:             missingdep = 0
      /* "/home/david/coding/yum/yum/depsolve.pyx":297
 *             self.po_with_problems.add((po,self._working_po,str(e)))
 *             CheckDeps = 1
 *             missingdep = 0             # <<<<<<<<<<<<<<
 * 
 *         return (CheckDeps, missingdep, errormsgs)
 */
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_DECREF(__pyx_v_missingdep);
      __pyx_v_missingdep = __pyx_int_0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L8_exception_handled;
    }
    __pyx_L9_except_error:;
    __Pyx_XGIVEREF(__pyx_save_exc_type);
    __Pyx_XGIVEREF(__pyx_save_exc_value);
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
    goto __pyx_L1_error;
    __pyx_L8_exception_handled:;
    __Pyx_XGIVEREF(__pyx_save_exc_type);
    __Pyx_XGIVEREF(__pyx_save_exc_value);
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
    __pyx_L14_try_end:;
  }
 298: 
 299:         return (CheckDeps, missingdep, errormsgs)
  /* "/home/david/coding/yum/yum/depsolve.pyx":299
 *             missingdep = 0
 * 
 *         return (CheckDeps, missingdep, errormsgs)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_CheckDeps);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_CheckDeps);
  __Pyx_GIVEREF(__pyx_v_CheckDeps);
  __Pyx_INCREF(__pyx_v_missingdep);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_missingdep);
  __Pyx_GIVEREF(__pyx_v_missingdep);
  __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
  PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_errormsgs));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._processReq");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_errormsgs);
  __Pyx_DECREF(__pyx_v_needname);
  __Pyx_DECREF(__pyx_v_flags);
  __Pyx_DECREF(__pyx_v_needversion);
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __Pyx_DECREF(__pyx_v_CheckDeps);
  __Pyx_DECREF(__pyx_v_missingdep);
  __Pyx_DECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 300: 
 301:     @staticmethod
 302:     def _prco_req_nfv2req(rn, rf, rv):
/* "/home/david/coding/yum/yum/depsolve.pyx":302
 * 
 *     @staticmethod
 *     def _prco_req_nfv2req(rn, rf, rv):             # <<<<<<<<<<<<<<
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__prco_req_nfv2req(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__prco_req_nfv2req = {__Pyx_NAMESTR("_prco_req_nfv2req"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__prco_req_nfv2req, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__prco_req_nfv2req(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_rn = 0;
  PyObject *__pyx_v_rf = 0;
  PyObject *__pyx_v_rv = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__rn,&__pyx_n_s__rf,&__pyx_n_s__rv,0};
  __Pyx_RefNannySetupContext("_prco_req_nfv2req");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rn);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rf);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_prco_req_nfv2req", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rv);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_prco_req_nfv2req", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_prco_req_nfv2req") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_rn = values[0];
    __pyx_v_rf = values[1];
    __pyx_v_rv = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_rn = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_rf = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_rv = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_prco_req_nfv2req", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._prco_req_nfv2req");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":302
 * 
 *     @staticmethod
 *     def _prco_req_nfv2req(rn, rf, rv):             # <<<<<<<<<<<<<<
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 * 
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__prco_req_nfv2req, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___prco_req_nfv2req, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/david/coding/yum/yum/depsolve.pyx":301
 *         return (CheckDeps, missingdep, errormsgs)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _prco_req_nfv2req(rn, rf, rv):
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_t_5, __pyx_n_s___prco_req_nfv2req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_staticmethod, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___prco_req_nfv2req, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 303:         return (rn, flags[rf], version_tuple_to_string(rv))
  /* "/home/david/coding/yum/yum/depsolve.pyx":303
 *     @staticmethod
 *     def _prco_req_nfv2req(rn, rf, rv):
 *         return (rn, flags[rf], version_tuple_to_string(rv))             # <<<<<<<<<<<<<<
 * 
 *     def _prco_req2req(self, req):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_v_rf); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_32); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_rv);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_rv);
  __Pyx_GIVEREF(__pyx_v_rv);
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_rn);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_rn);
  __Pyx_GIVEREF(__pyx_v_rn);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._prco_req_nfv2req");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 304: 
 305:     def _prco_req2req(self, req):
/* "/home/david/coding/yum/yum/depsolve.pyx":305
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 * 
 *     def _prco_req2req(self, req):             # <<<<<<<<<<<<<<
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__prco_req2req(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__prco_req2req = {__Pyx_NAMESTR("_prco_req2req"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__prco_req2req, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__prco_req2req(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_req = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__req,0};
  __Pyx_RefNannySetupContext("_prco_req2req");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__req);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_prco_req2req", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_prco_req2req") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_req = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_req = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_prco_req2req", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._prco_req2req");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":305
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 * 
 *     def _prco_req2req(self, req):             # <<<<<<<<<<<<<<
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__prco_req2req, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___prco_req2req, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 306:         return self._prco_req_nfv2req(req[0], req[1], req[2])
  /* "/home/david/coding/yum/yum/depsolve.pyx":306
 * 
 *     def _prco_req2req(self, req):
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])             # <<<<<<<<<<<<<<
 * 
 *     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___prco_req_nfv2req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_req, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_req, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_req, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._prco_req2req");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 307: 
 308:     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
/* "/home/david/coding/yum/yum/depsolve.pyx":308
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 *     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where the requiring
 *            package is installed"""
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromInstalled(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__requiringFromInstalled[] = "processes the dependency resolution for a dep where the requiring \n           package is installed";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__requiringFromInstalled = {__Pyx_NAMESTR("_requiringFromInstalled"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromInstalled, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__requiringFromInstalled)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromInstalled(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled *__pyx_cur_scope;
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_requiringPo = 0;
  PyObject *__pyx_v_requirement = 0;
  PyObject *__pyx_v_errorlist = 0;
  PyObject *__pyx_v_checkdeps;
  PyObject *__pyx_v_missingdep;
  PyObject *__pyx_v_name;
  PyObject *__pyx_v_arch;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_ver;
  PyObject *__pyx_v_rel;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_needflags;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_niceformatneed;
  PyObject *__pyx_v_needmode;
  PyObject *__pyx_v_needpo;
  PyObject *__pyx_v_providers;
  PyObject *__pyx_v_cheater_po;
  PyObject *__pyx_v_txmbrs;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_inst_po;
  PyObject *__pyx_v_inst_str;
  PyObject *__pyx_v_i_n;
  PyObject *__pyx_v_i_a;
  PyObject *__pyx_v_i_e;
  PyObject *__pyx_v_i_v;
  PyObject *__pyx_v_i_r;
  PyObject *__pyx_v_thismode;
  PyObject *__pyx_v_length;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_reqpkg;
  PyObject *__pyx_v_prob_pkg;
  PyObject *__pyx_v_msg;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__requiringPo,&__pyx_n_s__requirement,&__pyx_n_s__errorlist,0};
  __Pyx_RefNannySetupContext("_requiringFromInstalled");
  __pyx_cur_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled *)__pyx_ptype_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled->tp_new(__pyx_ptype_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_cur_scope);
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requiringPo);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromInstalled", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requirement);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromInstalled", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorlist);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromInstalled", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_requiringFromInstalled") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_requiringPo = values[1];
    __pyx_v_requirement = values[2];
    __pyx_v_errorlist = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_requiringPo = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_requirement = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_errorlist = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_requiringFromInstalled", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._requiringFromInstalled");
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_checkdeps = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missingdep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_name = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_arch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_epoch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_ver = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rel = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needname = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needflags = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needversion = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_niceformatneed = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needmode = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needpo = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_providers = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_cheater_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbrs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_inst_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_inst_str = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_n = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_a = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_e = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_thismode = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_length = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_reqpkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_prob_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_msg = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":308
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 *     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where the requiring
 *            package is installed"""
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__requiringFromInstalled, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s_31, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

/* "/home/david/coding/yum/yum/depsolve.pyx":308
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 *     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where the requiring
 *            package is installed"""
 */

struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled {
  PyObject_HEAD
  PyObject *__pyx_v_arch;
  PyObject *__pyx_v_cheater_po;
  PyObject *__pyx_v_checkdeps;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_errorlist;
  PyObject *__pyx_v_i_a;
  PyObject *__pyx_v_i_e;
  PyObject *__pyx_v_i_n;
  PyObject *__pyx_v_i_r;
  PyObject *__pyx_v_i_v;
  PyObject *__pyx_v_inst_po;
  PyObject *__pyx_v_inst_str;
  PyObject *__pyx_v_length;
  PyObject *__pyx_v_missingdep;
  PyObject *__pyx_v_msg;
  PyObject *__pyx_v_name;
  PyObject *__pyx_v_needflags;
  PyObject *__pyx_v_needmode;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_needpo;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_niceformatneed;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_prob_pkg;
  PyObject *__pyx_v_providers;
  PyObject *__pyx_v_rel;
  PyObject *__pyx_v_reqpkg;
  PyObject *__pyx_v_requirement;
  PyObject *__pyx_v_requiringPo;
  PyObject *__pyx_v_self;
  PyObject *__pyx_v_thismode;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_txmbrs;
  PyObject *__pyx_v_ver;
};
 309:         """processes the dependency resolution for a dep where the requiring
 310:            package is installed"""
 311: 
 312:         checkdeps = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":312
 *            package is installed"""
 * 
 *         checkdeps = 0             # <<<<<<<<<<<<<<
 *         missingdep = 0
 * 
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_checkdeps);
  __pyx_v_checkdeps = __pyx_int_0;
 313:         missingdep = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":313
 * 
 *         checkdeps = 0
 *         missingdep = 0             # <<<<<<<<<<<<<<
 * 
 *         if self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES):
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_missingdep);
  __pyx_v_missingdep = __pyx_int_0;
 314: 
 315:         if self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES):
  /* "/home/david/coding/yum/yum/depsolve.pyx":315
 *         missingdep = 0
 * 
 *         if self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES):             # <<<<<<<<<<<<<<
 *             return checkdeps, missingdep
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {
 316:             return checkdeps, missingdep
    /* "/home/david/coding/yum/yum/depsolve.pyx":316
 * 
 *         if self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES):
 *             return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         name, arch, epoch, ver, rel = requiringPo.pkgtup
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_checkdeps);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_checkdeps);
    __Pyx_GIVEREF(__pyx_v_checkdeps);
    __Pyx_INCREF(__pyx_v_missingdep);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_missingdep);
    __Pyx_GIVEREF(__pyx_v_missingdep);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 317: 
 318:         name, arch, epoch, ver, rel = requiringPo.pkgtup
  /* "/home/david/coding/yum/yum/depsolve.pyx":318
 *             return checkdeps, missingdep
 * 
 *         name, arch, epoch, ver, rel = requiringPo.pkgtup             # <<<<<<<<<<<<<<
 * 
 *         needname, needflags, needversion = requirement
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyTuple_CheckExact(__pyx_t_3) && likely(PyTuple_GET_SIZE(__pyx_t_3) == 5)) {
    PyObject* tuple = __pyx_t_3;
    __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_ver);
    __pyx_v_ver = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_rel);
    __pyx_v_rel = __pyx_t_7;
    __pyx_t_7 = 0;
  } else {
    __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_8, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_8, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_8, 2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_8, 3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_8, 4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_EndUnpack(__pyx_t_8, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_ver);
    __pyx_v_ver = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_rel);
    __pyx_v_rel = __pyx_t_7;
    __pyx_t_7 = 0;
  }
 319: 
 320:         needname, needflags, needversion = requirement
  /* "/home/david/coding/yum/yum/depsolve.pyx":320
 *         name, arch, epoch, ver, rel = requiringPo.pkgtup
 * 
 *         needname, needflags, needversion = requirement             # <<<<<<<<<<<<<<
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, needflags)
 * 
 */
  if (PyTuple_CheckExact(__pyx_v_requirement) && likely(PyTuple_GET_SIZE(__pyx_v_requirement) == 3)) {
    PyObject* tuple = __pyx_v_requirement;
    __pyx_t_3 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_7);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_needflags);
    __pyx_v_needflags = __pyx_t_7;
    __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_6;
    __pyx_t_6 = 0;
  } else {
    __pyx_t_1 = PyObject_GetIter(__pyx_v_requirement); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_1, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_1, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_1, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_EndUnpack(__pyx_t_1, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_needflags);
    __pyx_v_needflags = __pyx_t_7;
    __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_6;
    __pyx_t_6 = 0;
  }
 321:         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, needflags)
  /* "/home/david/coding/yum/yum/depsolve.pyx":321
 * 
 *         needname, needflags, needversion = requirement
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, needflags)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__formatRequire); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __Pyx_INCREF(__pyx_v_needflags);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_needflags);
  __Pyx_GIVEREF(__pyx_v_needflags);
  __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __pyx_v_niceformatneed = __pyx_t_3;
  __pyx_t_3 = 0;
 322: 
 323: 
 324:         # we must first find out why the requirement is no longer there
 325:         # we must find out what provides/provided it from the rpmdb (if anything)
 326:         # then check to see if that thing is being acted upon by the transaction set
 327:         # if it is then we need to find out what is being done to it and act accordingly
 328:         needmode = None # mode in the transaction of the needed pkg (if any)
  /* "/home/david/coding/yum/yum/depsolve.pyx":328
 *         # then check to see if that thing is being acted upon by the transaction set
 *         # if it is then we need to find out what is being done to it and act accordingly
 *         needmode = None # mode in the transaction of the needed pkg (if any)             # <<<<<<<<<<<<<<
 *         needpo = None
 *         providers = []
 */
  __Pyx_INCREF(Py_None);
  __Pyx_DECREF(__pyx_v_needmode);
  __pyx_v_needmode = Py_None;
 329:         needpo = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":329
 *         # if it is then we need to find out what is being done to it and act accordingly
 *         needmode = None # mode in the transaction of the needed pkg (if any)
 *         needpo = None             # <<<<<<<<<<<<<<
 *         providers = []
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_DECREF(__pyx_v_needpo);
  __pyx_v_needpo = Py_None;
 330:         providers = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":330
 *         needmode = None # mode in the transaction of the needed pkg (if any)
 *         needpo = None
 *         providers = []             # <<<<<<<<<<<<<<
 * 
 *         if self.cheaterlookup.has_key((needname, needflags, needversion)):
 */
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_DECREF(__pyx_v_providers);
  __pyx_v_providers = ((PyObject *)__pyx_t_3);
  __pyx_t_3 = 0;
 331: 
 332:         if self.cheaterlookup.has_key((needname, needflags, needversion)):
  /* "/home/david/coding/yum/yum/depsolve.pyx":332
 *         providers = []
 * 
 *         if self.cheaterlookup.has_key((needname, needflags, needversion)):             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
 *             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cheaterlookup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__has_key); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needflags);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_needflags);
  __Pyx_GIVEREF(__pyx_v_needflags);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {
 333:             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
    /* "/home/david/coding/yum/yum/depsolve.pyx":333
 * 
 *         if self.cheaterlookup.has_key((needname, needflags, needversion)):
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))             # <<<<<<<<<<<<<<
 *             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
 *             providers = [cheater_po]
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_33));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_33));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_33));
    __pyx_t_2 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_7 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 334:             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
    /* "/home/david/coding/yum/yum/depsolve.pyx":334
 *         if self.cheaterlookup.has_key((needname, needflags, needversion)):
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
 *             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]             # <<<<<<<<<<<<<<
 *             providers = [cheater_po]
 * 
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cheaterlookup); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __Pyx_INCREF(__pyx_v_needflags);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_needflags);
    __Pyx_GIVEREF(__pyx_v_needflags);
    __Pyx_INCREF(__pyx_v_needversion);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_needversion);
    __Pyx_GIVEREF(__pyx_v_needversion);
    __pyx_t_6 = PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_cheater_po);
    __pyx_v_cheater_po = __pyx_t_6;
    __pyx_t_6 = 0;
 335:             providers = [cheater_po]
    /* "/home/david/coding/yum/yum/depsolve.pyx":335
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
 *             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
 *             providers = [cheater_po]             # <<<<<<<<<<<<<<
 * 
 *         elif self.rpmdb.contains(name=needname):
 */
    __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_v_cheater_po);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v_cheater_po);
    __Pyx_GIVEREF(__pyx_v_cheater_po);
    __Pyx_DECREF(__pyx_v_providers);
    __pyx_v_providers = ((PyObject *)__pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L7;
  }
 336: 
 337:         elif self.rpmdb.contains(name=needname):
  /* "/home/david/coding/yum/yum/depsolve.pyx":337
 *             providers = [cheater_po]
 * 
 *         elif self.rpmdb.contains(name=needname):             # <<<<<<<<<<<<<<
 *             txmbrs = self.tsInfo.matchNaevr(name=needname)
 *             for txmbr in txmbrs:
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__contains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_v_needname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {
 338:             txmbrs = self.tsInfo.matchNaevr(name=needname)
    /* "/home/david/coding/yum/yum/depsolve.pyx":338
 * 
 *         elif self.rpmdb.contains(name=needname):
 *             txmbrs = self.tsInfo.matchNaevr(name=needname)             # <<<<<<<<<<<<<<
 *             for txmbr in txmbrs:
 *                 providers.append(txmbr.po)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__matchNaevr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_v_needname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_txmbrs);
    __pyx_v_txmbrs = __pyx_t_1;
    __pyx_t_1 = 0;
 339:             for txmbr in txmbrs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":339
 *         elif self.rpmdb.contains(name=needname):
 *             txmbrs = self.tsInfo.matchNaevr(name=needname)
 *             for txmbr in txmbrs:             # <<<<<<<<<<<<<<
 *                 providers.append(txmbr.po)
 * 
 */
    if (PyList_CheckExact(__pyx_v_txmbrs) || PyTuple_CheckExact(__pyx_v_txmbrs)) {
      __pyx_t_9 = 0; __pyx_t_1 = __pyx_v_txmbrs; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_txmbrs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
    }
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++;
      } else {
        __pyx_t_2 = PyIter_Next(__pyx_t_1);
        if (!__pyx_t_2) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF(__pyx_v_txmbr);
      __pyx_v_txmbr = __pyx_t_2;
      __pyx_t_2 = 0;
 340:                 providers.append(txmbr.po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":340
 *             txmbrs = self.tsInfo.matchNaevr(name=needname)
 *             for txmbr in txmbrs:
 *                 providers.append(txmbr.po)             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_providers, __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L7;
  }
  /*else*/ {
 341: 
 342:         else:
 343:             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require is not a package name. Looking up: %s'), niceformatneed)
    /* "/home/david/coding/yum/yum/depsolve.pyx":343
 * 
 *         else:
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require is not a package name. Looking up: %s'), niceformatneed)             # <<<<<<<<<<<<<<
 *             providers = self.rpmdb.getProvides(needname, needflags, needversion)
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_34));
    PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_34));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_34));
    __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_niceformatneed);
    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_niceformatneed);
    __Pyx_GIVEREF(__pyx_v_niceformatneed);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 344:             providers = self.rpmdb.getProvides(needname, needflags, needversion)
    /* "/home/david/coding/yum/yum/depsolve.pyx":344
 *         else:
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require is not a package name. Looking up: %s'), niceformatneed)
 *             providers = self.rpmdb.getProvides(needname, needflags, needversion)             # <<<<<<<<<<<<<<
 * 
 *         for inst_po in providers:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getProvides); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __Pyx_INCREF(__pyx_v_needflags);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_needflags);
    __Pyx_GIVEREF(__pyx_v_needflags);
    __Pyx_INCREF(__pyx_v_needversion);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_needversion);
    __Pyx_GIVEREF(__pyx_v_needversion);
    __pyx_t_6 = PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_providers);
    __pyx_v_providers = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_L7:;
 345: 
 346:         for inst_po in providers:
  /* "/home/david/coding/yum/yum/depsolve.pyx":346
 *             providers = self.rpmdb.getProvides(needname, needflags, needversion)
 * 
 *         for inst_po in providers:             # <<<<<<<<<<<<<<
 *             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
 */
  if (PyList_CheckExact(__pyx_v_providers) || PyTuple_CheckExact(__pyx_v_providers)) {
    __pyx_t_9 = 0; __pyx_t_6 = __pyx_v_providers; __Pyx_INCREF(__pyx_t_6);
  } else {
    __pyx_t_9 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_providers); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_6))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_6))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_6);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_inst_po);
    __pyx_v_inst_po = __pyx_t_3;
    __pyx_t_3 = 0;
 347:             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
    /* "/home/david/coding/yum/yum/depsolve.pyx":347
 * 
 *         for inst_po in providers:
 *             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup             # <<<<<<<<<<<<<<
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_inst_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_35), __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_7));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_inst_str);
    __pyx_v_inst_str = ((PyObject *)__pyx_t_7);
    __pyx_t_7 = 0;
 348:             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
    /* "/home/david/coding/yum/yum/depsolve.pyx":348
 *         for inst_po in providers:
 *             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential Provider: %s'), inst_str)
 */
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_inst_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyTuple_CheckExact(__pyx_t_7) && likely(PyTuple_GET_SIZE(__pyx_t_7) == 5)) {
      PyObject* tuple = __pyx_t_7;
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_3);
      __pyx_t_2 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_1);
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_4);
      __pyx_t_8 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_v_i_n);
      __pyx_v_i_n = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_i_a);
      __pyx_v_i_a = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_i_e);
      __pyx_v_i_e = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_i_v);
      __pyx_v_i_v = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_i_r);
      __pyx_v_i_r = __pyx_t_8;
      __pyx_t_8 = 0;
    } else {
      __pyx_t_10 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_10, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_10, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_10, 2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_10, 3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = __Pyx_UnpackItem(__pyx_t_10, 4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      if (__Pyx_EndUnpack(__pyx_t_10, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_v_i_n);
      __pyx_v_i_n = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_i_a);
      __pyx_v_i_a = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_i_e);
      __pyx_v_i_e = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_i_v);
      __pyx_v_i_v = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_i_r);
      __pyx_v_i_r = __pyx_t_8;
      __pyx_t_8 = 0;
    }
 349:             self.verbose_logger.log(logginglevels.DEBUG_2,
    /* "/home/david/coding/yum/yum/depsolve.pyx":349
 *             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
 *             self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                 _('Potential Provider: %s'), inst_str)
 *             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
 */
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__log); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 350:                 _('Potential Provider: %s'), inst_str)
    /* "/home/david/coding/yum/yum/depsolve.pyx":350
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential Provider: %s'), inst_str)             # <<<<<<<<<<<<<<
 *             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
 *                             epoch=i_e, ver=i_v, rel=i_r)
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_36));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_36));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_36));
    __pyx_t_2 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_inst_str);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_inst_str);
    __Pyx_GIVEREF(__pyx_v_inst_str);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 351:             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
    /* "/home/david/coding/yum/yum/depsolve.pyx":351
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential Provider: %s'), inst_str)
 *             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,             # <<<<<<<<<<<<<<
 *                             epoch=i_e, ver=i_v, rel=i_r)
 * 
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getMode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_v_i_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__arch), __pyx_v_i_a) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 352:                             epoch=i_e, ver=i_v, rel=i_r)
    /* "/home/david/coding/yum/yum/depsolve.pyx":352
 *                 _('Potential Provider: %s'), inst_str)
 *             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
 *                             epoch=i_e, ver=i_v, rel=i_r)             # <<<<<<<<<<<<<<
 * 
 *             if thismode is None and i_n in self.conf.exactarchlist:
 */
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__epoch), __pyx_v_i_e) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__ver), __pyx_v_i_v) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__rel), __pyx_v_i_r) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_thismode);
    __pyx_v_thismode = __pyx_t_8;
    __pyx_t_8 = 0;
 353: 
 354:             if thismode is None and i_n in self.conf.exactarchlist:
    /* "/home/david/coding/yum/yum/depsolve.pyx":354
 *                             epoch=i_e, ver=i_v, rel=i_r)
 * 
 *             if thismode is None and i_n in self.conf.exactarchlist:             # <<<<<<<<<<<<<<
 *                 # check for mode by the same name+arch
 *                 thismode = self.tsInfo.getMode(name=i_n, arch=i_a)
 */
    __pyx_t_5 = (__pyx_v_thismode == Py_None);
    if (__pyx_t_5) {
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__exactarchlist); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_11 = ((PySequence_Contains(__pyx_t_2, __pyx_v_i_n))); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_12 = __pyx_t_11;
    } else {
      __pyx_t_12 = __pyx_t_5;
    }
    if (__pyx_t_12) {
 355:                 # check for mode by the same name+arch
 356:                 thismode = self.tsInfo.getMode(name=i_n, arch=i_a)
      /* "/home/david/coding/yum/yum/depsolve.pyx":356
 *             if thismode is None and i_n in self.conf.exactarchlist:
 *                 # check for mode by the same name+arch
 *                 thismode = self.tsInfo.getMode(name=i_n, arch=i_a)             # <<<<<<<<<<<<<<
 * 
 *             if thismode is None and i_n not in self.conf.exactarchlist:
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getMode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_v_i_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__arch), __pyx_v_i_a) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_thismode);
      __pyx_v_thismode = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L12;
    }
    __pyx_L12:;
 357: 
 358:             if thismode is None and i_n not in self.conf.exactarchlist:
    /* "/home/david/coding/yum/yum/depsolve.pyx":358
 *                 thismode = self.tsInfo.getMode(name=i_n, arch=i_a)
 * 
 *             if thismode is None and i_n not in self.conf.exactarchlist:             # <<<<<<<<<<<<<<
 *                 # check for mode by just the name
 *                 thismode = self.tsInfo.getMode(name=i_n)
 */
    __pyx_t_12 = (__pyx_v_thismode == Py_None);
    if (__pyx_t_12) {
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__exactarchlist); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = (__Pyx_NegateNonNeg(PySequence_Contains(__pyx_t_2, __pyx_v_i_n))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = __pyx_t_5;
    } else {
      __pyx_t_11 = __pyx_t_12;
    }
    if (__pyx_t_11) {
 359:                 # check for mode by just the name
 360:                 thismode = self.tsInfo.getMode(name=i_n)
      /* "/home/david/coding/yum/yum/depsolve.pyx":360
 *             if thismode is None and i_n not in self.conf.exactarchlist:
 *                 # check for mode by just the name
 *                 thismode = self.tsInfo.getMode(name=i_n)             # <<<<<<<<<<<<<<
 * 
 *             # if this package is being obsoleted, it's just like if it's
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getMode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_v_i_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_thismode);
      __pyx_v_thismode = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L13;
    }
    __pyx_L13:;
 361: 
 362:             # if this package is being obsoleted, it's just like if it's
 363:             # being upgraded as far as checking for other providers
 364:             if thismode is None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":364
 *             # if this package is being obsoleted, it's just like if it's
 *             # being upgraded as far as checking for other providers
 *             if thismode is None:             # <<<<<<<<<<<<<<
 *                 if filter(lambda x: x.obsoleted_by,
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
 */
    __pyx_t_11 = (__pyx_v_thismode == Py_None);
    if (__pyx_t_11) {
 365:                 if filter(lambda x: x.obsoleted_by,
/* "/home/david/coding/yum/yum/depsolve.pyx":365
 *             # being upgraded as far as checking for other providers
 *             if thismode is None:
 *                 if filter(lambda x: x.obsoleted_by,             # <<<<<<<<<<<<<<
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
 *                     thismode = 'u'
 */

static PyObject *__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/
static PyMethodDef __pyx_lambda_methdef3yum_8depsolve_23_requiringFromInstalled_lambda2 = {__Pyx_NAMESTR("__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2"), (PyCFunction)__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2(PyObject *__pyx_self, PyObject *__pyx_v_x) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled *)__pyx_self;
  __pyx_self = __pyx_self;
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__obsoleted_by); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("yum.depsolve._requiringFromInstalled.lambda2");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

      /* "/home/david/coding/yum/yum/depsolve.pyx":365
 *             # being upgraded as far as checking for other providers
 *             if thismode is None:
 *                 if filter(lambda x: x.obsoleted_by,             # <<<<<<<<<<<<<<
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
 *                     thismode = 'u'
 */
      __pyx_t_8 = __pyx_binding_PyCFunctionType_New(&__pyx_lambda_methdef3yum_8depsolve_23_requiringFromInstalled_lambda2, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
 366:                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
      /* "/home/david/coding/yum/yum/depsolve.pyx":366
 *             if thismode is None:
 *                 if filter(lambda x: x.obsoleted_by,
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):             # <<<<<<<<<<<<<<
 *                     thismode = 'u'
 * 
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__matchNaevr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_i_n);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i_n);
      __Pyx_GIVEREF(__pyx_v_i_n);
      __Pyx_INCREF(__pyx_v_i_a);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_i_a);
      __Pyx_GIVEREF(__pyx_v_i_a);
      __Pyx_INCREF(__pyx_v_i_e);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_i_e);
      __Pyx_GIVEREF(__pyx_v_i_e);
      __Pyx_INCREF(__pyx_v_i_v);
      PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_i_v);
      __Pyx_GIVEREF(__pyx_v_i_v);
      __Pyx_INCREF(__pyx_v_i_r);
      PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_i_r);
      __Pyx_GIVEREF(__pyx_v_i_r);
      __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_8 = 0;
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_builtin_filter, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_11) {
 367:                     thismode = 'u'
        /* "/home/david/coding/yum/yum/depsolve.pyx":367
 *                 if filter(lambda x: x.obsoleted_by,
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
 *                     thismode = 'u'             # <<<<<<<<<<<<<<
 * 
 *             if thismode is not None:
 */
        __Pyx_INCREF(((PyObject *)__pyx_n_s__u));
        __Pyx_DECREF(__pyx_v_thismode);
        __pyx_v_thismode = ((PyObject *)__pyx_n_s__u);
        goto __pyx_L15;
      }
      __pyx_L15:;
      goto __pyx_L14;
    }
    __pyx_L14:;
 368: 
 369:             if thismode is not None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":369
 *                     thismode = 'u'
 * 
 *             if thismode is not None:             # <<<<<<<<<<<<<<
 *                 needmode = thismode
 * 
 */
    __pyx_t_11 = (__pyx_v_thismode != Py_None);
    if (__pyx_t_11) {
 370:                 needmode = thismode
      /* "/home/david/coding/yum/yum/depsolve.pyx":370
 * 
 *             if thismode is not None:
 *                 needmode = thismode             # <<<<<<<<<<<<<<
 * 
 *                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po
 */
      __Pyx_INCREF(__pyx_v_thismode);
      __Pyx_DECREF(__pyx_v_needmode);
      __pyx_v_needmode = __pyx_v_thismode;
 371: 
 372:                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po
      /* "/home/david/coding/yum/yum/depsolve.pyx":372
 *                 needmode = thismode
 * 
 *                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
 *                     needmode, niceformatneed, inst_str)
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cheaterlookup); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_needname);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_needname);
      __Pyx_GIVEREF(__pyx_v_needname);
      __Pyx_INCREF(__pyx_v_needflags);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_needflags);
      __Pyx_GIVEREF(__pyx_v_needflags);
      __Pyx_INCREF(__pyx_v_needversion);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_needversion);
      __Pyx_GIVEREF(__pyx_v_needversion);
      if (PyObject_SetItem(__pyx_t_4, __pyx_t_2, __pyx_v_inst_po) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 373:                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
      /* "/home/david/coding/yum/yum/depsolve.pyx":373
 * 
 *                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),             # <<<<<<<<<<<<<<
 *                     needmode, niceformatneed, inst_str)
 *                 break
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_37));
      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_37));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_37));
      __pyx_t_7 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 374:                     needmode, niceformatneed, inst_str)
      /* "/home/david/coding/yum/yum/depsolve.pyx":374
 *                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
 *                     needmode, niceformatneed, inst_str)             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
      __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_needmode);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_needmode);
      __Pyx_GIVEREF(__pyx_v_needmode);
      __Pyx_INCREF(__pyx_v_niceformatneed);
      PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_niceformatneed);
      __Pyx_GIVEREF(__pyx_v_niceformatneed);
      __Pyx_INCREF(__pyx_v_inst_str);
      PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_inst_str);
      __Pyx_GIVEREF(__pyx_v_inst_str);
      __pyx_t_8 = 0;
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 375:                 break
      /* "/home/david/coding/yum/yum/depsolve.pyx":375
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
 *                     needmode, niceformatneed, inst_str)
 *                 break             # <<<<<<<<<<<<<<
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),
 */
      goto __pyx_L11_break;
      goto __pyx_L16;
    }
    __pyx_L16:;
  }
  __pyx_L11_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 376: 
 377:         self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),
  /* "/home/david/coding/yum/yum/depsolve.pyx":377
 *                 break
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),             # <<<<<<<<<<<<<<
 *             niceformatneed, needmode)
 * 
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_38));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_38));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_38));
  __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 378:             niceformatneed, needmode)
  /* "/home/david/coding/yum/yum/depsolve.pyx":378
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),
 *             niceformatneed, needmode)             # <<<<<<<<<<<<<<
 * 
 *         if needmode in ['e']:
 */
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_niceformatneed);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_niceformatneed);
  __Pyx_GIVEREF(__pyx_v_niceformatneed);
  __Pyx_INCREF(__pyx_v_needmode);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_needmode);
  __Pyx_GIVEREF(__pyx_v_needmode);
  __pyx_t_1 = 0;
  __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 379: 
 380:         if needmode in ['e']:
  /* "/home/david/coding/yum/yum/depsolve.pyx":380
 *             niceformatneed, needmode)
 * 
 *         if needmode in ['e']:             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
 *                 requiringPo, needname)
 */
  __Pyx_INCREF(__pyx_v_needmode);
  __pyx_t_8 = __pyx_v_needmode;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, ((PyObject *)__pyx_n_s__e), Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_12 = __pyx_t_11;
  if (__pyx_t_12) {
 381:             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
    /* "/home/david/coding/yum/yum/depsolve.pyx":381
 * 
 *         if needmode in ['e']:
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),             # <<<<<<<<<<<<<<
 *                 requiringPo, needname)
 *             txmbr = self.tsInfo.addErase(requiringPo)
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_39));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_39));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_39));
    __pyx_t_6 = PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 382:                 requiringPo, needname)
    /* "/home/david/coding/yum/yum/depsolve.pyx":382
 *         if needmode in ['e']:
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
 *                 requiringPo, needname)             # <<<<<<<<<<<<<<
 *             txmbr = self.tsInfo.addErase(requiringPo)
 *             txmbr.setAsDep(po=inst_po)
 */
    __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __pyx_t_7 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 383:             txmbr = self.tsInfo.addErase(requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":383
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
 *                 requiringPo, needname)
 *             txmbr = self.tsInfo.addErase(requiringPo)             # <<<<<<<<<<<<<<
 *             txmbr.setAsDep(po=inst_po)
 *             checkdeps = 1
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__addErase); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_4;
    __pyx_t_4 = 0;
 384:             txmbr.setAsDep(po=inst_po)
    /* "/home/david/coding/yum/yum/depsolve.pyx":384
 *                 requiringPo, needname)
 *             txmbr = self.tsInfo.addErase(requiringPo)
 *             txmbr.setAsDep(po=inst_po)             # <<<<<<<<<<<<<<
 *             checkdeps = 1
 * 
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__setAsDep); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__po), __pyx_v_inst_po) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 385:             checkdeps = 1
    /* "/home/david/coding/yum/yum/depsolve.pyx":385
 *             txmbr = self.tsInfo.addErase(requiringPo)
 *             txmbr.setAsDep(po=inst_po)
 *             checkdeps = 1             # <<<<<<<<<<<<<<
 * 
 *         if needmode in ['i', 'u']:
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF(__pyx_v_checkdeps);
    __pyx_v_checkdeps = __pyx_int_1;
    goto __pyx_L17;
  }
  __pyx_L17:;
 386: 
 387:         if needmode in ['i', 'u']:
  /* "/home/david/coding/yum/yum/depsolve.pyx":387
 *             checkdeps = 1
 * 
 *         if needmode in ['i', 'u']:             # <<<<<<<<<<<<<<
 *             length = len(self.tsInfo)
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,
 */
  __Pyx_INCREF(__pyx_v_needmode);
  __pyx_t_1 = __pyx_v_needmode;
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__i), Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_11 = __pyx_t_12;
  if (!__pyx_t_11) {
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __pyx_t_12;
    __pyx_t_12 = __pyx_t_5;
  } else {
    __pyx_t_12 = __pyx_t_11;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_11 = __pyx_t_12;
  if (__pyx_t_11) {
 388:             length = len(self.tsInfo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":388
 * 
 *         if needmode in ['i', 'u']:
 *             length = len(self.tsInfo)             # <<<<<<<<<<<<<<
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,
 *                         requiringPo=requiringPo)
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_v_length);
    __pyx_v_length = __pyx_t_1;
    __pyx_t_1 = 0;
 389:             self.update(name=name, epoch=epoch, version=ver, release=rel,
    /* "/home/david/coding/yum/yum/depsolve.pyx":389
 *         if needmode in ['i', 'u']:
 *             length = len(self.tsInfo)
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,             # <<<<<<<<<<<<<<
 *                         requiringPo=requiringPo)
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__epoch), __pyx_v_epoch) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__version), __pyx_v_ver) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__release), __pyx_v_rel) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 390:                         requiringPo=requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":390
 *             length = len(self.tsInfo)
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,
 *                         requiringPo=requiringPo)             # <<<<<<<<<<<<<<
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:
 */
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__requiringPo), __pyx_v_requiringPo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 391:             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
    /* "/home/david/coding/yum/yum/depsolve.pyx":391
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,
 *                         requiringPo=requiringPo)
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)             # <<<<<<<<<<<<<<
 *             if len(self.tsInfo) != length and txmbrs:
 *                 if txmbrs[0].output_state == TS_OBSOLETED:
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_txmbrs);
    __pyx_v_txmbrs = __pyx_t_1;
    __pyx_t_1 = 0;
 392:             if len(self.tsInfo) != length and txmbrs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":392
 *                         requiringPo=requiringPo)
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:             # <<<<<<<<<<<<<<
 *                 if txmbrs[0].output_state == TS_OBSOLETED:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_v_length, Py_NE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_11) {
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_txmbrs); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __pyx_t_12;
    } else {
      __pyx_t_5 = __pyx_t_11;
    }
    if (__pyx_t_5) {
 393:                 if txmbrs[0].output_state == TS_OBSOLETED:
      /* "/home/david/coding/yum/yum/depsolve.pyx":393
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:
 *                 if txmbrs[0].output_state == TS_OBSOLETED:             # <<<<<<<<<<<<<<
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
 *                                             requiringPo, txmbrs[0].obsoleted_by[0])
 */
      __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_txmbrs, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__output_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_OBSOLETED); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_5) {
 394:                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
        /* "/home/david/coding/yum/yum/depsolve.pyx":394
 *             if len(self.tsInfo) != length and txmbrs:
 *                 if txmbrs[0].output_state == TS_OBSOLETED:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),             # <<<<<<<<<<<<<<
 *                                             requiringPo, txmbrs[0].obsoleted_by[0])
 *                 else:
 */
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_40));
        PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_40));
        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_40));
        __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 395:                                             requiringPo, txmbrs[0].obsoleted_by[0])
        /* "/home/david/coding/yum/yum/depsolve.pyx":395
 *                 if txmbrs[0].output_state == TS_OBSOLETED:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
 *                                             requiringPo, txmbrs[0].obsoleted_by[0])             # <<<<<<<<<<<<<<
 *                 else:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Updating %s to resolve dep.'), requiringPo)
 */
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_txmbrs, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__obsoleted_by); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_v_requiringPo);
        PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_requiringPo);
        __Pyx_GIVEREF(__pyx_v_requiringPo);
        PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_1 = 0;
        __pyx_t_8 = 0;
        __pyx_t_4 = 0;
        __pyx_t_4 = PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L20;
      }
      /*else*/ {
 396:                 else:
 397:                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Updating %s to resolve dep.'), requiringPo)
        /* "/home/david/coding/yum/yum/depsolve.pyx":397
 *                                             requiringPo, txmbrs[0].obsoleted_by[0])
 *                 else:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Updating %s to resolve dep.'), requiringPo)             # <<<<<<<<<<<<<<
 *                     # If the requirement is still there, try and solve it again
 *                     # so we don't lose it
 */
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_7 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_41));
        PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_kp_s_41));
        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_41));
        __pyx_t_1 = PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_requiringPo);
        PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_requiringPo);
        __Pyx_GIVEREF(__pyx_v_requiringPo);
        __pyx_t_7 = 0;
        __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 398:                     # If the requirement is still there, try and solve it again
 399:                     # so we don't lose it
 400:                     for pkg in txmbrs[0].updated_by:
        /* "/home/david/coding/yum/yum/depsolve.pyx":400
 *                     # If the requirement is still there, try and solve it again
 *                     # so we don't lose it
 *                     for pkg in txmbrs[0].updated_by:             # <<<<<<<<<<<<<<
 *                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
 */
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_txmbrs, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__updated_by); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (PyList_CheckExact(__pyx_t_8) || PyTuple_CheckExact(__pyx_t_8)) {
          __pyx_t_9 = 0; __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1);
        } else {
          __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        for (;;) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++;
          } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++;
          } else {
            __pyx_t_8 = PyIter_Next(__pyx_t_1);
            if (!__pyx_t_8) {
              if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              break;
            }
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_DECREF(__pyx_v_pkg);
          __pyx_v_pkg = __pyx_t_8;
          __pyx_t_8 = 0;
 401:                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
          /* "/home/david/coding/yum/yum/depsolve.pyx":401
 *                     # so we don't lose it
 *                     for pkg in txmbrs[0].updated_by:
 *                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):             # <<<<<<<<<<<<<<
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
 *                 checkdeps = True
 */
          __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___prco_req2req); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__returnPrco); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_INCREF(((PyObject *)__pyx_n_s__requires));
          PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_n_s__requires));
          __Pyx_GIVEREF(((PyObject *)__pyx_n_s__requires));
          __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_4);
          __pyx_t_8 = 0;
          __pyx_t_4 = 0;
          __pyx_t_4 = PyObject_Call(__pyx_builtin_map, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_5 = ((PySequence_Contains(__pyx_t_4, __pyx_v_requirement))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (__pyx_t_5) {
 402:                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
            /* "/home/david/coding/yum/yum/depsolve.pyx":402
 *                     for pkg in txmbrs[0].updated_by:
 *                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]             # <<<<<<<<<<<<<<
 *                 checkdeps = True
 *                 return checkdeps, missingdep
 */
            __Pyx_XDECREF(__pyx_r);
            __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_30); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_INCREF(__pyx_v_pkg);
            PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pkg);
            __Pyx_GIVEREF(__pyx_v_pkg);
            __Pyx_INCREF(__pyx_v_requirement);
            PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_requirement);
            __Pyx_GIVEREF(__pyx_v_requirement);
            __Pyx_INCREF(__pyx_v_errorlist);
            PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_errorlist);
            __Pyx_GIVEREF(__pyx_v_errorlist);
            __pyx_t_6 = PyObject_Call(__pyx_t_7, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_6, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = PyNumber_Add(__pyx_v_missingdep, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_8);
            PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6);
            __Pyx_GIVEREF(__pyx_t_6);
            __pyx_t_4 = 0;
            __pyx_t_6 = 0;
            __pyx_r = __pyx_t_8;
            __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            goto __pyx_L0;
            goto __pyx_L23;
          }
          __pyx_L23:;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __pyx_L20:;
 403:                 checkdeps = True
      /* "/home/david/coding/yum/yum/depsolve.pyx":403
 *                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
 *                 checkdeps = True             # <<<<<<<<<<<<<<
 *                 return checkdeps, missingdep
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_checkdeps);
      __pyx_v_checkdeps = __pyx_t_1;
      __pyx_t_1 = 0;
 404:                 return checkdeps, missingdep
      /* "/home/david/coding/yum/yum/depsolve.pyx":404
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
 *                 checkdeps = True
 *                 return checkdeps, missingdep             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
 *             return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_checkdeps);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_checkdeps);
      __Pyx_GIVEREF(__pyx_v_checkdeps);
      __Pyx_INCREF(__pyx_v_missingdep);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_missingdep);
      __Pyx_GIVEREF(__pyx_v_missingdep);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
      goto __pyx_L19;
    }
    __pyx_L19:;
 405:             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
    /* "/home/david/coding/yum/yum/depsolve.pyx":405
 *                 checkdeps = True
 *                 return checkdeps, missingdep
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)             # <<<<<<<<<<<<<<
 *             return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_42));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_42));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_42));
    __pyx_t_7 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_niceformatneed);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_niceformatneed);
    __Pyx_GIVEREF(__pyx_v_niceformatneed);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 406:             return self._requiringFromTransaction(requiringPo, requirement, errorlist)
    /* "/home/david/coding/yum/yum/depsolve.pyx":406
 *                 return checkdeps, missingdep
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
 *             return self._requiringFromTransaction(requiringPo, requirement, errorlist)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_30); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __Pyx_INCREF(__pyx_v_requirement);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_requirement);
    __Pyx_GIVEREF(__pyx_v_requirement);
    __Pyx_INCREF(__pyx_v_errorlist);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_errorlist);
    __Pyx_GIVEREF(__pyx_v_errorlist);
    __pyx_t_8 = PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
    goto __pyx_L18;
  }
  __pyx_L18:;
 407: 
 408: 
 409:         if needmode is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":409
 * 
 * 
 *         if needmode is None:             # <<<<<<<<<<<<<<
 *             reqpkg = (name, ver, rel, None)
 *             if self.pkgSack is None:
 */
  __pyx_t_5 = (__pyx_v_needmode == Py_None);
  if (__pyx_t_5) {
 410:             reqpkg = (name, ver, rel, None)
    /* "/home/david/coding/yum/yum/depsolve.pyx":410
 * 
 *         if needmode is None:
 *             reqpkg = (name, ver, rel, None)             # <<<<<<<<<<<<<<
 *             if self.pkgSack is None:
 *                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 */
    __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __Pyx_INCREF(__pyx_v_ver);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_ver);
    __Pyx_GIVEREF(__pyx_v_ver);
    __Pyx_INCREF(__pyx_v_rel);
    PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_rel);
    __Pyx_GIVEREF(__pyx_v_rel);
    __Pyx_INCREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_8, 3, Py_None);
    __Pyx_GIVEREF(Py_None);
    __Pyx_DECREF(__pyx_v_reqpkg);
    __pyx_v_reqpkg = __pyx_t_8;
    __pyx_t_8 = 0;
 411:             if self.pkgSack is None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":411
 *         if needmode is None:
 *             reqpkg = (name, ver, rel, None)
 *             if self.pkgSack is None:             # <<<<<<<<<<<<<<
 *                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 *             else:
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_5 = (__pyx_t_8 == Py_None);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_5) {
 412:                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)
      /* "/home/david/coding/yum/yum/depsolve.pyx":412
 *             reqpkg = (name, ver, rel, None)
 *             if self.pkgSack is None:
 *                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)             # <<<<<<<<<<<<<<
 *             else:
 *                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_30); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_requiringPo);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_requiringPo);
      __Pyx_GIVEREF(__pyx_v_requiringPo);
      __Pyx_INCREF(__pyx_v_requirement);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_requirement);
      __Pyx_GIVEREF(__pyx_v_requirement);
      __Pyx_INCREF(__pyx_v_errorlist);
      PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_errorlist);
      __Pyx_GIVEREF(__pyx_v_errorlist);
      __pyx_t_7 = PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
      goto __pyx_L25;
    }
    /*else*/ {
 413:             else:
 414:                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
      /* "/home/david/coding/yum/yum/depsolve.pyx":414
 *                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 *             else:
 *                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)             # <<<<<<<<<<<<<<
 *                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
 *                                                                prob_pkg)
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__repoid); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_requiringPo);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_requiringPo);
      __Pyx_GIVEREF(__pyx_v_requiringPo);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_43), __pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_7));
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_prob_pkg);
      __pyx_v_prob_pkg = ((PyObject *)__pyx_t_7);
      __pyx_t_7 = 0;
 415:                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
      /* "/home/david/coding/yum/yum/depsolve.pyx":415
 *             else:
 *                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,             # <<<<<<<<<<<<<<
 *                                                                prob_pkg)
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 */
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_44));
      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_44));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_44));
      __pyx_t_8 = PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 416:                                                                prob_pkg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":416
 *                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
 *                                                                prob_pkg)             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                 checkdeps = 0
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_niceformatneed);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_niceformatneed);
      __Pyx_GIVEREF(__pyx_v_niceformatneed);
      __Pyx_INCREF(__pyx_v_prob_pkg);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_prob_pkg);
      __Pyx_GIVEREF(__pyx_v_prob_pkg);
      __pyx_t_7 = PyNumber_Remainder(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_msg);
      __pyx_v_msg = __pyx_t_7;
      __pyx_t_7 = 0;
 417:                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":417
 *                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
 *                                                                prob_pkg)
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)             # <<<<<<<<<<<<<<
 *                 checkdeps = 0
 *                 missingdep = 1
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_msg);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_msg);
      __Pyx_GIVEREF(__pyx_v_msg);
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 418:                 checkdeps = 0
      /* "/home/david/coding/yum/yum/depsolve.pyx":418
 *                                                                prob_pkg)
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                 checkdeps = 0             # <<<<<<<<<<<<<<
 *                 missingdep = 1
 *                 errorlist.append(msg)
 */
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_DECREF(__pyx_v_checkdeps);
      __pyx_v_checkdeps = __pyx_int_0;
 419:                 missingdep = 1
      /* "/home/david/coding/yum/yum/depsolve.pyx":419
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                 checkdeps = 0
 *                 missingdep = 1             # <<<<<<<<<<<<<<
 *                 errorlist.append(msg)
 * 
 */
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_DECREF(__pyx_v_missingdep);
      __pyx_v_missingdep = __pyx_int_1;
 420:                 errorlist.append(msg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":420
 *                 checkdeps = 0
 *                 missingdep = 1
 *                 errorlist.append(msg)             # <<<<<<<<<<<<<<
 * 
 *         return checkdeps, missingdep
 */
      __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_errorlist, __pyx_v_msg); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __pyx_L25:;
    goto __pyx_L24;
  }
  __pyx_L24:;
 421: 
 422:         return checkdeps, missingdep
  /* "/home/david/coding/yum/yum/depsolve.pyx":422
 *                 errorlist.append(msg)
 * 
 *         return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *     def _quickWhatProvides(self, name, flags, version):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_checkdeps);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_checkdeps);
  __Pyx_GIVEREF(__pyx_v_checkdeps);
  __Pyx_INCREF(__pyx_v_missingdep);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_missingdep);
  __Pyx_GIVEREF(__pyx_v_missingdep);
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._requiringFromInstalled");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_checkdeps);
  __Pyx_DECREF(__pyx_v_missingdep);
  __Pyx_DECREF(__pyx_v_name);
  __Pyx_DECREF(__pyx_v_arch);
  __Pyx_DECREF(__pyx_v_epoch);
  __Pyx_DECREF(__pyx_v_ver);
  __Pyx_DECREF(__pyx_v_rel);
  __Pyx_DECREF(__pyx_v_needname);
  __Pyx_DECREF(__pyx_v_needflags);
  __Pyx_DECREF(__pyx_v_needversion);
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __Pyx_DECREF(__pyx_v_needmode);
  __Pyx_DECREF(__pyx_v_needpo);
  __Pyx_DECREF(__pyx_v_providers);
  __Pyx_DECREF(__pyx_v_cheater_po);
  __Pyx_DECREF(__pyx_v_txmbrs);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_DECREF(__pyx_v_inst_po);
  __Pyx_DECREF(__pyx_v_inst_str);
  __Pyx_DECREF(__pyx_v_i_n);
  __Pyx_DECREF(__pyx_v_i_a);
  __Pyx_DECREF(__pyx_v_i_e);
  __Pyx_DECREF(__pyx_v_i_v);
  __Pyx_DECREF(__pyx_v_i_r);
  __Pyx_DECREF(__pyx_v_thismode);
  __Pyx_DECREF(__pyx_v_length);
  __Pyx_DECREF(__pyx_v_pkg);
  __Pyx_DECREF(__pyx_v_reqpkg);
  __Pyx_DECREF(__pyx_v_prob_pkg);
  __Pyx_DECREF(__pyx_v_msg);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 423: 
 424:     def _quickWhatProvides(self, name, flags, version):
/* "/home/david/coding/yum/yum/depsolve.pyx":424
 *         return checkdeps, missingdep
 * 
 *     def _quickWhatProvides(self, name, flags, version):             # <<<<<<<<<<<<<<
 *         if self._last_req is None:
 *             return False
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__quickWhatProvides(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__quickWhatProvides = {__Pyx_NAMESTR("_quickWhatProvides"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__quickWhatProvides, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__quickWhatProvides(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_flags = 0;
  PyObject *__pyx_v_version = 0;
  PyObject *__pyx_v_r_e;
  PyObject *__pyx_v_r_v;
  PyObject *__pyx_v_r_r;
  PyObject *__pyx_v_po;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__flags,&__pyx_n_s__version,0};
  __Pyx_RefNannySetupContext("_quickWhatProvides");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_quickWhatProvides", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__flags);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_quickWhatProvides", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__version);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_quickWhatProvides", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_quickWhatProvides") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_flags = values[2];
    __pyx_v_version = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_flags = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_version = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_quickWhatProvides", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._quickWhatProvides");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_flags);
  __pyx_v_r_e = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":424
 *         return checkdeps, missingdep
 * 
 *     def _quickWhatProvides(self, name, flags, version):             # <<<<<<<<<<<<<<
 *         if self._last_req is None:
 *             return False
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__quickWhatProvides, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___quickWhatProvides, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 425:         if self._last_req is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":425
 * 
 *     def _quickWhatProvides(self, name, flags, version):
 *         if self._last_req is None:             # <<<<<<<<<<<<<<
 *             return False
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___last_req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
 426:             return False
    /* "/home/david/coding/yum/yum/depsolve.pyx":426
 *     def _quickWhatProvides(self, name, flags, version):
 *         if self._last_req is None:
 *             return False             # <<<<<<<<<<<<<<
 * 
 *         if flags == 0:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 427: 
 428:         if flags == 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":428
 *             return False
 * 
 *         if flags == 0:             # <<<<<<<<<<<<<<
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_flags, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
 429:             flags = None
    /* "/home/david/coding/yum/yum/depsolve.pyx":429
 * 
 *         if flags == 0:
 *             flags = None             # <<<<<<<<<<<<<<
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 */
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = Py_None;
    goto __pyx_L7;
  }
  __pyx_L7:;
 430:         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
  /* "/home/david/coding/yum/yum/depsolve.pyx":430
 *         if flags == 0:
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):             # <<<<<<<<<<<<<<
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_version)));
  __pyx_t_1 = ((PyObject *)Py_TYPE(__pyx_v_version));
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__StringType); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_1), __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = __pyx_t_2;
  if (!__pyx_t_5) {
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__NoneType); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_1), __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = __pyx_t_2;
    __pyx_t_2 = __pyx_t_6;
  } else {
    __pyx_t_2 = __pyx_t_5;
  }
  if (!__pyx_t_2) {
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__UnicodeType); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_1), __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = __pyx_t_5;
    __pyx_t_5 = __pyx_t_6;
  } else {
    __pyx_t_5 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_5;
  if (__pyx_t_2) {
 431:             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
    /* "/home/david/coding/yum/yum/depsolve.pyx":431
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)             # <<<<<<<<<<<<<<
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 *             (r_e, r_v, r_r) = version
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__stringToVersion); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_version);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_version);
    __Pyx_GIVEREF(__pyx_v_version);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (PyTuple_CheckExact(__pyx_t_4) && likely(PyTuple_GET_SIZE(__pyx_t_4) == 3)) {
      PyObject* tuple = __pyx_t_4;
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_1);
      __pyx_t_7 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_7;
      __pyx_t_7 = 0;
    } else {
      __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_8, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_8, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_8, 2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_EndUnpack(__pyx_t_8, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_7;
      __pyx_t_7 = 0;
    }
    goto __pyx_L8;
  }
 432:         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
  /* "/home/david/coding/yum/yum/depsolve.pyx":432
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?             # <<<<<<<<<<<<<<
 *             (r_e, r_v, r_r) = version
 * 
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_version)));
  __pyx_t_4 = ((PyObject *)Py_TYPE(__pyx_v_version));
  __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__TupleType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_t_4), __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_5 = __pyx_t_2;
  if (!__pyx_t_5) {
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__ListType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_t_4), __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_6 = __pyx_t_2;
    __pyx_t_2 = __pyx_t_6;
  } else {
    __pyx_t_2 = __pyx_t_5;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __pyx_t_2;
  if (__pyx_t_5) {
 433:             (r_e, r_v, r_r) = version
    /* "/home/david/coding/yum/yum/depsolve.pyx":433
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 *             (r_e, r_v, r_r) = version             # <<<<<<<<<<<<<<
 * 
 *         # Quick lookup, lots of reqs for one pkg:
 */
    if (PyTuple_CheckExact(__pyx_v_version) && likely(PyTuple_GET_SIZE(__pyx_v_version) == 3)) {
      PyObject* tuple = __pyx_v_version;
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
      __pyx_t_7 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_7);
      __pyx_t_1 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_7;
      __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_1;
      __pyx_t_1 = 0;
    } else {
      __pyx_t_3 = PyObject_GetIter(__pyx_v_version); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_3, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_3, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_3, 2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_EndUnpack(__pyx_t_3, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_7;
      __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    goto __pyx_L8;
  }
  __pyx_L8:;
 434: 
 435:         # Quick lookup, lots of reqs for one pkg:
 436:         po = self._last_req
  /* "/home/david/coding/yum/yum/depsolve.pyx":436
 * 
 *         # Quick lookup, lots of reqs for one pkg:
 *         po = self._last_req             # <<<<<<<<<<<<<<
 *         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___last_req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_po);
  __pyx_v_po = __pyx_t_1;
  __pyx_t_1 = 0;
 437:         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
  /* "/home/david/coding/yum/yum/depsolve.pyx":437
 *         # Quick lookup, lots of reqs for one pkg:
 *         po = self._last_req
 *         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):             # <<<<<<<<<<<<<<
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
 *             return True
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__checkPrco); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_r_e);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_r_e);
  __Pyx_GIVEREF(__pyx_v_r_e);
  __Pyx_INCREF(__pyx_v_r_v);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_r_v);
  __Pyx_GIVEREF(__pyx_v_r_v);
  __Pyx_INCREF(__pyx_v_r_r);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_r_r);
  __Pyx_GIVEREF(__pyx_v_r_r);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __Pyx_INCREF(__pyx_v_flags);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_flags);
  __Pyx_GIVEREF(__pyx_v_flags);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__provides));
  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_n_s__provides));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__provides));
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_5) {
 438:             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
    /* "/home/david/coding/yum/yum/depsolve.pyx":438
 *         po = self._last_req
 *         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)             # <<<<<<<<<<<<<<
 *             return True
 *         return False
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__debug); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_45));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_45));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_45));
    __pyx_t_3 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_po);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_po);
    __Pyx_GIVEREF(__pyx_v_po);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 439:             return True
    /* "/home/david/coding/yum/yum/depsolve.pyx":439
 *         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
 *             return True             # <<<<<<<<<<<<<<
 *         return False
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L9;
  }
  __pyx_L9:;
 440:         return False
  /* "/home/david/coding/yum/yum/depsolve.pyx":440
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
 *             return True
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def _requiringFromTransaction(self, requiringPo, requirement, errorlist):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._quickWhatProvides");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_r_e);
  __Pyx_DECREF(__pyx_v_r_v);
  __Pyx_DECREF(__pyx_v_r_r);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_flags);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 441: 
 442:     def _requiringFromTransaction(self, requiringPo, requirement, errorlist):
/* "/home/david/coding/yum/yum/depsolve.pyx":442
 *         return False
 * 
 *     def _requiringFromTransaction(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where requiring
 *            package is in the transaction set"""
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromTransaction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__requiringFromTransaction[] = "processes the dependency resolution for a dep where requiring \n           package is in the transaction set";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__requiringFromTransaction = {__Pyx_NAMESTR("_requiringFromTransaction"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromTransaction, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__requiringFromTransaction)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromTransaction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction *__pyx_cur_scope;
  PyObject *__pyx_v_requiringPo = 0;
  PyObject *__pyx_v_requirement = 0;
  PyObject *__pyx_v_errorlist = 0;
  PyObject *__pyx_v_name;
  PyObject *__pyx_v_arch;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_version;
  PyObject *__pyx_v_release;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_needflags;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_checkdeps;
  PyObject *__pyx_v_missingdep;
  PyObject *__pyx_v_upgraded;
  PyObject *__pyx_v_provSack;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_tspkgs;
  PyObject *__pyx_v_tspkg;
  PyObject *__pyx_v_msg;
  PyObject *__pyx_v_dbpkgs;
  PyObject *__pyx_v_dbpkg;
  PyObject *__pyx_v_prob_pkg;
  PyObject *__pyx_v_n;
  PyObject *__pyx_v_a;
  PyObject *__pyx_v_e;
  PyObject *__pyx_v_v;
  PyObject *__pyx_v_r;
  PyObject *__pyx_v_pkgmode;
  PyObject *__pyx_v_results;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_newest;
  PyObject *__pyx_v_pkgresults;
  PyObject *__pyx_v_best;
  PyObject *__pyx_v_inst;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__requiringPo,&__pyx_n_s__requirement,&__pyx_n_s__errorlist,0};
  __Pyx_RefNannySetupContext("_requiringFromTransaction");
  __pyx_cur_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction *)__pyx_ptype_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction->tp_new(__pyx_ptype_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_cur_scope);
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requiringPo);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromTransaction", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requirement);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromTransaction", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorlist);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromTransaction", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_requiringFromTransaction") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_cur_scope->__pyx_v_self = values[0];
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_requiringPo = values[1];
    __pyx_v_requirement = values[2];
    __pyx_v_errorlist = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_cur_scope->__pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_requiringPo = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_requirement = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_errorlist = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_requiringFromTransaction", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._requiringFromTransaction");
  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_self = 0;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_name = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_arch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_epoch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_version = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_release = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needname = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needflags = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needversion = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_checkdeps = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missingdep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_upgraded = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_provSack = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_tspkgs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_tspkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_msg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_dbpkgs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_dbpkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_prob_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_n = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_a = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_e = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkgmode = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_results = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_newest = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkgresults = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_best = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_inst = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":442
 *         return False
 * 
 *     def _requiringFromTransaction(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where requiring
 *            package is in the transaction set"""
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__requiringFromTransaction, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s_30, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 443:         """processes the dependency resolution for a dep where requiring
 444:            package is in the transaction set"""
 445: 
 446:         (name, arch, epoch, version, release) = requiringPo.pkgtup
  /* "/home/david/coding/yum/yum/depsolve.pyx":446
 *            package is in the transaction set"""
 * 
 *         (name, arch, epoch, version, release) = requiringPo.pkgtup             # <<<<<<<<<<<<<<
 *         (needname, needflags, needversion) = requirement
 *         checkdeps = 0
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyTuple_CheckExact(__pyx_t_1) && likely(PyTuple_GET_SIZE(__pyx_t_1) == 5)) {
    PyObject* tuple = __pyx_t_1;
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_version);
    __pyx_v_version = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_release);
    __pyx_v_release = __pyx_t_6;
    __pyx_t_6 = 0;
  } else {
    __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_7, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_7, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_7, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_7, 3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_7, 4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_EndUnpack(__pyx_t_7, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_version);
    __pyx_v_version = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_release);
    __pyx_v_release = __pyx_t_6;
    __pyx_t_6 = 0;
  }
 447:         (needname, needflags, needversion) = requirement
  /* "/home/david/coding/yum/yum/depsolve.pyx":447
 * 
 *         (name, arch, epoch, version, release) = requiringPo.pkgtup
 *         (needname, needflags, needversion) = requirement             # <<<<<<<<<<<<<<
 *         checkdeps = 0
 *         missingdep = 0
 */
  if (PyTuple_CheckExact(__pyx_v_requirement) && likely(PyTuple_GET_SIZE(__pyx_v_requirement) == 3)) {
    PyObject* tuple = __pyx_v_requirement;
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_needflags);
    __pyx_v_needflags = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_5;
    __pyx_t_5 = 0;
  } else {
    __pyx_t_4 = PyObject_GetIter(__pyx_v_requirement); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_needflags);
    __pyx_v_needflags = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_5;
    __pyx_t_5 = 0;
  }
 448:         checkdeps = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":448
 *         (name, arch, epoch, version, release) = requiringPo.pkgtup
 *         (needname, needflags, needversion) = requirement
 *         checkdeps = 0             # <<<<<<<<<<<<<<
 *         missingdep = 0
 *         upgraded = {}
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_checkdeps);
  __pyx_v_checkdeps = __pyx_int_0;
 449:         missingdep = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":449
 *         (needname, needflags, needversion) = requirement
 *         checkdeps = 0
 *         missingdep = 0             # <<<<<<<<<<<<<<
 *         upgraded = {}
 * 
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_missingdep);
  __pyx_v_missingdep = __pyx_int_0;
 450:         upgraded = {}
  /* "/home/david/coding/yum/yum/depsolve.pyx":450
 *         checkdeps = 0
 *         missingdep = 0
 *         upgraded = {}             # <<<<<<<<<<<<<<
 * 
 *         #~ - if it's not available from some repository:
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_DECREF(__pyx_v_upgraded);
  __pyx_v_upgraded = ((PyObject *)__pyx_t_5);
  __pyx_t_5 = 0;
 451: 
 452:         #~ - if it's not available from some repository:
 453:         #~     - mark as unresolveable.
 454:         #
 455:         #~ - if it's available from some repo:
 456:         #~    - if there is an another version of the package currently installed then
 457:         #        - if the other version is marked in the transaction set
 458:         #           - if it's marked as erase
 459:         #              - mark the dep as unresolveable
 460: 
 461:         #           - if it's marked as update or install
 462:         #              - check if the version for this requirement:
 463:         #                  - if it is higher
 464:         #                       - mark this version to be updated/installed
 465:         #                       - remove the other version from the transaction set
 466:         #                       - tell the transaction set to be rebuilt
 467:         #                  - if it is lower
 468:         #                       - mark the dep as unresolveable
 469:         #                   - if they are the same
 470:         #                       - be confused but continue
 471: 
 472:         if self._quickWhatProvides(needname, needflags, needversion):
  /* "/home/david/coding/yum/yum/depsolve.pyx":472
 *         #                       - be confused but continue
 * 
 *         if self._quickWhatProvides(needname, needflags, needversion):             # <<<<<<<<<<<<<<
 *             return checkdeps, missingdep
 * 
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___quickWhatProvides); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needflags);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_needflags);
  __Pyx_GIVEREF(__pyx_v_needflags);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __pyx_t_1 = PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {
 473:             return checkdeps, missingdep
    /* "/home/david/coding/yum/yum/depsolve.pyx":473
 * 
 *         if self._quickWhatProvides(needname, needflags, needversion):
 *             return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         provSack = self.whatProvides(needname, needflags, needversion)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_checkdeps);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_checkdeps);
    __Pyx_GIVEREF(__pyx_v_checkdeps);
    __Pyx_INCREF(__pyx_v_missingdep);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_missingdep);
    __Pyx_GIVEREF(__pyx_v_missingdep);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 474: 
 475:         provSack = self.whatProvides(needname, needflags, needversion)
  /* "/home/david/coding/yum/yum/depsolve.pyx":475
 *             return checkdeps, missingdep
 * 
 *         provSack = self.whatProvides(needname, needflags, needversion)             # <<<<<<<<<<<<<<
 *         # get rid of things that are already in the rpmdb - b/c it's pointless to use them here
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__whatProvides); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needflags);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_needflags);
  __Pyx_GIVEREF(__pyx_v_needflags);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_v_provSack);
  __pyx_v_provSack = __pyx_t_5;
  __pyx_t_5 = 0;
 476:         # get rid of things that are already in the rpmdb - b/c it's pointless to use them here
 477: 
 478:         for pkg in provSack.returnPackages():
  /* "/home/david/coding/yum/yum/depsolve.pyx":478
 *         # get rid of things that are already in the rpmdb - b/c it's pointless to use them here
 * 
 *         for pkg in provSack.returnPackages():             # <<<<<<<<<<<<<<
 *             if self.rpmdb.contains(po=pkg): # is it already installed?
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__returnPackages); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_9 = 0; __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5);
  } else {
    __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_5))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_5))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++;
    } else {
      __pyx_t_6 = PyIter_Next(__pyx_t_5);
      if (!__pyx_t_6) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_DECREF(__pyx_v_pkg);
    __pyx_v_pkg = __pyx_t_6;
    __pyx_t_6 = 0;
 479:             if self.rpmdb.contains(po=pkg): # is it already installed?
    /* "/home/david/coding/yum/yum/depsolve.pyx":479
 * 
 *         for pkg in provSack.returnPackages():
 *             if self.rpmdb.contains(po=pkg): # is it already installed?             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
 *                 provSack.delPackage(pkg)
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__contains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__po), __pyx_v_pkg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_8) {
 480:                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":480
 *         for pkg in provSack.returnPackages():
 *             if self.rpmdb.contains(po=pkg): # is it already installed?
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)             # <<<<<<<<<<<<<<
 *                 provSack.delPackage(pkg)
 *                 continue
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_46));
      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_46));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_46));
      __pyx_t_2 = PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_pkg);
      PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_pkg);
      __Pyx_GIVEREF(__pyx_v_pkg);
      __pyx_t_1 = 0;
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 481:                 provSack.delPackage(pkg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":481
 *             if self.rpmdb.contains(po=pkg): # is it already installed?
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
 *                 provSack.delPackage(pkg)             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__delPackage); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pkg);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pkg);
      __Pyx_GIVEREF(__pyx_v_pkg);
      __pyx_t_6 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 482:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":482
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
 *                 provSack.delPackage(pkg)
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             # we need to check to see, if we have anything similar to it (name-wise)
 */
      goto __pyx_L7_continue;
      goto __pyx_L9;
    }
    __pyx_L9:;
 483: 
 484:             # we need to check to see, if we have anything similar to it (name-wise)
 485:             # installed or in the ts, and this isn't a package that allows multiple installs
 486:             # then if it's newer, fine - continue on, if not, then we're unresolveable
 487:             # cite it and exit
 488: 
 489:             tspkgs = []
    /* "/home/david/coding/yum/yum/depsolve.pyx":489
 *             # cite it and exit
 * 
 *             tspkgs = []             # <<<<<<<<<<<<<<
 *             if not self.allowedMultipleInstalls(pkg):
 *                 # from ts
 */
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_DECREF(__pyx_v_tspkgs);
    __pyx_v_tspkgs = ((PyObject *)__pyx_t_6);
    __pyx_t_6 = 0;
 490:             if not self.allowedMultipleInstalls(pkg):
    /* "/home/david/coding/yum/yum/depsolve.pyx":490
 * 
 *             tspkgs = []
 *             if not self.allowedMultipleInstalls(pkg):             # <<<<<<<<<<<<<<
 *                 # from ts
 *                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_25); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pkg);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pkg);
    __Pyx_GIVEREF(__pyx_v_pkg);
    __pyx_t_2 = PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_10 = (!__pyx_t_8);
    if (__pyx_t_10) {
 491:                 # from ts
 492:                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)
      /* "/home/david/coding/yum/yum/depsolve.pyx":492
 *             if not self.allowedMultipleInstalls(pkg):
 *                 # from ts
 *                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)             # <<<<<<<<<<<<<<
 *                 for tspkg in tspkgs:
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__matchNaevr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_tspkgs);
      __pyx_v_tspkgs = __pyx_t_6;
      __pyx_t_6 = 0;
 493:                 for tspkg in tspkgs:
      /* "/home/david/coding/yum/yum/depsolve.pyx":493
 *                 # from ts
 *                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)
 *                 for tspkg in tspkgs:             # <<<<<<<<<<<<<<
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
 *                         if tspkg.po.verGT(pkg):
 */
      if (PyList_CheckExact(__pyx_v_tspkgs) || PyTuple_CheckExact(__pyx_v_tspkgs)) {
        __pyx_t_11 = 0; __pyx_t_6 = __pyx_v_tspkgs; __Pyx_INCREF(__pyx_t_6);
      } else {
        __pyx_t_11 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_tspkgs); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
      }
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_2); __pyx_t_11++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_6))) {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_2); __pyx_t_11++;
        } else {
          __pyx_t_2 = PyIter_Next(__pyx_t_6);
          if (!__pyx_t_2) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_DECREF(__pyx_v_tspkg);
        __pyx_v_tspkg = __pyx_t_2;
        __pyx_t_2 = 0;
 494:                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
        /* "/home/david/coding/yum/yum/depsolve.pyx":494
 *                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)
 *                 for tspkg in tspkgs:
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch             # <<<<<<<<<<<<<<
 *                         if tspkg.po.verGT(pkg):
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
 */
        __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__canCoinstall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__arch); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_tspkg, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__arch); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_3 = 0;
        __pyx_t_4 = 0;
        __pyx_t_4 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_8 = (!__pyx_t_10);
        if (__pyx_t_8) {
 495:                         if tspkg.po.verGT(pkg):
          /* "/home/david/coding/yum/yum/depsolve.pyx":495
 *                 for tspkg in tspkgs:
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
 *                         if tspkg.po.verGT(pkg):             # <<<<<<<<<<<<<<
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 */
          __pyx_t_4 = PyObject_GetAttr(__pyx_v_tspkg, __pyx_n_s__po); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__verGT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_INCREF(__pyx_v_pkg);
          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pkg);
          __Pyx_GIVEREF(__pyx_v_pkg);
          __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_8) {
 496:                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
            /* "/home/david/coding/yum/yum/depsolve.pyx":496
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
 *                         if tspkg.po.verGT(pkg):
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg             # <<<<<<<<<<<<<<
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                             provSack.delPackage(pkg)
 */
            __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_INCREF(((PyObject *)__pyx_kp_s_47));
            PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_47));
            __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_47));
            __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = PyNumber_Remainder(__pyx_t_1, __pyx_v_pkg); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_v_msg);
            __pyx_v_msg = __pyx_t_4;
            __pyx_t_4 = 0;
 497:                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
            /* "/home/david/coding/yum/yum/depsolve.pyx":497
 *                         if tspkg.po.verGT(pkg):
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)             # <<<<<<<<<<<<<<
 *                             provSack.delPackage(pkg)
 *                             continue
 */
            __pyx_t_4 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_INCREF(__pyx_v_msg);
            PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_msg);
            __Pyx_GIVEREF(__pyx_v_msg);
            __pyx_t_2 = 0;
            __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 498:                             provSack.delPackage(pkg)
            /* "/home/david/coding/yum/yum/depsolve.pyx":498
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                             provSack.delPackage(pkg)             # <<<<<<<<<<<<<<
 *                             continue
 *                         elif tspkg.po.verLT(pkg):
 */
            __pyx_t_2 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__delPackage); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_INCREF(__pyx_v_pkg);
            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pkg);
            __Pyx_GIVEREF(__pyx_v_pkg);
            __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 499:                             continue
            /* "/home/david/coding/yum/yum/depsolve.pyx":499
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                             provSack.delPackage(pkg)
 *                             continue             # <<<<<<<<<<<<<<
 *                         elif tspkg.po.verLT(pkg):
 *                             upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)
 */
            goto __pyx_L11_continue;
            goto __pyx_L14;
          }
 500:                         elif tspkg.po.verLT(pkg):
          /* "/home/david/coding/yum/yum/depsolve.pyx":500
 *                             provSack.delPackage(pkg)
 *                             continue
 *                         elif tspkg.po.verLT(pkg):             # <<<<<<<<<<<<<<
 *                             upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)
 * 
 */
          __pyx_t_1 = PyObject_GetAttr(__pyx_v_tspkg, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__verLT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(__pyx_v_pkg);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pkg);
          __Pyx_GIVEREF(__pyx_v_pkg);
          __pyx_t_2 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_8) {
 501:                             upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)
            /* "/home/david/coding/yum/yum/depsolve.pyx":501
 *                             continue
 *                         elif tspkg.po.verLT(pkg):
 *                             upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)             # <<<<<<<<<<<<<<
 * 
 *                 # from rpmdb
 */
            __pyx_t_2 = PyObject_GetAttr(__pyx_v_upgraded, __pyx_n_s__setdefault); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_1 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_4));
            __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_1);
            PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_t_4));
            __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
            __pyx_t_1 = 0;
            __pyx_t_4 = 0;
            __pyx_t_4 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = PyObject_GetAttr(__pyx_v_tspkg, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            goto __pyx_L14;
          }
          __pyx_L14:;
          goto __pyx_L13;
        }
        __pyx_L13:;
        __pyx_L11_continue:;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 502: 
 503:                 # from rpmdb
 504:                 dbpkgs = self.rpmdb.searchNevra(name=pkg.name)
      /* "/home/david/coding/yum/yum/depsolve.pyx":504
 * 
 *                 # from rpmdb
 *                 dbpkgs = self.rpmdb.searchNevra(name=pkg.name)             # <<<<<<<<<<<<<<
 *                 for dbpkg in dbpkgs:
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
 */
      __pyx_t_6 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__searchNevra); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_v_dbpkgs);
      __pyx_v_dbpkgs = __pyx_t_3;
      __pyx_t_3 = 0;
 505:                 for dbpkg in dbpkgs:
      /* "/home/david/coding/yum/yum/depsolve.pyx":505
 *                 # from rpmdb
 *                 dbpkgs = self.rpmdb.searchNevra(name=pkg.name)
 *                 for dbpkg in dbpkgs:             # <<<<<<<<<<<<<<
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
 */
      if (PyList_CheckExact(__pyx_v_dbpkgs) || PyTuple_CheckExact(__pyx_v_dbpkgs)) {
        __pyx_t_11 = 0; __pyx_t_3 = __pyx_v_dbpkgs; __Pyx_INCREF(__pyx_t_3);
      } else {
        __pyx_t_11 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_dbpkgs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
      }
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_3)) break;
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++;
        } else {
          __pyx_t_6 = PyIter_Next(__pyx_t_3);
          if (!__pyx_t_6) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_DECREF(__pyx_v_dbpkg);
        __pyx_v_dbpkg = __pyx_t_6;
        __pyx_t_6 = 0;
 506:                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
        /* "/home/david/coding/yum/yum/depsolve.pyx":506
 *                 dbpkgs = self.rpmdb.searchNevra(name=pkg.name)
 *                 for dbpkg in dbpkgs:
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):             # <<<<<<<<<<<<<<
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 */
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_dbpkg, __pyx_n_s__verGT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_pkg);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pkg);
        __Pyx_GIVEREF(__pyx_v_pkg);
        __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_8) {
          __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__canCoinstall); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_2 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__arch); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_dbpkg, __pyx_n_s__arch); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
          __Pyx_GIVEREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_6);
          __pyx_t_2 = 0;
          __pyx_t_6 = 0;
          __pyx_t_6 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_12 = (!__pyx_t_10);
          __pyx_t_10 = __pyx_t_12;
        } else {
          __pyx_t_10 = __pyx_t_8;
        }
        if (__pyx_t_10) {
 507:                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
          /* "/home/david/coding/yum/yum/depsolve.pyx":507
 *                 for dbpkg in dbpkgs:
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg             # <<<<<<<<<<<<<<
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                         provSack.delPackage(pkg)
 */
          __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(((PyObject *)__pyx_kp_s_48));
          PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_48));
          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_48));
          __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_Remainder(__pyx_t_4, __pyx_v_pkg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_v_msg);
          __pyx_v_msg = __pyx_t_1;
          __pyx_t_1 = 0;
 508:                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
          /* "/home/david/coding/yum/yum/depsolve.pyx":508
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)             # <<<<<<<<<<<<<<
 *                         provSack.delPackage(pkg)
 *                         continue
 */
          __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_v_msg);
          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_msg);
          __Pyx_GIVEREF(__pyx_v_msg);
          __pyx_t_6 = 0;
          __pyx_t_6 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 509:                         provSack.delPackage(pkg)
          /* "/home/david/coding/yum/yum/depsolve.pyx":509
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                         provSack.delPackage(pkg)             # <<<<<<<<<<<<<<
 *                         continue
 * 
 */
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__delPackage); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(__pyx_v_pkg);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pkg);
          __Pyx_GIVEREF(__pyx_v_pkg);
          __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 510:                         continue
          /* "/home/david/coding/yum/yum/depsolve.pyx":510
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                         provSack.delPackage(pkg)
 *                         continue             # <<<<<<<<<<<<<<
 * 
 *         if len(provSack) == 0: # unresolveable
 */
          goto __pyx_L15_continue;
          goto __pyx_L17;
        }
        __pyx_L17:;
        __pyx_L15_continue:;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L10;
    }
    __pyx_L10:;
    __pyx_L7_continue:;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 511: 
 512:         if len(provSack) == 0: # unresolveable
  /* "/home/david/coding/yum/yum/depsolve.pyx":512
 *                         continue
 * 
 *         if len(provSack) == 0: # unresolveable             # <<<<<<<<<<<<<<
 *             missingdep = 1
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_provSack); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_10 = (__pyx_t_9 == 0);
  if (__pyx_t_10) {
 513:             missingdep = 1
    /* "/home/david/coding/yum/yum/depsolve.pyx":513
 * 
 *         if len(provSack) == 0: # unresolveable
 *             missingdep = 1             # <<<<<<<<<<<<<<
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % \
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF(__pyx_v_missingdep);
    __pyx_v_missingdep = __pyx_int_1;
 514:             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
    /* "/home/david/coding/yum/yum/depsolve.pyx":514
 *         if len(provSack) == 0: # unresolveable
 *             missingdep = 1
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)             # <<<<<<<<<<<<<<
 *             msg = _('Missing Dependency: %s is needed by package %s') % \
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__repoid); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_43), __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_prob_pkg);
    __pyx_v_prob_pkg = ((PyObject *)__pyx_t_5);
    __pyx_t_5 = 0;
 515:             msg = _('Missing Dependency: %s is needed by package %s') % \
    /* "/home/david/coding/yum/yum/depsolve.pyx":515
 *             missingdep = 1
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % \             # <<<<<<<<<<<<<<
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
 *                                                                    prob_pkg)
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_49));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_49));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_49));
    __pyx_t_4 = PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 516:             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
    /* "/home/david/coding/yum/yum/depsolve.pyx":516
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % \
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),             # <<<<<<<<<<<<<<
 *                                                                    prob_pkg)
 *             errorlist.append(msg)
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__formatRequire); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __Pyx_INCREF(__pyx_v_needversion);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_needversion);
    __Pyx_GIVEREF(__pyx_v_needversion);
    __Pyx_INCREF(__pyx_v_needflags);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_needflags);
    __Pyx_GIVEREF(__pyx_v_needflags);
    __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 517:                                                                    prob_pkg)
    /* "/home/david/coding/yum/yum/depsolve.pyx":517
 *             msg = _('Missing Dependency: %s is needed by package %s') % \
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
 *                                                                    prob_pkg)             # <<<<<<<<<<<<<<
 *             errorlist.append(msg)
 *             return checkdeps, missingdep
 */
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_prob_pkg);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_prob_pkg);
    __Pyx_GIVEREF(__pyx_v_prob_pkg);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Remainder(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_msg);
    __pyx_v_msg = __pyx_t_1;
    __pyx_t_1 = 0;
 518:             errorlist.append(msg)
    /* "/home/david/coding/yum/yum/depsolve.pyx":518
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
 *                                                                    prob_pkg)
 *             errorlist.append(msg)             # <<<<<<<<<<<<<<
 *             return checkdeps, missingdep
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_errorlist, __pyx_v_msg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 519:             return checkdeps, missingdep
    /* "/home/david/coding/yum/yum/depsolve.pyx":519
 *                                                                    prob_pkg)
 *             errorlist.append(msg)
 *             return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         # iterate the provSack briefly, if we find the package is already in the
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_checkdeps);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_checkdeps);
    __Pyx_GIVEREF(__pyx_v_checkdeps);
    __Pyx_INCREF(__pyx_v_missingdep);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_missingdep);
    __Pyx_GIVEREF(__pyx_v_missingdep);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L18;
  }
  __pyx_L18:;
 520: 
 521:         # iterate the provSack briefly, if we find the package is already in the
 522:         # tsInfo then just skip this run
 523:         for pkg in provSack.returnPackages():
  /* "/home/david/coding/yum/yum/depsolve.pyx":523
 *         # iterate the provSack briefly, if we find the package is already in the
 *         # tsInfo then just skip this run
 *         for pkg in provSack.returnPackages():             # <<<<<<<<<<<<<<
 *             (n,a,e,v,r) = pkg.pkgtup
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__returnPackages); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_9 = 0; __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_1))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++;
    } else {
      __pyx_t_5 = PyIter_Next(__pyx_t_1);
      if (!__pyx_t_5) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF(__pyx_v_pkg);
    __pyx_v_pkg = __pyx_t_5;
    __pyx_t_5 = 0;
 524:             (n,a,e,v,r) = pkg.pkgtup
    /* "/home/david/coding/yum/yum/depsolve.pyx":524
 *         # tsInfo then just skip this run
 *         for pkg in provSack.returnPackages():
 *             (n,a,e,v,r) = pkg.pkgtup             # <<<<<<<<<<<<<<
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
 *             if pkgmode in ['i', 'u']:
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyTuple_CheckExact(__pyx_t_5) && likely(PyTuple_GET_SIZE(__pyx_t_5) == 5)) {
      PyObject* tuple = __pyx_t_5;
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_3);
      __pyx_t_6 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_6);
      __pyx_t_2 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_2);
      __pyx_t_7 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_v_n);
      __pyx_v_n = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_a);
      __pyx_v_a = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_e);
      __pyx_v_e = __pyx_t_6;
      __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_v_v);
      __pyx_v_v = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r);
      __pyx_v_r = __pyx_t_7;
      __pyx_t_7 = 0;
    } else {
      __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_13, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_13, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_13, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_13, 3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_13, 4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_EndUnpack(__pyx_t_13, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_v_n);
      __pyx_v_n = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_a);
      __pyx_v_a = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_e);
      __pyx_v_e = __pyx_t_6;
      __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_v_v);
      __pyx_v_v = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r);
      __pyx_v_r = __pyx_t_7;
      __pyx_t_7 = 0;
    }
 525:             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
    /* "/home/david/coding/yum/yum/depsolve.pyx":525
 *         for pkg in provSack.returnPackages():
 *             (n,a,e,v,r) = pkg.pkgtup
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)             # <<<<<<<<<<<<<<
 *             if pkgmode in ['i', 'u']:
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__getMode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__name), __pyx_v_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__arch), __pyx_v_a) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__epoch), __pyx_v_e) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__ver), __pyx_v_v) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__rel), __pyx_v_r) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_pkgmode);
    __pyx_v_pkgmode = __pyx_t_2;
    __pyx_t_2 = 0;
 526:             if pkgmode in ['i', 'u']:
    /* "/home/david/coding/yum/yum/depsolve.pyx":526
 *             (n,a,e,v,r) = pkg.pkgtup
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
 *             if pkgmode in ['i', 'u']:             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 *                     _('%s already in ts, skipping this one'), pkg)
 */
    __Pyx_INCREF(__pyx_v_pkgmode);
    __pyx_t_2 = __pyx_v_pkgmode;
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_n_s__i), Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_8 = __pyx_t_10;
    if (!__pyx_t_8) {
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_12 = __pyx_t_10;
      __pyx_t_10 = __pyx_t_12;
    } else {
      __pyx_t_10 = __pyx_t_8;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_8 = __pyx_t_10;
    if (__pyx_t_8) {
 527:                 self.verbose_logger.log(logginglevels.DEBUG_2,
      /* "/home/david/coding/yum/yum/depsolve.pyx":527
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
 *             if pkgmode in ['i', 'u']:
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                     _('%s already in ts, skipping this one'), pkg)
 *                 # FIXME: Remove this line, if it is not needed ?
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__log); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 528:                     _('%s already in ts, skipping this one'), pkg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":528
 *             if pkgmode in ['i', 'u']:
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 *                     _('%s already in ts, skipping this one'), pkg)             # <<<<<<<<<<<<<<
 *                 # FIXME: Remove this line, if it is not needed ?
 *                 # checkdeps = 1
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_50));
      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_s_50));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_50));
      __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pkg);
      PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_pkg);
      __Pyx_GIVEREF(__pyx_v_pkg);
      __pyx_t_7 = 0;
      __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 529:                 # FIXME: Remove this line, if it is not needed ?
 530:                 # checkdeps = 1
 531:                 self._last_req = pkg
      /* "/home/david/coding/yum/yum/depsolve.pyx":531
 *                 # FIXME: Remove this line, if it is not needed ?
 *                 # checkdeps = 1
 *                 self._last_req = pkg             # <<<<<<<<<<<<<<
 *                 return checkdeps, missingdep
 * 
 */
      if (PyObject_SetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___last_req, __pyx_v_pkg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 532:                 return checkdeps, missingdep
      /* "/home/david/coding/yum/yum/depsolve.pyx":532
 *                 # checkdeps = 1
 *                 self._last_req = pkg
 *                 return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         # find the best one
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_checkdeps);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_checkdeps);
      __Pyx_GIVEREF(__pyx_v_checkdeps);
      __Pyx_INCREF(__pyx_v_missingdep);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_missingdep);
      __Pyx_GIVEREF(__pyx_v_missingdep);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
      goto __pyx_L21;
    }
    __pyx_L21:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 533: 
 534:         # find the best one
 535: 
 536:         # try updating the already install pkgs
 537:         for pkg in provSack.returnNewestByName():
  /* "/home/david/coding/yum/yum/depsolve.pyx":537
 * 
 *         # try updating the already install pkgs
 *         for pkg in provSack.returnNewestByName():             # <<<<<<<<<<<<<<
 *             results = self.update(requiringPo=requiringPo, name=pkg.name,
 *                                   epoch=pkg.epoch, version=pkg.version,
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__returnNewestByName); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_9 = 0; __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_1))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_1);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_pkg);
    __pyx_v_pkg = __pyx_t_3;
    __pyx_t_3 = 0;
 538:             results = self.update(requiringPo=requiringPo, name=pkg.name,
    /* "/home/david/coding/yum/yum/depsolve.pyx":538
 *         # try updating the already install pkgs
 *         for pkg in provSack.returnNewestByName():
 *             results = self.update(requiringPo=requiringPo, name=pkg.name,             # <<<<<<<<<<<<<<
 *                                   epoch=pkg.epoch, version=pkg.version,
 *                                   rel=pkg.rel)
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__requiringPo), __pyx_v_requiringPo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 539:                                   epoch=pkg.epoch, version=pkg.version,
    /* "/home/david/coding/yum/yum/depsolve.pyx":539
 *         for pkg in provSack.returnNewestByName():
 *             results = self.update(requiringPo=requiringPo, name=pkg.name,
 *                                   epoch=pkg.epoch, version=pkg.version,             # <<<<<<<<<<<<<<
 *                                   rel=pkg.rel)
 *             for txmbr in results:
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__epoch); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__epoch), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__version); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__version), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 540:                                   rel=pkg.rel)
    /* "/home/david/coding/yum/yum/depsolve.pyx":540
 *             results = self.update(requiringPo=requiringPo, name=pkg.name,
 *                                   epoch=pkg.epoch, version=pkg.version,
 *                                   rel=pkg.rel)             # <<<<<<<<<<<<<<
 *             for txmbr in results:
 *                 if pkg == txmbr.po:
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__rel); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__rel), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_results);
    __pyx_v_results = __pyx_t_5;
    __pyx_t_5 = 0;
 541:             for txmbr in results:
    /* "/home/david/coding/yum/yum/depsolve.pyx":541
 *                                   epoch=pkg.epoch, version=pkg.version,
 *                                   rel=pkg.rel)
 *             for txmbr in results:             # <<<<<<<<<<<<<<
 *                 if pkg == txmbr.po:
 *                     checkdeps = True
 */
    if (PyList_CheckExact(__pyx_v_results) || PyTuple_CheckExact(__pyx_v_results)) {
      __pyx_t_11 = 0; __pyx_t_5 = __pyx_v_results; __Pyx_INCREF(__pyx_t_5);
    } else {
      __pyx_t_11 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_results); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
    }
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_5))) {
        if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++;
      } else {
        __pyx_t_6 = PyIter_Next(__pyx_t_5);
        if (!__pyx_t_6) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_DECREF(__pyx_v_txmbr);
      __pyx_v_txmbr = __pyx_t_6;
      __pyx_t_6 = 0;
 542:                 if pkg == txmbr.po:
      /* "/home/david/coding/yum/yum/depsolve.pyx":542
 *                                   rel=pkg.rel)
 *             for txmbr in results:
 *                 if pkg == txmbr.po:             # <<<<<<<<<<<<<<
 *                     checkdeps = True
 *                     self._last_req = pkg
 */
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_pkg, __pyx_t_6, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_8) {
 543:                     checkdeps = True
        /* "/home/david/coding/yum/yum/depsolve.pyx":543
 *             for txmbr in results:
 *                 if pkg == txmbr.po:
 *                     checkdeps = True             # <<<<<<<<<<<<<<
 *                     self._last_req = pkg
 *                     return checkdeps, missingdep
 */
        __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_v_checkdeps);
        __pyx_v_checkdeps = __pyx_t_3;
        __pyx_t_3 = 0;
 544:                     self._last_req = pkg
        /* "/home/david/coding/yum/yum/depsolve.pyx":544
 *                 if pkg == txmbr.po:
 *                     checkdeps = True
 *                     self._last_req = pkg             # <<<<<<<<<<<<<<
 *                     return checkdeps, missingdep
 * 
 */
        if (PyObject_SetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___last_req, __pyx_v_pkg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 545:                     return checkdeps, missingdep
        /* "/home/david/coding/yum/yum/depsolve.pyx":545
 *                     checkdeps = True
 *                     self._last_req = pkg
 *                     return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         # find out which arch of the ones we can choose from is closest
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_v_checkdeps);
        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_checkdeps);
        __Pyx_GIVEREF(__pyx_v_checkdeps);
        __Pyx_INCREF(__pyx_v_missingdep);
        PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_missingdep);
        __Pyx_GIVEREF(__pyx_v_missingdep);
        __pyx_r = __pyx_t_3;
        __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L0;
        goto __pyx_L26;
      }
      __pyx_L26:;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 546: 
 547:         # find out which arch of the ones we can choose from is closest
 548:         # to the arch of the requesting pkg
 549:         newest = provSack.returnNewestByNameArch()
  /* "/home/david/coding/yum/yum/depsolve.pyx":549
 *         # find out which arch of the ones we can choose from is closest
 *         # to the arch of the requesting pkg
 *         newest = provSack.returnNewestByNameArch()             # <<<<<<<<<<<<<<
 *         if len(newest) > 1: # there's no way this can be zero
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s_51); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_newest);
  __pyx_v_newest = __pyx_t_5;
  __pyx_t_5 = 0;
 550:         if len(newest) > 1: # there's no way this can be zero
  /* "/home/david/coding/yum/yum/depsolve.pyx":550
 *         # to the arch of the requesting pkg
 *         newest = provSack.returnNewestByNameArch()
 *         if len(newest) > 1: # there's no way this can be zero             # <<<<<<<<<<<<<<
 * 
 *             pkgresults = self._compare_providers(newest, requiringPo)
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_newest); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = (__pyx_t_9 > 1);
  if (__pyx_t_8) {
 551: 
 552:             pkgresults = self._compare_providers(newest, requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":552
 *         if len(newest) > 1: # there's no way this can be zero
 * 
 *             pkgresults = self._compare_providers(newest, requiringPo)             # <<<<<<<<<<<<<<
 *             # take the first one...
 *             best = pkgresults[0][0]
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___compare_providers); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_newest);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_newest);
    __Pyx_GIVEREF(__pyx_v_newest);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_pkgresults);
    __pyx_v_pkgresults = __pyx_t_3;
    __pyx_t_3 = 0;
 553:             # take the first one...
 554:             best = pkgresults[0][0]
    /* "/home/david/coding/yum/yum/depsolve.pyx":554
 *             pkgresults = self._compare_providers(newest, requiringPo)
 *             # take the first one...
 *             best = pkgresults[0][0]             # <<<<<<<<<<<<<<
 * 
 *         elif len(newest) == 1:
 */
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pkgresults, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_best);
    __pyx_v_best = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L27;
  }
 555: 
 556:         elif len(newest) == 1:
  /* "/home/david/coding/yum/yum/depsolve.pyx":556
 *             best = pkgresults[0][0]
 * 
 *         elif len(newest) == 1:             # <<<<<<<<<<<<<<
 *             best = newest[0]
 * 
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_newest); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = (__pyx_t_9 == 1);
  if (__pyx_t_8) {
 557:             best = newest[0]
    /* "/home/david/coding/yum/yum/depsolve.pyx":557
 * 
 *         elif len(newest) == 1:
 *             best = newest[0]             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_newest, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_v_best);
    __pyx_v_best = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L27;
  }
  __pyx_L27:;
 558: 
 559: 
 560:         if self.rpmdb.contains(po=best): # is it already installed?
  /* "/home/david/coding/yum/yum/depsolve.pyx":560
 * 
 * 
 *         if self.rpmdb.contains(po=best): # is it already installed?             # <<<<<<<<<<<<<<
 *             missingdep = 1
 *             checkdeps = 0
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__contains); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__po), __pyx_v_best) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_8) {
 561:             missingdep = 1
    /* "/home/david/coding/yum/yum/depsolve.pyx":561
 * 
 *         if self.rpmdb.contains(po=best): # is it already installed?
 *             missingdep = 1             # <<<<<<<<<<<<<<
 *             checkdeps = 0
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF(__pyx_v_missingdep);
    __pyx_v_missingdep = __pyx_int_1;
 562:             checkdeps = 0
    /* "/home/david/coding/yum/yum/depsolve.pyx":562
 *         if self.rpmdb.contains(po=best): # is it already installed?
 *             missingdep = 1
 *             checkdeps = 0             # <<<<<<<<<<<<<<
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
 */
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF(__pyx_v_checkdeps);
    __pyx_v_checkdeps = __pyx_int_0;
 563:             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
    /* "/home/david/coding/yum/yum/depsolve.pyx":563
 *             missingdep = 1
 *             checkdeps = 0
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)             # <<<<<<<<<<<<<<
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
 *             errorlist.append(msg)
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__repoid); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_43), __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_prob_pkg);
    __pyx_v_prob_pkg = ((PyObject *)__pyx_t_5);
    __pyx_t_5 = 0;
 564:             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
    /* "/home/david/coding/yum/yum/depsolve.pyx":564
 *             checkdeps = 0
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)             # <<<<<<<<<<<<<<
 *             errorlist.append(msg)
 *             return checkdeps, missingdep
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_49));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_49));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_49));
    __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __Pyx_INCREF(__pyx_v_prob_pkg);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_prob_pkg);
    __Pyx_GIVEREF(__pyx_v_prob_pkg);
    __pyx_t_5 = PyNumber_Remainder(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_msg);
    __pyx_v_msg = __pyx_t_5;
    __pyx_t_5 = 0;
 565:             errorlist.append(msg)
    /* "/home/david/coding/yum/yum/depsolve.pyx":565
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
 *             errorlist.append(msg)             # <<<<<<<<<<<<<<
 *             return checkdeps, missingdep
 * 
 */
    __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_errorlist, __pyx_v_msg); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 566:             return checkdeps, missingdep
    /* "/home/david/coding/yum/yum/depsolve.pyx":566
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
 *             errorlist.append(msg)
 *             return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_checkdeps);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_checkdeps);
    __Pyx_GIVEREF(__pyx_v_checkdeps);
    __Pyx_INCREF(__pyx_v_missingdep);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_missingdep);
    __Pyx_GIVEREF(__pyx_v_missingdep);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
    goto __pyx_L28;
  }
  __pyx_L28:;
 567: 
 568: 
 569: 
 570:         # FIXME - why can't we look up in the transaction set for the requiringPkg
 571:         # and know what needs it that way and provide a more sensible dep structure in the txmbr
 572:         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)
  /* "/home/david/coding/yum/yum/depsolve.pyx":572
 *         # FIXME - why can't we look up in the transaction set for the requiringPkg
 *         # and know what needs it that way and provide a more sensible dep structure in the txmbr
 *         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)             # <<<<<<<<<<<<<<
 *         if len(inst) > 0:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__searchNevra); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_best, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__name), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_best, __pyx_n_s__arch); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__arch), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_v_inst);
  __pyx_v_inst = __pyx_t_3;
  __pyx_t_3 = 0;
 573:         if len(inst) > 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":573
 *         # and know what needs it that way and provide a more sensible dep structure in the txmbr
 *         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)
 *         if len(inst) > 0:             # <<<<<<<<<<<<<<
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,
 *                 requiringPo))
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_inst); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = (__pyx_t_9 > 0);
  if (__pyx_t_8) {
 574:             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,
    /* "/home/david/coding/yum/yum/depsolve.pyx":574
 *         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)
 *         if len(inst) > 0:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,             # <<<<<<<<<<<<<<
 *                 requiringPo))
 *             # FIXME: we should probably handle updating multiple packages...
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__debug); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_52));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_52));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_52));
    __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 575:                 requiringPo))
    /* "/home/david/coding/yum/yum/depsolve.pyx":575
 *         if len(inst) > 0:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,
 *                 requiringPo))             # <<<<<<<<<<<<<<
 *             # FIXME: we should probably handle updating multiple packages...
 *             txmbr = self.tsInfo.addUpdate(best, inst[0])
 */
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __pyx_t_3 = PyNumber_Remainder(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 576:             # FIXME: we should probably handle updating multiple packages...
 577:             txmbr = self.tsInfo.addUpdate(best, inst[0])
    /* "/home/david/coding/yum/yum/depsolve.pyx":577
 *                 requiringPo))
 *             # FIXME: we should probably handle updating multiple packages...
 *             txmbr = self.tsInfo.addUpdate(best, inst[0])             # <<<<<<<<<<<<<<
 *             txmbr.setAsDep(po=requiringPo)
 *             txmbr.reason = "dep"
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__addUpdate); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_inst, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_3;
    __pyx_t_3 = 0;
 578:             txmbr.setAsDep(po=requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":578
 *             # FIXME: we should probably handle updating multiple packages...
 *             txmbr = self.tsInfo.addUpdate(best, inst[0])
 *             txmbr.setAsDep(po=requiringPo)             # <<<<<<<<<<<<<<
 *             txmbr.reason = "dep"
 *             self._last_req = best
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__setAsDep); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__po), __pyx_v_requiringPo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 579:             txmbr.reason = "dep"
    /* "/home/david/coding/yum/yum/depsolve.pyx":579
 *             txmbr = self.tsInfo.addUpdate(best, inst[0])
 *             txmbr.setAsDep(po=requiringPo)
 *             txmbr.reason = "dep"             # <<<<<<<<<<<<<<
 *             self._last_req = best
 *         else:
 */
    if (PyObject_SetAttr(__pyx_v_txmbr, __pyx_n_s__reason, ((PyObject *)__pyx_n_s__dep)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 580:             self._last_req = best
    /* "/home/david/coding/yum/yum/depsolve.pyx":580
 *             txmbr.setAsDep(po=requiringPo)
 *             txmbr.reason = "dep"
 *             self._last_req = best             # <<<<<<<<<<<<<<
 *         else:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,
 */
    if (PyObject_SetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___last_req, __pyx_v_best) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L29;
  }
  /*else*/ {
 581:         else:
 582:             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,
    /* "/home/david/coding/yum/yum/depsolve.pyx":582
 *             self._last_req = best
 *         else:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,             # <<<<<<<<<<<<<<
 *                 requiringPo)
 *             # FIXME: Don't we want .install() here, so obsoletes get done?
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__debug); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_53));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_53));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_53));
    __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 583:                 requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":583
 *         else:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,
 *                 requiringPo)             # <<<<<<<<<<<<<<
 *             # FIXME: Don't we want .install() here, so obsoletes get done?
 *             txmbr = self.tsInfo.addInstall(best)
 */
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_5, __pyx_t