# DO NOT EDIT THIS FILE!
# This file is automatically generated by build_py_internals.py.
"""
This module provides a dictionary that describes the internals of carious
python versions. It is used in various parts of pwnypack (
:mod:`pwnypack.bytecode` and :mod:`pwnypack.pickle`).

Please note that this module is automatically generated by
the ``build_py_internals.py`` script.
"""


import sys
import warnings


__all__ = ['get_py_internals']


#: This dictionary describes the internals of CPython 2.6.
PY_26 = {
    'version': 26,
    'magic': 62161,
    'pickle_highest_protocol': 2,
    'pickle_default_protocol': 0,
    'extended_arg': 143,
    'have_argument': 90,
    'hascompare': [106],
    'hasconst': [100],
    'hasfree': [135, 136, 137],
    'haslocal': [124, 125, 126],
    'hasname': [90, 91, 95, 96, 97, 98, 101, 105, 107, 108, 116],
    'hasjrel': [93, 110, 111, 112, 120, 121, 122],
    'hasjabs': [113, 119],
    'cmp_op': ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD'),
    'opmap': {'BINARY_ADD': 23, 'BINARY_AND': 64, 'BINARY_DIVIDE': 21, 'BINARY_FLOOR_DIVIDE': 26, 'BINARY_LSHIFT': 62, 'BINARY_MODULO': 22, 'BINARY_MULTIPLY': 20, 'BINARY_OR': 66, 'BINARY_POWER': 19, 'BINARY_RSHIFT': 63, 'BINARY_SUBSCR': 25, 'BINARY_SUBTRACT': 24, 'BINARY_TRUE_DIVIDE': 27, 'BINARY_XOR': 65, 'BREAK_LOOP': 80, 'BUILD_CLASS': 89, 'BUILD_LIST': 103, 'BUILD_MAP': 104, 'BUILD_SLICE': 133, 'BUILD_TUPLE': 102, 'CALL_FUNCTION': 131, 'CALL_FUNCTION_KW': 141, 'CALL_FUNCTION_VAR': 140, 'CALL_FUNCTION_VAR_KW': 142, 'COMPARE_OP': 106, 'CONTINUE_LOOP': 119, 'DELETE_ATTR': 96, 'DELETE_FAST': 126, 'DELETE_GLOBAL': 98, 'DELETE_NAME': 91, 'DELETE_SLICE+0': 50, 'DELETE_SLICE+1': 51, 'DELETE_SLICE+2': 52, 'DELETE_SLICE+3': 53, 'DELETE_SUBSCR': 61, 'DUP_TOP': 4, 'DUP_TOPX': 99, 'END_FINALLY': 88, 'EXEC_STMT': 85, 'EXTENDED_ARG': 143, 'FOR_ITER': 93, 'GET_ITER': 68, 'IMPORT_FROM': 108, 'IMPORT_NAME': 107, 'IMPORT_STAR': 84, 'INPLACE_ADD': 55, 'INPLACE_AND': 77, 'INPLACE_DIVIDE': 58, 'INPLACE_FLOOR_DIVIDE': 28, 'INPLACE_LSHIFT': 75, 'INPLACE_MODULO': 59, 'INPLACE_MULTIPLY': 57, 'INPLACE_OR': 79, 'INPLACE_POWER': 67, 'INPLACE_RSHIFT': 76, 'INPLACE_SUBTRACT': 56, 'INPLACE_TRUE_DIVIDE': 29, 'INPLACE_XOR': 78, 'JUMP_ABSOLUTE': 113, 'JUMP_FORWARD': 110, 'JUMP_IF_FALSE': 111, 'JUMP_IF_TRUE': 112, 'LIST_APPEND': 18, 'LOAD_ATTR': 105, 'LOAD_CLOSURE': 135, 'LOAD_CONST': 100, 'LOAD_DEREF': 136, 'LOAD_FAST': 124, 'LOAD_GLOBAL': 116, 'LOAD_LOCALS': 82, 'LOAD_NAME': 101, 'MAKE_CLOSURE': 134, 'MAKE_FUNCTION': 132, 'NOP': 9, 'POP_BLOCK': 87, 'POP_TOP': 1, 'PRINT_EXPR': 70, 'PRINT_ITEM': 71, 'PRINT_ITEM_TO': 73, 'PRINT_NEWLINE': 72, 'PRINT_NEWLINE_TO': 74, 'RAISE_VARARGS': 130, 'RETURN_VALUE': 83, 'ROT_FOUR': 5, 'ROT_THREE': 3, 'ROT_TWO': 2, 'SETUP_EXCEPT': 121, 'SETUP_FINALLY': 122, 'SETUP_LOOP': 120, 'SLICE+0': 30, 'SLICE+1': 31, 'SLICE+2': 32, 'SLICE+3': 33, 'STOP_CODE': 0, 'STORE_ATTR': 95, 'STORE_DEREF': 137, 'STORE_FAST': 125, 'STORE_GLOBAL': 97, 'STORE_MAP': 54, 'STORE_NAME': 90, 'STORE_SLICE+0': 40, 'STORE_SLICE+1': 41, 'STORE_SLICE+2': 42, 'STORE_SLICE+3': 43, 'STORE_SUBSCR': 60, 'UNARY_CONVERT': 13, 'UNARY_INVERT': 15, 'UNARY_NEGATIVE': 11, 'UNARY_NOT': 12, 'UNARY_POSITIVE': 10, 'UNPACK_SEQUENCE': 92, 'WITH_CLEANUP': 81, 'YIELD_VALUE': 86},
    'opname': ['STOP_CODE', 'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'DUP_TOP', 'ROT_FOUR', '<6>', '<7>', '<8>', 'NOP', 'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT', 'UNARY_CONVERT', '<14>', 'UNARY_INVERT', '<16>', '<17>', 'LIST_APPEND', 'BINARY_POWER', 'BINARY_MULTIPLY', 'BINARY_DIVIDE', 'BINARY_MODULO', 'BINARY_ADD', 'BINARY_SUBTRACT', 'BINARY_SUBSCR', 'BINARY_FLOOR_DIVIDE', 'BINARY_TRUE_DIVIDE', 'INPLACE_FLOOR_DIVIDE', 'INPLACE_TRUE_DIVIDE', 'SLICE+0', 'SLICE+1', 'SLICE+2', 'SLICE+3', '<34>', '<35>', '<36>', '<37>', '<38>', '<39>', 'STORE_SLICE+0', 'STORE_SLICE+1', 'STORE_SLICE+2', 'STORE_SLICE+3', '<44>', '<45>', '<46>', '<47>', '<48>', '<49>', 'DELETE_SLICE+0', 'DELETE_SLICE+1', 'DELETE_SLICE+2', 'DELETE_SLICE+3', 'STORE_MAP', 'INPLACE_ADD', 'INPLACE_SUBTRACT', 'INPLACE_MULTIPLY', 'INPLACE_DIVIDE', 'INPLACE_MODULO', 'STORE_SUBSCR', 'DELETE_SUBSCR', 'BINARY_LSHIFT', 'BINARY_RSHIFT', 'BINARY_AND', 'BINARY_XOR', 'BINARY_OR', 'INPLACE_POWER', 'GET_ITER', '<69>', 'PRINT_EXPR', 'PRINT_ITEM', 'PRINT_NEWLINE', 'PRINT_ITEM_TO', 'PRINT_NEWLINE_TO', 'INPLACE_LSHIFT', 'INPLACE_RSHIFT', 'INPLACE_AND', 'INPLACE_XOR', 'INPLACE_OR', 'BREAK_LOOP', 'WITH_CLEANUP', 'LOAD_LOCALS', 'RETURN_VALUE', 'IMPORT_STAR', 'EXEC_STMT', 'YIELD_VALUE', 'POP_BLOCK', 'END_FINALLY', 'BUILD_CLASS', 'STORE_NAME', 'DELETE_NAME', 'UNPACK_SEQUENCE', 'FOR_ITER', '<94>', 'STORE_ATTR', 'DELETE_ATTR', 'STORE_GLOBAL', 'DELETE_GLOBAL', 'DUP_TOPX', 'LOAD_CONST', 'LOAD_NAME', 'BUILD_TUPLE', 'BUILD_LIST', 'BUILD_MAP', 'LOAD_ATTR', 'COMPARE_OP', 'IMPORT_NAME', 'IMPORT_FROM', '<109>', 'JUMP_FORWARD', 'JUMP_IF_FALSE', 'JUMP_IF_TRUE', 'JUMP_ABSOLUTE', '<114>', '<115>', 'LOAD_GLOBAL', '<117>', '<118>', 'CONTINUE_LOOP', 'SETUP_LOOP', 'SETUP_EXCEPT', 'SETUP_FINALLY', '<123>', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', '<127>', '<128>', '<129>', 'RAISE_VARARGS', 'CALL_FUNCTION', 'MAKE_FUNCTION', 'BUILD_SLICE', 'MAKE_CLOSURE', 'LOAD_CLOSURE', 'LOAD_DEREF', 'STORE_DEREF', '<138>', '<139>', 'CALL_FUNCTION_VAR', 'CALL_FUNCTION_KW', 'CALL_FUNCTION_VAR_KW', 'EXTENDED_ARG', '<144>', '<145>', '<146>', '<147>', '<148>', '<149>', '<150>', '<151>', '<152>', '<153>', '<154>', '<155>', '<156>', '<157>', '<158>', '<159>', '<160>', '<161>', '<162>', '<163>', '<164>', '<165>', '<166>', '<167>', '<168>', '<169>', '<170>', '<171>', '<172>', '<173>', '<174>', '<175>', '<176>', '<177>', '<178>', '<179>', '<180>', '<181>', '<182>', '<183>', '<184>', '<185>', '<186>', '<187>', '<188>', '<189>', '<190>', '<191>', '<192>', '<193>', '<194>', '<195>', '<196>', '<197>', '<198>', '<199>', '<200>', '<201>', '<202>', '<203>', '<204>', '<205>', '<206>', '<207>', '<208>', '<209>', '<210>', '<211>', '<212>', '<213>', '<214>', '<215>', '<216>', '<217>', '<218>', '<219>', '<220>', '<221>', '<222>', '<223>', '<224>', '<225>', '<226>', '<227>', '<228>', '<229>', '<230>', '<231>', '<232>', '<233>', '<234>', '<235>', '<236>', '<237>', '<238>', '<239>', '<240>', '<241>', '<242>', '<243>', '<244>', '<245>', '<246>', '<247>', '<248>', '<249>', '<250>', '<251>', '<252>', '<253>', '<254>', '<255>'],
    'stackeffect': {'BINARY_ADD': -1, 'BINARY_AND': -1, 'BINARY_DIVIDE': -1, 'BINARY_FLOOR_DIVIDE': -1, 'BINARY_LSHIFT': -1, 'BINARY_MODULO': -1, 'BINARY_MULTIPLY': -1, 'BINARY_OR': -1, 'BINARY_POWER': -1, 'BINARY_RSHIFT': -1, 'BINARY_SUBSCR': -1, 'BINARY_SUBTRACT': -1, 'BINARY_TRUE_DIVIDE': -1, 'BINARY_XOR': -1, 'BREAK_LOOP': 0, 'BUILD_CLASS': -2, 'BUILD_LIST': lambda arg: 1 - arg, 'BUILD_MAP': 1, 'BUILD_SLICE': lambda arg: -2 if arg == 3 else -1, 'BUILD_TUPLE': lambda arg: 1 - arg, 'CALL_FUNCTION': lambda arg: -((arg % 256) + 2 * (arg >> 8)), 'CALL_FUNCTION_KW': lambda arg: -((arg % 256) + 2 * (arg >> 8)) - 1, 'CALL_FUNCTION_VAR': lambda arg: -((arg % 256) + 2 * (arg >> 8)) - 1, 'CALL_FUNCTION_VAR_KW': lambda arg: -((arg % 256) + 2 * (arg >> 8)) - 2, 'COMPARE_OP': -1, 'CONTINUE_LOOP': 0, 'DELETE_ATTR': -1, 'DELETE_FAST': 0, 'DELETE_GLOBAL': 0, 'DELETE_NAME': 0, 'DELETE_SLICE+0': -1, 'DELETE_SLICE+1': -2, 'DELETE_SLICE+2': -2, 'DELETE_SLICE+3': -3, 'DELETE_SUBSCR': -2, 'DUP_TOP': 1, 'DUP_TOPX': lambda arg: arg, 'END_FINALLY': -1, 'EXEC_STMT': -3, 'EXTENDED_ARG': None, 'FOR_ITER': 1, 'GET_ITER': 0, 'IMPORT_FROM': 1, 'IMPORT_NAME': 0, 'IMPORT_STAR': -1, 'INPLACE_ADD': -1, 'INPLACE_AND': -1, 'INPLACE_DIVIDE': -1, 'INPLACE_FLOOR_DIVIDE': -1, 'INPLACE_LSHIFT': -1, 'INPLACE_MODULO': -1, 'INPLACE_MULTIPLY': -1, 'INPLACE_OR': -1, 'INPLACE_POWER': -1, 'INPLACE_RSHIFT': -1, 'INPLACE_SUBTRACT': -1, 'INPLACE_TRUE_DIVIDE': -1, 'INPLACE_XOR': -1, 'JUMP_ABSOLUTE': 0, 'JUMP_FORWARD': 0, 'JUMP_IF_FALSE': 0, 'JUMP_IF_TRUE': 0, 'LIST_APPEND': -2, 'LOAD_ATTR': 0, 'LOAD_CLOSURE': 1, 'LOAD_CONST': 1, 'LOAD_DEREF': 1, 'LOAD_FAST': 1, 'LOAD_GLOBAL': 1, 'LOAD_LOCALS': 1, 'LOAD_NAME': 1, 'MAKE_CLOSURE': lambda arg: -arg, 'MAKE_FUNCTION': lambda arg: -arg, 'NOP': 0, 'POP_BLOCK': 0, 'POP_TOP': -1, 'PRINT_EXPR': -1, 'PRINT_ITEM': -1, 'PRINT_ITEM_TO': -2, 'PRINT_NEWLINE': 0, 'PRINT_NEWLINE_TO': -1, 'RAISE_VARARGS': lambda arg: -arg, 'RETURN_VALUE': -1, 'ROT_FOUR': 0, 'ROT_THREE': 0, 'ROT_TWO': 0, 'SETUP_EXCEPT': 3, 'SETUP_FINALLY': 3, 'SETUP_LOOP': 0, 'SLICE+0': 1, 'SLICE+1': 0, 'SLICE+2': 0, 'SLICE+3': -1, 'STOP_CODE': None, 'STORE_ATTR': -2, 'STORE_DEREF': -1, 'STORE_FAST': -1, 'STORE_GLOBAL': -1, 'STORE_MAP': -2, 'STORE_NAME': -1, 'STORE_SLICE+0': -2, 'STORE_SLICE+1': -3, 'STORE_SLICE+2': -3, 'STORE_SLICE+3': -4, 'STORE_SUBSCR': -3, 'UNARY_CONVERT': 0, 'UNARY_INVERT': 0, 'UNARY_NEGATIVE': 0, 'UNARY_NOT': 0, 'UNARY_POSITIVE': 0, 'UNPACK_SEQUENCE': lambda arg: arg - 1, 'WITH_CLEANUP': -1, 'YIELD_VALUE': 0},
    'stackeffect_traits': 0,
}

#: This dictionary describes the internals of CPython 2.7.
PY_27 = {
    'version': 27,
    'magic': 62211,
    'pickle_highest_protocol': 2,
    'pickle_default_protocol': 0,
    'extended_arg': 145,
    'have_argument': 90,
    'hascompare': [107],
    'hasconst': [100],
    'hasfree': [135, 136, 137],
    'haslocal': [124, 125, 126],
    'hasname': [90, 91, 95, 96, 97, 98, 101, 106, 108, 109, 116],
    'hasjrel': [93, 110, 120, 121, 122, 143],
    'hasjabs': [111, 112, 113, 114, 115, 119],
    'cmp_op': ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD'),
    'opmap': {'BINARY_ADD': 23, 'BINARY_AND': 64, 'BINARY_DIVIDE': 21, 'BINARY_FLOOR_DIVIDE': 26, 'BINARY_LSHIFT': 62, 'BINARY_MODULO': 22, 'BINARY_MULTIPLY': 20, 'BINARY_OR': 66, 'BINARY_POWER': 19, 'BINARY_RSHIFT': 63, 'BINARY_SUBSCR': 25, 'BINARY_SUBTRACT': 24, 'BINARY_TRUE_DIVIDE': 27, 'BINARY_XOR': 65, 'BREAK_LOOP': 80, 'BUILD_CLASS': 89, 'BUILD_LIST': 103, 'BUILD_MAP': 105, 'BUILD_SET': 104, 'BUILD_SLICE': 133, 'BUILD_TUPLE': 102, 'CALL_FUNCTION': 131, 'CALL_FUNCTION_KW': 141, 'CALL_FUNCTION_VAR': 140, 'CALL_FUNCTION_VAR_KW': 142, 'COMPARE_OP': 107, 'CONTINUE_LOOP': 119, 'DELETE_ATTR': 96, 'DELETE_FAST': 126, 'DELETE_GLOBAL': 98, 'DELETE_NAME': 91, 'DELETE_SLICE+0': 50, 'DELETE_SLICE+1': 51, 'DELETE_SLICE+2': 52, 'DELETE_SLICE+3': 53, 'DELETE_SUBSCR': 61, 'DUP_TOP': 4, 'DUP_TOPX': 99, 'END_FINALLY': 88, 'EXEC_STMT': 85, 'EXTENDED_ARG': 145, 'FOR_ITER': 93, 'GET_ITER': 68, 'IMPORT_FROM': 109, 'IMPORT_NAME': 108, 'IMPORT_STAR': 84, 'INPLACE_ADD': 55, 'INPLACE_AND': 77, 'INPLACE_DIVIDE': 58, 'INPLACE_FLOOR_DIVIDE': 28, 'INPLACE_LSHIFT': 75, 'INPLACE_MODULO': 59, 'INPLACE_MULTIPLY': 57, 'INPLACE_OR': 79, 'INPLACE_POWER': 67, 'INPLACE_RSHIFT': 76, 'INPLACE_SUBTRACT': 56, 'INPLACE_TRUE_DIVIDE': 29, 'INPLACE_XOR': 78, 'JUMP_ABSOLUTE': 113, 'JUMP_FORWARD': 110, 'JUMP_IF_FALSE_OR_POP': 111, 'JUMP_IF_TRUE_OR_POP': 112, 'LIST_APPEND': 94, 'LOAD_ATTR': 106, 'LOAD_CLOSURE': 135, 'LOAD_CONST': 100, 'LOAD_DEREF': 136, 'LOAD_FAST': 124, 'LOAD_GLOBAL': 116, 'LOAD_LOCALS': 82, 'LOAD_NAME': 101, 'MAKE_CLOSURE': 134, 'MAKE_FUNCTION': 132, 'MAP_ADD': 147, 'NOP': 9, 'POP_BLOCK': 87, 'POP_JUMP_IF_FALSE': 114, 'POP_JUMP_IF_TRUE': 115, 'POP_TOP': 1, 'PRINT_EXPR': 70, 'PRINT_ITEM': 71, 'PRINT_ITEM_TO': 73, 'PRINT_NEWLINE': 72, 'PRINT_NEWLINE_TO': 74, 'RAISE_VARARGS': 130, 'RETURN_VALUE': 83, 'ROT_FOUR': 5, 'ROT_THREE': 3, 'ROT_TWO': 2, 'SETUP_EXCEPT': 121, 'SETUP_FINALLY': 122, 'SETUP_LOOP': 120, 'SETUP_WITH': 143, 'SET_ADD': 146, 'SLICE+0': 30, 'SLICE+1': 31, 'SLICE+2': 32, 'SLICE+3': 33, 'STOP_CODE': 0, 'STORE_ATTR': 95, 'STORE_DEREF': 137, 'STORE_FAST': 125, 'STORE_GLOBAL': 97, 'STORE_MAP': 54, 'STORE_NAME': 90, 'STORE_SLICE+0': 40, 'STORE_SLICE+1': 41, 'STORE_SLICE+2': 42, 'STORE_SLICE+3': 43, 'STORE_SUBSCR': 60, 'UNARY_CONVERT': 13, 'UNARY_INVERT': 15, 'UNARY_NEGATIVE': 11, 'UNARY_NOT': 12, 'UNARY_POSITIVE': 10, 'UNPACK_SEQUENCE': 92, 'WITH_CLEANUP': 81, 'YIELD_VALUE': 86},
    'opname': ['STOP_CODE', 'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'DUP_TOP', 'ROT_FOUR', '<6>', '<7>', '<8>', 'NOP', 'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT', 'UNARY_CONVERT', '<14>', 'UNARY_INVERT', '<16>', '<17>', '<18>', 'BINARY_POWER', 'BINARY_MULTIPLY', 'BINARY_DIVIDE', 'BINARY_MODULO', 'BINARY_ADD', 'BINARY_SUBTRACT', 'BINARY_SUBSCR', 'BINARY_FLOOR_DIVIDE', 'BINARY_TRUE_DIVIDE', 'INPLACE_FLOOR_DIVIDE', 'INPLACE_TRUE_DIVIDE', 'SLICE+0', 'SLICE+1', 'SLICE+2', 'SLICE+3', '<34>', '<35>', '<36>', '<37>', '<38>', '<39>', 'STORE_SLICE+0', 'STORE_SLICE+1', 'STORE_SLICE+2', 'STORE_SLICE+3', '<44>', '<45>', '<46>', '<47>', '<48>', '<49>', 'DELETE_SLICE+0', 'DELETE_SLICE+1', 'DELETE_SLICE+2', 'DELETE_SLICE+3', 'STORE_MAP', 'INPLACE_ADD', 'INPLACE_SUBTRACT', 'INPLACE_MULTIPLY', 'INPLACE_DIVIDE', 'INPLACE_MODULO', 'STORE_SUBSCR', 'DELETE_SUBSCR', 'BINARY_LSHIFT', 'BINARY_RSHIFT', 'BINARY_AND', 'BINARY_XOR', 'BINARY_OR', 'INPLACE_POWER', 'GET_ITER', '<69>', 'PRINT_EXPR', 'PRINT_ITEM', 'PRINT_NEWLINE', 'PRINT_ITEM_TO', 'PRINT_NEWLINE_TO', 'INPLACE_LSHIFT', 'INPLACE_RSHIFT', 'INPLACE_AND', 'INPLACE_XOR', 'INPLACE_OR', 'BREAK_LOOP', 'WITH_CLEANUP', 'LOAD_LOCALS', 'RETURN_VALUE', 'IMPORT_STAR', 'EXEC_STMT', 'YIELD_VALUE', 'POP_BLOCK', 'END_FINALLY', 'BUILD_CLASS', 'STORE_NAME', 'DELETE_NAME', 'UNPACK_SEQUENCE', 'FOR_ITER', 'LIST_APPEND', 'STORE_ATTR', 'DELETE_ATTR', 'STORE_GLOBAL', 'DELETE_GLOBAL', 'DUP_TOPX', 'LOAD_CONST', 'LOAD_NAME', 'BUILD_TUPLE', 'BUILD_LIST', 'BUILD_SET', 'BUILD_MAP', 'LOAD_ATTR', 'COMPARE_OP', 'IMPORT_NAME', 'IMPORT_FROM', 'JUMP_FORWARD', 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'JUMP_ABSOLUTE', 'POP_JUMP_IF_FALSE', 'POP_JUMP_IF_TRUE', 'LOAD_GLOBAL', '<117>', '<118>', 'CONTINUE_LOOP', 'SETUP_LOOP', 'SETUP_EXCEPT', 'SETUP_FINALLY', '<123>', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', '<127>', '<128>', '<129>', 'RAISE_VARARGS', 'CALL_FUNCTION', 'MAKE_FUNCTION', 'BUILD_SLICE', 'MAKE_CLOSURE', 'LOAD_CLOSURE', 'LOAD_DEREF', 'STORE_DEREF', '<138>', '<139>', 'CALL_FUNCTION_VAR', 'CALL_FUNCTION_KW', 'CALL_FUNCTION_VAR_KW', 'SETUP_WITH', '<144>', 'EXTENDED_ARG', 'SET_ADD', 'MAP_ADD', '<148>', '<149>', '<150>', '<151>', '<152>', '<153>', '<154>', '<155>', '<156>', '<157>', '<158>', '<159>', '<160>', '<161>', '<162>', '<163>', '<164>', '<165>', '<166>', '<167>', '<168>', '<169>', '<170>', '<171>', '<172>', '<173>', '<174>', '<175>', '<176>', '<177>', '<178>', '<179>', '<180>', '<181>', '<182>', '<183>', '<184>', '<185>', '<186>', '<187>', '<188>', '<189>', '<190>', '<191>', '<192>', '<193>', '<194>', '<195>', '<196>', '<197>', '<198>', '<199>', '<200>', '<201>', '<202>', '<203>', '<204>', '<205>', '<206>', '<207>', '<208>', '<209>', '<210>', '<211>', '<212>', '<213>', '<214>', '<215>', '<216>', '<217>', '<218>', '<219>', '<220>', '<221>', '<222>', '<223>', '<224>', '<225>', '<226>', '<227>', '<228>', '<229>', '<230>', '<231>', '<232>', '<233>', '<234>', '<235>', '<236>', '<237>', '<238>', '<239>', '<240>', '<241>', '<242>', '<243>', '<244>', '<245>', '<246>', '<247>', '<248>', '<249>', '<250>', '<251>', '<252>', '<253>', '<254>', '<255>'],
    'stackeffect': {'BINARY_ADD': -1, 'BINARY_AND': -1, 'BINARY_DIVIDE': -1, 'BINARY_FLOOR_DIVIDE': -1, 'BINARY_LSHIFT': -1, 'BINARY_MODULO': -1, 'BINARY_MULTIPLY': -1, 'BINARY_OR': -1, 'BINARY_POWER': -1, 'BINARY_RSHIFT': -1, 'BINARY_SUBSCR': -1, 'BINARY_SUBTRACT': -1, 'BINARY_TRUE_DIVIDE': -1, 'BINARY_XOR': -1, 'BREAK_LOOP': 0, 'BUILD_CLASS': -2, 'BUILD_LIST': lambda arg: 1 - arg, 'BUILD_MAP': 1, 'BUILD_SET': lambda arg: 1 - arg, 'BUILD_SLICE': lambda arg: -2 if arg == 3 else -1, 'BUILD_TUPLE': lambda arg: 1 - arg, 'CALL_FUNCTION': lambda arg: -((arg % 256) + 2 * (arg >> 8)), 'CALL_FUNCTION_KW': lambda arg: -((arg % 256) + 2 * (arg >> 8)) - 1, 'CALL_FUNCTION_VAR': lambda arg: -((arg % 256) + 2 * (arg >> 8)) - 1, 'CALL_FUNCTION_VAR_KW': lambda arg: -((arg % 256) + 2 * (arg >> 8)) - 2, 'COMPARE_OP': -1, 'CONTINUE_LOOP': 0, 'DELETE_ATTR': -1, 'DELETE_FAST': 0, 'DELETE_GLOBAL': 0, 'DELETE_NAME': 0, 'DELETE_SLICE+0': -1, 'DELETE_SLICE+1': -2, 'DELETE_SLICE+2': -2, 'DELETE_SLICE+3': -3, 'DELETE_SUBSCR': -2, 'DUP_TOP': 1, 'DUP_TOPX': lambda arg: arg, 'END_FINALLY': -3, 'EXEC_STMT': -3, 'EXTENDED_ARG': None, 'FOR_ITER': 1, 'GET_ITER': 0, 'IMPORT_FROM': 1, 'IMPORT_NAME': -1, 'IMPORT_STAR': -1, 'INPLACE_ADD': -1, 'INPLACE_AND': -1, 'INPLACE_DIVIDE': -1, 'INPLACE_FLOOR_DIVIDE': -1, 'INPLACE_LSHIFT': -1, 'INPLACE_MODULO': -1, 'INPLACE_MULTIPLY': -1, 'INPLACE_OR': -1, 'INPLACE_POWER': -1, 'INPLACE_RSHIFT': -1, 'INPLACE_SUBTRACT': -1, 'INPLACE_TRUE_DIVIDE': -1, 'INPLACE_XOR': -1, 'JUMP_ABSOLUTE': 0, 'JUMP_FORWARD': 0, 'JUMP_IF_FALSE_OR_POP': 0, 'JUMP_IF_TRUE_OR_POP': 0, 'LIST_APPEND': -1, 'LOAD_ATTR': 0, 'LOAD_CLOSURE': 1, 'LOAD_CONST': 1, 'LOAD_DEREF': 1, 'LOAD_FAST': 1, 'LOAD_GLOBAL': 1, 'LOAD_LOCALS': 1, 'LOAD_NAME': 1, 'MAKE_CLOSURE': lambda arg: -arg - 1, 'MAKE_FUNCTION': lambda arg: -arg, 'MAP_ADD': -2, 'NOP': 0, 'POP_BLOCK': 0, 'POP_JUMP_IF_FALSE': -1, 'POP_JUMP_IF_TRUE': -1, 'POP_TOP': -1, 'PRINT_EXPR': -1, 'PRINT_ITEM': -1, 'PRINT_ITEM_TO': -2, 'PRINT_NEWLINE': 0, 'PRINT_NEWLINE_TO': -1, 'RAISE_VARARGS': lambda arg: -arg, 'RETURN_VALUE': -1, 'ROT_FOUR': 0, 'ROT_THREE': 0, 'ROT_TWO': 0, 'SETUP_EXCEPT': 0, 'SETUP_FINALLY': 0, 'SETUP_LOOP': 0, 'SETUP_WITH': 4, 'SET_ADD': -1, 'SLICE+0': 0, 'SLICE+1': -1, 'SLICE+2': -1, 'SLICE+3': -2, 'STOP_CODE': None, 'STORE_ATTR': -2, 'STORE_DEREF': -1, 'STORE_FAST': -1, 'STORE_GLOBAL': -1, 'STORE_MAP': -2, 'STORE_NAME': -1, 'STORE_SLICE+0': -2, 'STORE_SLICE+1': -3, 'STORE_SLICE+2': -3, 'STORE_SLICE+3': -4, 'STORE_SUBSCR': -3, 'UNARY_CONVERT': 0, 'UNARY_INVERT': 0, 'UNARY_NEGATIVE': 0, 'UNARY_NOT': 0, 'UNARY_POSITIVE': 0, 'UNPACK_SEQUENCE': lambda arg: arg - 1, 'WITH_CLEANUP': -1, 'YIELD_VALUE': 0},
    'stackeffect_traits': 3,
}

#: This dictionary describes the internals of CPython 3.0.
PY_30 = {
    'version': 30,
    'magic': 3131,
    'pickle_highest_protocol': 3,
    'pickle_default_protocol': 3,
    'extended_arg': 143,
    'have_argument': 90,
    'hascompare': [107],
    'hasconst': [100],
    'hasfree': [135, 136, 137],
    'haslocal': [124, 125, 126],
    'hasname': [90, 91, 95, 96, 97, 98, 101, 106, 108, 109, 116],
    'hasjrel': [93, 110, 111, 112, 120, 121, 122],
    'hasjabs': [113, 119],
    'cmp_op': ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD'),
    'opmap': {'BINARY_ADD': 23, 'BINARY_AND': 64, 'BINARY_FLOOR_DIVIDE': 26, 'BINARY_LSHIFT': 62, 'BINARY_MODULO': 22, 'BINARY_MULTIPLY': 20, 'BINARY_OR': 66, 'BINARY_POWER': 19, 'BINARY_RSHIFT': 63, 'BINARY_SUBSCR': 25, 'BINARY_SUBTRACT': 24, 'BINARY_TRUE_DIVIDE': 27, 'BINARY_XOR': 65, 'BREAK_LOOP': 80, 'BUILD_LIST': 103, 'BUILD_MAP': 105, 'BUILD_SET': 104, 'BUILD_SLICE': 133, 'BUILD_TUPLE': 102, 'CALL_FUNCTION': 131, 'CALL_FUNCTION_KW': 141, 'CALL_FUNCTION_VAR': 140, 'CALL_FUNCTION_VAR_KW': 142, 'COMPARE_OP': 107, 'CONTINUE_LOOP': 119, 'DELETE_ATTR': 96, 'DELETE_FAST': 126, 'DELETE_GLOBAL': 98, 'DELETE_NAME': 91, 'DELETE_SUBSCR': 61, 'DUP_TOP': 4, 'DUP_TOPX': 99, 'END_FINALLY': 88, 'EXTENDED_ARG': 143, 'FOR_ITER': 93, 'GET_ITER': 68, 'IMPORT_FROM': 109, 'IMPORT_NAME': 108, 'IMPORT_STAR': 84, 'INPLACE_ADD': 55, 'INPLACE_AND': 77, 'INPLACE_FLOOR_DIVIDE': 28, 'INPLACE_LSHIFT': 75, 'INPLACE_MODULO': 59, 'INPLACE_MULTIPLY': 57, 'INPLACE_OR': 79, 'INPLACE_POWER': 67, 'INPLACE_RSHIFT': 76, 'INPLACE_SUBTRACT': 56, 'INPLACE_TRUE_DIVIDE': 29, 'INPLACE_XOR': 78, 'JUMP_ABSOLUTE': 113, 'JUMP_FORWARD': 110, 'JUMP_IF_FALSE': 111, 'JUMP_IF_TRUE': 112, 'LIST_APPEND': 18, 'LOAD_ATTR': 106, 'LOAD_BUILD_CLASS': 71, 'LOAD_CLOSURE': 135, 'LOAD_CONST': 100, 'LOAD_DEREF': 136, 'LOAD_FAST': 124, 'LOAD_GLOBAL': 116, 'LOAD_NAME': 101, 'MAKE_CLOSURE': 134, 'MAKE_FUNCTION': 132, 'NOP': 9, 'POP_BLOCK': 87, 'POP_EXCEPT': 89, 'POP_TOP': 1, 'PRINT_EXPR': 70, 'RAISE_VARARGS': 130, 'RETURN_VALUE': 83, 'ROT_FOUR': 5, 'ROT_THREE': 3, 'ROT_TWO': 2, 'SETUP_EXCEPT': 121, 'SETUP_FINALLY': 122, 'SETUP_LOOP': 120, 'SET_ADD': 17, 'STOP_CODE': 0, 'STORE_ATTR': 95, 'STORE_DEREF': 137, 'STORE_FAST': 125, 'STORE_GLOBAL': 97, 'STORE_LOCALS': 69, 'STORE_MAP': 54, 'STORE_NAME': 90, 'STORE_SUBSCR': 60, 'UNARY_INVERT': 15, 'UNARY_NEGATIVE': 11, 'UNARY_NOT': 12, 'UNARY_POSITIVE': 10, 'UNPACK_EX': 94, 'UNPACK_SEQUENCE': 92, 'WITH_CLEANUP': 81, 'YIELD_VALUE': 86},
    'opname': ['STOP_CODE', 'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'DUP_TOP', 'ROT_FOUR', '<6>', '<7>', '<8>', 'NOP', 'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT', '<13>', '<14>', 'UNARY_INVERT', '<16>', 'SET_ADD', 'LIST_APPEND', 'BINARY_POWER', 'BINARY_MULTIPLY', '<21>', 'BINARY_MODULO', 'BINARY_ADD', 'BINARY_SUBTRACT', 'BINARY_SUBSCR', 'BINARY_FLOOR_DIVIDE', 'BINARY_TRUE_DIVIDE', 'INPLACE_FLOOR_DIVIDE', 'INPLACE_TRUE_DIVIDE', '<30>', '<31>', '<32>', '<33>', '<34>', '<35>', '<36>', '<37>', '<38>', '<39>', '<40>', '<41>', '<42>', '<43>', '<44>', '<45>', '<46>', '<47>', '<48>', '<49>', '<50>', '<51>', '<52>', '<53>', 'STORE_MAP', 'INPLACE_ADD', 'INPLACE_SUBTRACT', 'INPLACE_MULTIPLY', '<58>', 'INPLACE_MODULO', 'STORE_SUBSCR', 'DELETE_SUBSCR', 'BINARY_LSHIFT', 'BINARY_RSHIFT', 'BINARY_AND', 'BINARY_XOR', 'BINARY_OR', 'INPLACE_POWER', 'GET_ITER', 'STORE_LOCALS', 'PRINT_EXPR', 'LOAD_BUILD_CLASS', '<72>', '<73>', '<74>', 'INPLACE_LSHIFT', 'INPLACE_RSHIFT', 'INPLACE_AND', 'INPLACE_XOR', 'INPLACE_OR', 'BREAK_LOOP', 'WITH_CLEANUP', '<82>', 'RETURN_VALUE', 'IMPORT_STAR', '<85>', 'YIELD_VALUE', 'POP_BLOCK', 'END_FINALLY', 'POP_EXCEPT', 'STORE_NAME', 'DELETE_NAME', 'UNPACK_SEQUENCE', 'FOR_ITER', 'UNPACK_EX', 'STORE_ATTR', 'DELETE_ATTR', 'STORE_GLOBAL', 'DELETE_GLOBAL', 'DUP_TOPX', 'LOAD_CONST', 'LOAD_NAME', 'BUILD_TUPLE', 'BUILD_LIST', 'BUILD_SET', 'BUILD_MAP', 'LOAD_ATTR', 'COMPARE_OP', 'IMPORT_NAME', 'IMPORT_FROM', 'JUMP_FORWARD', 'JUMP_IF_FALSE', 'JUMP_IF_TRUE', 'JUMP_ABSOLUTE', '<114>', '<115>', 'LOAD_GLOBAL', '<117>', '<118>', 'CONTINUE_LOOP', 'SETUP_LOOP', 'SETUP_EXCEPT', 'SETUP_FINALLY', '<123>', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', '<127>', '<128>', '<129>', 'RAISE_VARARGS', 'CALL_FUNCTION', 'MAKE_FUNCTION', 'BUILD_SLICE', 'MAKE_CLOSURE', 'LOAD_CLOSURE', 'LOAD_DEREF', 'STORE_DEREF', '<138>', '<139>', 'CALL_FUNCTION_VAR', 'CALL_FUNCTION_KW', 'CALL_FUNCTION_VAR_KW', 'EXTENDED_ARG', '<144>', '<145>', '<146>', '<147>', '<148>', '<149>', '<150>', '<151>', '<152>', '<153>', '<154>', '<155>', '<156>', '<157>', '<158>', '<159>', '<160>', '<161>', '<162>', '<163>', '<164>', '<165>', '<166>', '<167>', '<168>', '<169>', '<170>', '<171>', '<172>', '<173>', '<174>', '<175>', '<176>', '<177>', '<178>', '<179>', '<180>', '<181>', '<182>', '<183>', '<184>', '<185>', '<186>', '<187>', '<188>', '<189>', '<190>', '<191>', '<192>', '<193>', '<194>', '<195>', '<196>', '<197>', '<198>', '<199>', '<200>', '<201>', '<202>', '<203>', '<204>', '<205>', '<206>', '<207>', '<208>', '<209>', '<210>', '<211>', '<212>', '<213>', '<214>', '<215>', '<216>', '<217>', '<218>', '<219>', '<220>', '<221>', '<222>', '<223>', '<224>', '<225>', '<226>', '<227>', '<228>', '<229>', '<230>', '<231>', '<232>', '<233>', '<234>', '<235>', '<236>', '<237>', '<238>', '<239>', '<240>', '<241>', '<242>', '<243>', '<244>', '<245>', '<246>', '<247>', '<248>', '<249>', '<250>', '<251>', '<252>', '<253>', '<254>', '<255>'],
    'stackeffect': {'BINARY_ADD': -1, 'BINARY_AND': -1, 'BINARY_FLOOR_DIVIDE': -1, 'BINARY_LSHIFT': -1, 'BINARY_MODULO': -1, 'BINARY_MULTIPLY': -1, 'BINARY_OR': -1, 'BINARY_POWER': -1, 'BINARY_RSHIFT': -1, 'BINARY_SUBSCR': -1, 'BINARY_SUBTRACT': -1, 'BINARY_TRUE_DIVIDE': -1, 'BINARY_XOR': -1, 'BREAK_LOOP': 0, 'BUILD_LIST': lambda arg: 1 - arg, 'BUILD_MAP': 1, 'BUILD_SET': lambda arg: 1 - arg, 'BUILD_SLICE': lambda arg: -2 if arg == 3 else -1, 'BUILD_TUPLE': lambda arg: 1 - arg, 'CALL_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)), 'CALL_FUNCTION_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 2, 'COMPARE_OP': -1, 'CONTINUE_LOOP': 0, 'DELETE_ATTR': -1, 'DELETE_FAST': 0, 'DELETE_GLOBAL': 0, 'DELETE_NAME': 0, 'DELETE_SUBSCR': -2, 'DUP_TOP': 1, 'DUP_TOPX': lambda arg: arg, 'END_FINALLY': -1, 'EXTENDED_ARG': None, 'FOR_ITER': 1, 'GET_ITER': 0, 'IMPORT_FROM': 1, 'IMPORT_NAME': 0, 'IMPORT_STAR': -1, 'INPLACE_ADD': -1, 'INPLACE_AND': -1, 'INPLACE_FLOOR_DIVIDE': -1, 'INPLACE_LSHIFT': -1, 'INPLACE_MODULO': -1, 'INPLACE_MULTIPLY': -1, 'INPLACE_OR': -1, 'INPLACE_POWER': -1, 'INPLACE_RSHIFT': -1, 'INPLACE_SUBTRACT': -1, 'INPLACE_TRUE_DIVIDE': -1, 'INPLACE_XOR': -1, 'JUMP_ABSOLUTE': 0, 'JUMP_FORWARD': 0, 'JUMP_IF_FALSE': 0, 'JUMP_IF_TRUE': 0, 'LIST_APPEND': -2, 'LOAD_ATTR': 0, 'LOAD_BUILD_CLASS': 1, 'LOAD_CLOSURE': 1, 'LOAD_CONST': 1, 'LOAD_DEREF': 1, 'LOAD_FAST': 1, 'LOAD_GLOBAL': 1, 'LOAD_NAME': 1, 'MAKE_CLOSURE': lambda arg: -1 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAKE_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'NOP': 0, 'POP_BLOCK': 0, 'POP_EXCEPT': 0, 'POP_TOP': -1, 'PRINT_EXPR': -1, 'RAISE_VARARGS': lambda arg: -arg, 'RETURN_VALUE': -1, 'ROT_FOUR': 0, 'ROT_THREE': 0, 'ROT_TWO': 0, 'SETUP_EXCEPT': 6, 'SETUP_FINALLY': 6, 'SETUP_LOOP': 0, 'SET_ADD': -2, 'STOP_CODE': None, 'STORE_ATTR': -2, 'STORE_DEREF': -1, 'STORE_FAST': -1, 'STORE_GLOBAL': -1, 'STORE_LOCALS': -1, 'STORE_MAP': -2, 'STORE_NAME': -1, 'STORE_SUBSCR': -3, 'UNARY_INVERT': 0, 'UNARY_NEGATIVE': 0, 'UNARY_NOT': 0, 'UNARY_POSITIVE': 0, 'UNPACK_EX': lambda arg: (arg & 255) + (arg >> 8), 'UNPACK_SEQUENCE': lambda arg: arg - 1, 'WITH_CLEANUP': -1, 'YIELD_VALUE': 0},
    'stackeffect_traits': 0,
}

#: This dictionary describes the internals of CPython 3.1.
PY_31 = {
    'version': 31,
    'magic': 3151,
    'pickle_highest_protocol': 3,
    'pickle_default_protocol': 3,
    'extended_arg': 143,
    'have_argument': 90,
    'hascompare': [107],
    'hasconst': [100],
    'hasfree': [135, 136, 137],
    'haslocal': [124, 125, 126],
    'hasname': [90, 91, 95, 96, 97, 98, 101, 106, 108, 109, 116],
    'hasjrel': [93, 110, 120, 121, 122],
    'hasjabs': [111, 112, 113, 114, 115, 119],
    'cmp_op': ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD'),
    'opmap': {'BINARY_ADD': 23, 'BINARY_AND': 64, 'BINARY_FLOOR_DIVIDE': 26, 'BINARY_LSHIFT': 62, 'BINARY_MODULO': 22, 'BINARY_MULTIPLY': 20, 'BINARY_OR': 66, 'BINARY_POWER': 19, 'BINARY_RSHIFT': 63, 'BINARY_SUBSCR': 25, 'BINARY_SUBTRACT': 24, 'BINARY_TRUE_DIVIDE': 27, 'BINARY_XOR': 65, 'BREAK_LOOP': 80, 'BUILD_LIST': 103, 'BUILD_MAP': 105, 'BUILD_SET': 104, 'BUILD_SLICE': 133, 'BUILD_TUPLE': 102, 'CALL_FUNCTION': 131, 'CALL_FUNCTION_KW': 141, 'CALL_FUNCTION_VAR': 140, 'CALL_FUNCTION_VAR_KW': 142, 'COMPARE_OP': 107, 'CONTINUE_LOOP': 119, 'DELETE_ATTR': 96, 'DELETE_FAST': 126, 'DELETE_GLOBAL': 98, 'DELETE_NAME': 91, 'DELETE_SUBSCR': 61, 'DUP_TOP': 4, 'DUP_TOPX': 99, 'END_FINALLY': 88, 'EXTENDED_ARG': 143, 'FOR_ITER': 93, 'GET_ITER': 68, 'IMPORT_FROM': 109, 'IMPORT_NAME': 108, 'IMPORT_STAR': 84, 'INPLACE_ADD': 55, 'INPLACE_AND': 77, 'INPLACE_FLOOR_DIVIDE': 28, 'INPLACE_LSHIFT': 75, 'INPLACE_MODULO': 59, 'INPLACE_MULTIPLY': 57, 'INPLACE_OR': 79, 'INPLACE_POWER': 67, 'INPLACE_RSHIFT': 76, 'INPLACE_SUBTRACT': 56, 'INPLACE_TRUE_DIVIDE': 29, 'INPLACE_XOR': 78, 'JUMP_ABSOLUTE': 113, 'JUMP_FORWARD': 110, 'JUMP_IF_FALSE_OR_POP': 111, 'JUMP_IF_TRUE_OR_POP': 112, 'LIST_APPEND': 145, 'LOAD_ATTR': 106, 'LOAD_BUILD_CLASS': 71, 'LOAD_CLOSURE': 135, 'LOAD_CONST': 100, 'LOAD_DEREF': 136, 'LOAD_FAST': 124, 'LOAD_GLOBAL': 116, 'LOAD_NAME': 101, 'MAKE_CLOSURE': 134, 'MAKE_FUNCTION': 132, 'MAP_ADD': 147, 'NOP': 9, 'POP_BLOCK': 87, 'POP_EXCEPT': 89, 'POP_JUMP_IF_FALSE': 114, 'POP_JUMP_IF_TRUE': 115, 'POP_TOP': 1, 'PRINT_EXPR': 70, 'RAISE_VARARGS': 130, 'RETURN_VALUE': 83, 'ROT_FOUR': 5, 'ROT_THREE': 3, 'ROT_TWO': 2, 'SETUP_EXCEPT': 121, 'SETUP_FINALLY': 122, 'SETUP_LOOP': 120, 'SET_ADD': 146, 'STOP_CODE': 0, 'STORE_ATTR': 95, 'STORE_DEREF': 137, 'STORE_FAST': 125, 'STORE_GLOBAL': 97, 'STORE_LOCALS': 69, 'STORE_MAP': 54, 'STORE_NAME': 90, 'STORE_SUBSCR': 60, 'UNARY_INVERT': 15, 'UNARY_NEGATIVE': 11, 'UNARY_NOT': 12, 'UNARY_POSITIVE': 10, 'UNPACK_EX': 94, 'UNPACK_SEQUENCE': 92, 'WITH_CLEANUP': 81, 'YIELD_VALUE': 86},
    'opname': ['STOP_CODE', 'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'DUP_TOP', 'ROT_FOUR', '<6>', '<7>', '<8>', 'NOP', 'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT', '<13>', '<14>', 'UNARY_INVERT', '<16>', '<17>', '<18>', 'BINARY_POWER', 'BINARY_MULTIPLY', '<21>', 'BINARY_MODULO', 'BINARY_ADD', 'BINARY_SUBTRACT', 'BINARY_SUBSCR', 'BINARY_FLOOR_DIVIDE', 'BINARY_TRUE_DIVIDE', 'INPLACE_FLOOR_DIVIDE', 'INPLACE_TRUE_DIVIDE', '<30>', '<31>', '<32>', '<33>', '<34>', '<35>', '<36>', '<37>', '<38>', '<39>', '<40>', '<41>', '<42>', '<43>', '<44>', '<45>', '<46>', '<47>', '<48>', '<49>', '<50>', '<51>', '<52>', '<53>', 'STORE_MAP', 'INPLACE_ADD', 'INPLACE_SUBTRACT', 'INPLACE_MULTIPLY', '<58>', 'INPLACE_MODULO', 'STORE_SUBSCR', 'DELETE_SUBSCR', 'BINARY_LSHIFT', 'BINARY_RSHIFT', 'BINARY_AND', 'BINARY_XOR', 'BINARY_OR', 'INPLACE_POWER', 'GET_ITER', 'STORE_LOCALS', 'PRINT_EXPR', 'LOAD_BUILD_CLASS', '<72>', '<73>', '<74>', 'INPLACE_LSHIFT', 'INPLACE_RSHIFT', 'INPLACE_AND', 'INPLACE_XOR', 'INPLACE_OR', 'BREAK_LOOP', 'WITH_CLEANUP', '<82>', 'RETURN_VALUE', 'IMPORT_STAR', '<85>', 'YIELD_VALUE', 'POP_BLOCK', 'END_FINALLY', 'POP_EXCEPT', 'STORE_NAME', 'DELETE_NAME', 'UNPACK_SEQUENCE', 'FOR_ITER', 'UNPACK_EX', 'STORE_ATTR', 'DELETE_ATTR', 'STORE_GLOBAL', 'DELETE_GLOBAL', 'DUP_TOPX', 'LOAD_CONST', 'LOAD_NAME', 'BUILD_TUPLE', 'BUILD_LIST', 'BUILD_SET', 'BUILD_MAP', 'LOAD_ATTR', 'COMPARE_OP', 'IMPORT_NAME', 'IMPORT_FROM', 'JUMP_FORWARD', 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'JUMP_ABSOLUTE', 'POP_JUMP_IF_FALSE', 'POP_JUMP_IF_TRUE', 'LOAD_GLOBAL', '<117>', '<118>', 'CONTINUE_LOOP', 'SETUP_LOOP', 'SETUP_EXCEPT', 'SETUP_FINALLY', '<123>', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', '<127>', '<128>', '<129>', 'RAISE_VARARGS', 'CALL_FUNCTION', 'MAKE_FUNCTION', 'BUILD_SLICE', 'MAKE_CLOSURE', 'LOAD_CLOSURE', 'LOAD_DEREF', 'STORE_DEREF', '<138>', '<139>', 'CALL_FUNCTION_VAR', 'CALL_FUNCTION_KW', 'CALL_FUNCTION_VAR_KW', 'EXTENDED_ARG', '<144>', 'LIST_APPEND', 'SET_ADD', 'MAP_ADD', '<148>', '<149>', '<150>', '<151>', '<152>', '<153>', '<154>', '<155>', '<156>', '<157>', '<158>', '<159>', '<160>', '<161>', '<162>', '<163>', '<164>', '<165>', '<166>', '<167>', '<168>', '<169>', '<170>', '<171>', '<172>', '<173>', '<174>', '<175>', '<176>', '<177>', '<178>', '<179>', '<180>', '<181>', '<182>', '<183>', '<184>', '<185>', '<186>', '<187>', '<188>', '<189>', '<190>', '<191>', '<192>', '<193>', '<194>', '<195>', '<196>', '<197>', '<198>', '<199>', '<200>', '<201>', '<202>', '<203>', '<204>', '<205>', '<206>', '<207>', '<208>', '<209>', '<210>', '<211>', '<212>', '<213>', '<214>', '<215>', '<216>', '<217>', '<218>', '<219>', '<220>', '<221>', '<222>', '<223>', '<224>', '<225>', '<226>', '<227>', '<228>', '<229>', '<230>', '<231>', '<232>', '<233>', '<234>', '<235>', '<236>', '<237>', '<238>', '<239>', '<240>', '<241>', '<242>', '<243>', '<244>', '<245>', '<246>', '<247>', '<248>', '<249>', '<250>', '<251>', '<252>', '<253>', '<254>', '<255>'],
    'stackeffect': {'BINARY_ADD': -1, 'BINARY_AND': -1, 'BINARY_FLOOR_DIVIDE': -1, 'BINARY_LSHIFT': -1, 'BINARY_MODULO': -1, 'BINARY_MULTIPLY': -1, 'BINARY_OR': -1, 'BINARY_POWER': -1, 'BINARY_RSHIFT': -1, 'BINARY_SUBSCR': -1, 'BINARY_SUBTRACT': -1, 'BINARY_TRUE_DIVIDE': -1, 'BINARY_XOR': -1, 'BREAK_LOOP': 0, 'BUILD_LIST': lambda arg: 1 - arg, 'BUILD_MAP': 1, 'BUILD_SET': lambda arg: 1 - arg, 'BUILD_SLICE': lambda arg: -2 if arg == 3 else -1, 'BUILD_TUPLE': lambda arg: 1 - arg, 'CALL_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)), 'CALL_FUNCTION_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 2, 'COMPARE_OP': -1, 'CONTINUE_LOOP': 0, 'DELETE_ATTR': -1, 'DELETE_FAST': 0, 'DELETE_GLOBAL': 0, 'DELETE_NAME': 0, 'DELETE_SUBSCR': -2, 'DUP_TOP': 1, 'DUP_TOPX': lambda arg: arg, 'END_FINALLY': -1, 'EXTENDED_ARG': None, 'FOR_ITER': 1, 'GET_ITER': 0, 'IMPORT_FROM': 1, 'IMPORT_NAME': 0, 'IMPORT_STAR': -1, 'INPLACE_ADD': -1, 'INPLACE_AND': -1, 'INPLACE_FLOOR_DIVIDE': -1, 'INPLACE_LSHIFT': -1, 'INPLACE_MODULO': -1, 'INPLACE_MULTIPLY': -1, 'INPLACE_OR': -1, 'INPLACE_POWER': -1, 'INPLACE_RSHIFT': -1, 'INPLACE_SUBTRACT': -1, 'INPLACE_TRUE_DIVIDE': -1, 'INPLACE_XOR': -1, 'JUMP_ABSOLUTE': 0, 'JUMP_FORWARD': 0, 'JUMP_IF_FALSE_OR_POP': 0, 'JUMP_IF_TRUE_OR_POP': 0, 'LIST_APPEND': -1, 'LOAD_ATTR': 0, 'LOAD_BUILD_CLASS': 1, 'LOAD_CLOSURE': 1, 'LOAD_CONST': 1, 'LOAD_DEREF': 1, 'LOAD_FAST': 1, 'LOAD_GLOBAL': 1, 'LOAD_NAME': 1, 'MAKE_CLOSURE': lambda arg: -1 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAKE_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAP_ADD': -2, 'NOP': 0, 'POP_BLOCK': 0, 'POP_EXCEPT': 0, 'POP_JUMP_IF_FALSE': -1, 'POP_JUMP_IF_TRUE': -1, 'POP_TOP': -1, 'PRINT_EXPR': -1, 'RAISE_VARARGS': lambda arg: -arg, 'RETURN_VALUE': -1, 'ROT_FOUR': 0, 'ROT_THREE': 0, 'ROT_TWO': 0, 'SETUP_EXCEPT': 6, 'SETUP_FINALLY': 6, 'SETUP_LOOP': 0, 'SET_ADD': -1, 'STOP_CODE': None, 'STORE_ATTR': -2, 'STORE_DEREF': -1, 'STORE_FAST': -1, 'STORE_GLOBAL': -1, 'STORE_LOCALS': -1, 'STORE_MAP': -2, 'STORE_NAME': -1, 'STORE_SUBSCR': -3, 'UNARY_INVERT': 0, 'UNARY_NEGATIVE': 0, 'UNARY_NOT': 0, 'UNARY_POSITIVE': 0, 'UNPACK_EX': lambda arg: (arg & 255) + (arg >> 8), 'UNPACK_SEQUENCE': lambda arg: arg - 1, 'WITH_CLEANUP': -1, 'YIELD_VALUE': 0},
    'stackeffect_traits': 0,
}

#: This dictionary describes the internals of CPython 3.2.
PY_32 = {
    'version': 32,
    'magic': 3180,
    'pickle_highest_protocol': 3,
    'pickle_default_protocol': 3,
    'extended_arg': 144,
    'have_argument': 90,
    'hascompare': [107],
    'hasconst': [100],
    'hasfree': [135, 136, 137, 138],
    'haslocal': [124, 125, 126],
    'hasname': [90, 91, 95, 96, 97, 98, 101, 106, 108, 109, 116],
    'hasjrel': [93, 110, 120, 121, 122, 143],
    'hasjabs': [111, 112, 113, 114, 115, 119],
    'cmp_op': ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD'),
    'opmap': {'BINARY_ADD': 23, 'BINARY_AND': 64, 'BINARY_FLOOR_DIVIDE': 26, 'BINARY_LSHIFT': 62, 'BINARY_MODULO': 22, 'BINARY_MULTIPLY': 20, 'BINARY_OR': 66, 'BINARY_POWER': 19, 'BINARY_RSHIFT': 63, 'BINARY_SUBSCR': 25, 'BINARY_SUBTRACT': 24, 'BINARY_TRUE_DIVIDE': 27, 'BINARY_XOR': 65, 'BREAK_LOOP': 80, 'BUILD_LIST': 103, 'BUILD_MAP': 105, 'BUILD_SET': 104, 'BUILD_SLICE': 133, 'BUILD_TUPLE': 102, 'CALL_FUNCTION': 131, 'CALL_FUNCTION_KW': 141, 'CALL_FUNCTION_VAR': 140, 'CALL_FUNCTION_VAR_KW': 142, 'COMPARE_OP': 107, 'CONTINUE_LOOP': 119, 'DELETE_ATTR': 96, 'DELETE_DEREF': 138, 'DELETE_FAST': 126, 'DELETE_GLOBAL': 98, 'DELETE_NAME': 91, 'DELETE_SUBSCR': 61, 'DUP_TOP': 4, 'DUP_TOP_TWO': 5, 'END_FINALLY': 88, 'EXTENDED_ARG': 144, 'FOR_ITER': 93, 'GET_ITER': 68, 'IMPORT_FROM': 109, 'IMPORT_NAME': 108, 'IMPORT_STAR': 84, 'INPLACE_ADD': 55, 'INPLACE_AND': 77, 'INPLACE_FLOOR_DIVIDE': 28, 'INPLACE_LSHIFT': 75, 'INPLACE_MODULO': 59, 'INPLACE_MULTIPLY': 57, 'INPLACE_OR': 79, 'INPLACE_POWER': 67, 'INPLACE_RSHIFT': 76, 'INPLACE_SUBTRACT': 56, 'INPLACE_TRUE_DIVIDE': 29, 'INPLACE_XOR': 78, 'JUMP_ABSOLUTE': 113, 'JUMP_FORWARD': 110, 'JUMP_IF_FALSE_OR_POP': 111, 'JUMP_IF_TRUE_OR_POP': 112, 'LIST_APPEND': 145, 'LOAD_ATTR': 106, 'LOAD_BUILD_CLASS': 71, 'LOAD_CLOSURE': 135, 'LOAD_CONST': 100, 'LOAD_DEREF': 136, 'LOAD_FAST': 124, 'LOAD_GLOBAL': 116, 'LOAD_NAME': 101, 'MAKE_CLOSURE': 134, 'MAKE_FUNCTION': 132, 'MAP_ADD': 147, 'NOP': 9, 'POP_BLOCK': 87, 'POP_EXCEPT': 89, 'POP_JUMP_IF_FALSE': 114, 'POP_JUMP_IF_TRUE': 115, 'POP_TOP': 1, 'PRINT_EXPR': 70, 'RAISE_VARARGS': 130, 'RETURN_VALUE': 83, 'ROT_THREE': 3, 'ROT_TWO': 2, 'SETUP_EXCEPT': 121, 'SETUP_FINALLY': 122, 'SETUP_LOOP': 120, 'SETUP_WITH': 143, 'SET_ADD': 146, 'STOP_CODE': 0, 'STORE_ATTR': 95, 'STORE_DEREF': 137, 'STORE_FAST': 125, 'STORE_GLOBAL': 97, 'STORE_LOCALS': 69, 'STORE_MAP': 54, 'STORE_NAME': 90, 'STORE_SUBSCR': 60, 'UNARY_INVERT': 15, 'UNARY_NEGATIVE': 11, 'UNARY_NOT': 12, 'UNARY_POSITIVE': 10, 'UNPACK_EX': 94, 'UNPACK_SEQUENCE': 92, 'WITH_CLEANUP': 81, 'YIELD_VALUE': 86},
    'opname': ['STOP_CODE', 'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'DUP_TOP', 'DUP_TOP_TWO', '<6>', '<7>', '<8>', 'NOP', 'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT', '<13>', '<14>', 'UNARY_INVERT', '<16>', '<17>', '<18>', 'BINARY_POWER', 'BINARY_MULTIPLY', '<21>', 'BINARY_MODULO', 'BINARY_ADD', 'BINARY_SUBTRACT', 'BINARY_SUBSCR', 'BINARY_FLOOR_DIVIDE', 'BINARY_TRUE_DIVIDE', 'INPLACE_FLOOR_DIVIDE', 'INPLACE_TRUE_DIVIDE', '<30>', '<31>', '<32>', '<33>', '<34>', '<35>', '<36>', '<37>', '<38>', '<39>', '<40>', '<41>', '<42>', '<43>', '<44>', '<45>', '<46>', '<47>', '<48>', '<49>', '<50>', '<51>', '<52>', '<53>', 'STORE_MAP', 'INPLACE_ADD', 'INPLACE_SUBTRACT', 'INPLACE_MULTIPLY', '<58>', 'INPLACE_MODULO', 'STORE_SUBSCR', 'DELETE_SUBSCR', 'BINARY_LSHIFT', 'BINARY_RSHIFT', 'BINARY_AND', 'BINARY_XOR', 'BINARY_OR', 'INPLACE_POWER', 'GET_ITER', 'STORE_LOCALS', 'PRINT_EXPR', 'LOAD_BUILD_CLASS', '<72>', '<73>', '<74>', 'INPLACE_LSHIFT', 'INPLACE_RSHIFT', 'INPLACE_AND', 'INPLACE_XOR', 'INPLACE_OR', 'BREAK_LOOP', 'WITH_CLEANUP', '<82>', 'RETURN_VALUE', 'IMPORT_STAR', '<85>', 'YIELD_VALUE', 'POP_BLOCK', 'END_FINALLY', 'POP_EXCEPT', 'STORE_NAME', 'DELETE_NAME', 'UNPACK_SEQUENCE', 'FOR_ITER', 'UNPACK_EX', 'STORE_ATTR', 'DELETE_ATTR', 'STORE_GLOBAL', 'DELETE_GLOBAL', '<99>', 'LOAD_CONST', 'LOAD_NAME', 'BUILD_TUPLE', 'BUILD_LIST', 'BUILD_SET', 'BUILD_MAP', 'LOAD_ATTR', 'COMPARE_OP', 'IMPORT_NAME', 'IMPORT_FROM', 'JUMP_FORWARD', 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'JUMP_ABSOLUTE', 'POP_JUMP_IF_FALSE', 'POP_JUMP_IF_TRUE', 'LOAD_GLOBAL', '<117>', '<118>', 'CONTINUE_LOOP', 'SETUP_LOOP', 'SETUP_EXCEPT', 'SETUP_FINALLY', '<123>', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', '<127>', '<128>', '<129>', 'RAISE_VARARGS', 'CALL_FUNCTION', 'MAKE_FUNCTION', 'BUILD_SLICE', 'MAKE_CLOSURE', 'LOAD_CLOSURE', 'LOAD_DEREF', 'STORE_DEREF', 'DELETE_DEREF', '<139>', 'CALL_FUNCTION_VAR', 'CALL_FUNCTION_KW', 'CALL_FUNCTION_VAR_KW', 'SETUP_WITH', 'EXTENDED_ARG', 'LIST_APPEND', 'SET_ADD', 'MAP_ADD', '<148>', '<149>', '<150>', '<151>', '<152>', '<153>', '<154>', '<155>', '<156>', '<157>', '<158>', '<159>', '<160>', '<161>', '<162>', '<163>', '<164>', '<165>', '<166>', '<167>', '<168>', '<169>', '<170>', '<171>', '<172>', '<173>', '<174>', '<175>', '<176>', '<177>', '<178>', '<179>', '<180>', '<181>', '<182>', '<183>', '<184>', '<185>', '<186>', '<187>', '<188>', '<189>', '<190>', '<191>', '<192>', '<193>', '<194>', '<195>', '<196>', '<197>', '<198>', '<199>', '<200>', '<201>', '<202>', '<203>', '<204>', '<205>', '<206>', '<207>', '<208>', '<209>', '<210>', '<211>', '<212>', '<213>', '<214>', '<215>', '<216>', '<217>', '<218>', '<219>', '<220>', '<221>', '<222>', '<223>', '<224>', '<225>', '<226>', '<227>', '<228>', '<229>', '<230>', '<231>', '<232>', '<233>', '<234>', '<235>', '<236>', '<237>', '<238>', '<239>', '<240>', '<241>', '<242>', '<243>', '<244>', '<245>', '<246>', '<247>', '<248>', '<249>', '<250>', '<251>', '<252>', '<253>', '<254>', '<255>'],
    'stackeffect': {'BINARY_ADD': -1, 'BINARY_AND': -1, 'BINARY_FLOOR_DIVIDE': -1, 'BINARY_LSHIFT': -1, 'BINARY_MODULO': -1, 'BINARY_MULTIPLY': -1, 'BINARY_OR': -1, 'BINARY_POWER': -1, 'BINARY_RSHIFT': -1, 'BINARY_SUBSCR': -1, 'BINARY_SUBTRACT': -1, 'BINARY_TRUE_DIVIDE': -1, 'BINARY_XOR': -1, 'BREAK_LOOP': 0, 'BUILD_LIST': lambda arg: 1 - arg, 'BUILD_MAP': 1, 'BUILD_SET': lambda arg: 1 - arg, 'BUILD_SLICE': lambda arg: -2 if arg == 3 else -1, 'BUILD_TUPLE': lambda arg: 1 - arg, 'CALL_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)), 'CALL_FUNCTION_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 2, 'COMPARE_OP': -1, 'CONTINUE_LOOP': 0, 'DELETE_ATTR': -1, 'DELETE_DEREF': 0, 'DELETE_FAST': 0, 'DELETE_GLOBAL': 0, 'DELETE_NAME': 0, 'DELETE_SUBSCR': -2, 'DUP_TOP': 1, 'DUP_TOP_TWO': 2, 'END_FINALLY': -1, 'EXTENDED_ARG': None, 'FOR_ITER': 1, 'GET_ITER': 0, 'IMPORT_FROM': 1, 'IMPORT_NAME': -1, 'IMPORT_STAR': -1, 'INPLACE_ADD': -1, 'INPLACE_AND': -1, 'INPLACE_FLOOR_DIVIDE': -1, 'INPLACE_LSHIFT': -1, 'INPLACE_MODULO': -1, 'INPLACE_MULTIPLY': -1, 'INPLACE_OR': -1, 'INPLACE_POWER': -1, 'INPLACE_RSHIFT': -1, 'INPLACE_SUBTRACT': -1, 'INPLACE_TRUE_DIVIDE': -1, 'INPLACE_XOR': -1, 'JUMP_ABSOLUTE': 0, 'JUMP_FORWARD': 0, 'JUMP_IF_FALSE_OR_POP': 0, 'JUMP_IF_TRUE_OR_POP': 0, 'LIST_APPEND': -1, 'LOAD_ATTR': 0, 'LOAD_BUILD_CLASS': 1, 'LOAD_CLOSURE': 1, 'LOAD_CONST': 1, 'LOAD_DEREF': 1, 'LOAD_FAST': 1, 'LOAD_GLOBAL': 1, 'LOAD_NAME': 1, 'MAKE_CLOSURE': lambda arg: -1 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAKE_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAP_ADD': -2, 'NOP': 0, 'POP_BLOCK': 0, 'POP_EXCEPT': 0, 'POP_JUMP_IF_FALSE': -1, 'POP_JUMP_IF_TRUE': -1, 'POP_TOP': -1, 'PRINT_EXPR': -1, 'RAISE_VARARGS': lambda arg: -arg, 'RETURN_VALUE': -1, 'ROT_THREE': 0, 'ROT_TWO': 0, 'SETUP_EXCEPT': 6, 'SETUP_FINALLY': 6, 'SETUP_LOOP': 0, 'SETUP_WITH': 7, 'SET_ADD': -1, 'STOP_CODE': None, 'STORE_ATTR': -2, 'STORE_DEREF': -1, 'STORE_FAST': -1, 'STORE_GLOBAL': -1, 'STORE_LOCALS': -1, 'STORE_MAP': -2, 'STORE_NAME': -1, 'STORE_SUBSCR': -3, 'UNARY_INVERT': 0, 'UNARY_NEGATIVE': 0, 'UNARY_NOT': 0, 'UNARY_POSITIVE': 0, 'UNPACK_EX': lambda arg: (arg & 255) + (arg >> 8), 'UNPACK_SEQUENCE': lambda arg: arg - 1, 'WITH_CLEANUP': -1, 'YIELD_VALUE': 0},
    'stackeffect_traits': 1,
}

#: This dictionary describes the internals of CPython 3.3.
PY_33 = {
    'version': 33,
    'magic': 3230,
    'pickle_highest_protocol': 3,
    'pickle_default_protocol': 3,
    'extended_arg': 144,
    'have_argument': 90,
    'hascompare': [107],
    'hasconst': [100],
    'hasfree': [135, 136, 137, 138],
    'haslocal': [124, 125, 126],
    'hasname': [90, 91, 95, 96, 97, 98, 101, 106, 108, 109, 116],
    'hasjrel': [93, 110, 120, 121, 122, 143],
    'hasjabs': [111, 112, 113, 114, 115, 119],
    'cmp_op': ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD'),
    'opmap': {'BINARY_ADD': 23, 'BINARY_AND': 64, 'BINARY_FLOOR_DIVIDE': 26, 'BINARY_LSHIFT': 62, 'BINARY_MODULO': 22, 'BINARY_MULTIPLY': 20, 'BINARY_OR': 66, 'BINARY_POWER': 19, 'BINARY_RSHIFT': 63, 'BINARY_SUBSCR': 25, 'BINARY_SUBTRACT': 24, 'BINARY_TRUE_DIVIDE': 27, 'BINARY_XOR': 65, 'BREAK_LOOP': 80, 'BUILD_LIST': 103, 'BUILD_MAP': 105, 'BUILD_SET': 104, 'BUILD_SLICE': 133, 'BUILD_TUPLE': 102, 'CALL_FUNCTION': 131, 'CALL_FUNCTION_KW': 141, 'CALL_FUNCTION_VAR': 140, 'CALL_FUNCTION_VAR_KW': 142, 'COMPARE_OP': 107, 'CONTINUE_LOOP': 119, 'DELETE_ATTR': 96, 'DELETE_DEREF': 138, 'DELETE_FAST': 126, 'DELETE_GLOBAL': 98, 'DELETE_NAME': 91, 'DELETE_SUBSCR': 61, 'DUP_TOP': 4, 'DUP_TOP_TWO': 5, 'END_FINALLY': 88, 'EXTENDED_ARG': 144, 'FOR_ITER': 93, 'GET_ITER': 68, 'IMPORT_FROM': 109, 'IMPORT_NAME': 108, 'IMPORT_STAR': 84, 'INPLACE_ADD': 55, 'INPLACE_AND': 77, 'INPLACE_FLOOR_DIVIDE': 28, 'INPLACE_LSHIFT': 75, 'INPLACE_MODULO': 59, 'INPLACE_MULTIPLY': 57, 'INPLACE_OR': 79, 'INPLACE_POWER': 67, 'INPLACE_RSHIFT': 76, 'INPLACE_SUBTRACT': 56, 'INPLACE_TRUE_DIVIDE': 29, 'INPLACE_XOR': 78, 'JUMP_ABSOLUTE': 113, 'JUMP_FORWARD': 110, 'JUMP_IF_FALSE_OR_POP': 111, 'JUMP_IF_TRUE_OR_POP': 112, 'LIST_APPEND': 145, 'LOAD_ATTR': 106, 'LOAD_BUILD_CLASS': 71, 'LOAD_CLOSURE': 135, 'LOAD_CONST': 100, 'LOAD_DEREF': 136, 'LOAD_FAST': 124, 'LOAD_GLOBAL': 116, 'LOAD_NAME': 101, 'MAKE_CLOSURE': 134, 'MAKE_FUNCTION': 132, 'MAP_ADD': 147, 'NOP': 9, 'POP_BLOCK': 87, 'POP_EXCEPT': 89, 'POP_JUMP_IF_FALSE': 114, 'POP_JUMP_IF_TRUE': 115, 'POP_TOP': 1, 'PRINT_EXPR': 70, 'RAISE_VARARGS': 130, 'RETURN_VALUE': 83, 'ROT_THREE': 3, 'ROT_TWO': 2, 'SETUP_EXCEPT': 121, 'SETUP_FINALLY': 122, 'SETUP_LOOP': 120, 'SETUP_WITH': 143, 'SET_ADD': 146, 'STORE_ATTR': 95, 'STORE_DEREF': 137, 'STORE_FAST': 125, 'STORE_GLOBAL': 97, 'STORE_LOCALS': 69, 'STORE_MAP': 54, 'STORE_NAME': 90, 'STORE_SUBSCR': 60, 'UNARY_INVERT': 15, 'UNARY_NEGATIVE': 11, 'UNARY_NOT': 12, 'UNARY_POSITIVE': 10, 'UNPACK_EX': 94, 'UNPACK_SEQUENCE': 92, 'WITH_CLEANUP': 81, 'YIELD_FROM': 72, 'YIELD_VALUE': 86},
    'opname': ['<0>', 'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'DUP_TOP', 'DUP_TOP_TWO', '<6>', '<7>', '<8>', 'NOP', 'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT', '<13>', '<14>', 'UNARY_INVERT', '<16>', '<17>', '<18>', 'BINARY_POWER', 'BINARY_MULTIPLY', '<21>', 'BINARY_MODULO', 'BINARY_ADD', 'BINARY_SUBTRACT', 'BINARY_SUBSCR', 'BINARY_FLOOR_DIVIDE', 'BINARY_TRUE_DIVIDE', 'INPLACE_FLOOR_DIVIDE', 'INPLACE_TRUE_DIVIDE', '<30>', '<31>', '<32>', '<33>', '<34>', '<35>', '<36>', '<37>', '<38>', '<39>', '<40>', '<41>', '<42>', '<43>', '<44>', '<45>', '<46>', '<47>', '<48>', '<49>', '<50>', '<51>', '<52>', '<53>', 'STORE_MAP', 'INPLACE_ADD', 'INPLACE_SUBTRACT', 'INPLACE_MULTIPLY', '<58>', 'INPLACE_MODULO', 'STORE_SUBSCR', 'DELETE_SUBSCR', 'BINARY_LSHIFT', 'BINARY_RSHIFT', 'BINARY_AND', 'BINARY_XOR', 'BINARY_OR', 'INPLACE_POWER', 'GET_ITER', 'STORE_LOCALS', 'PRINT_EXPR', 'LOAD_BUILD_CLASS', 'YIELD_FROM', '<73>', '<74>', 'INPLACE_LSHIFT', 'INPLACE_RSHIFT', 'INPLACE_AND', 'INPLACE_XOR', 'INPLACE_OR', 'BREAK_LOOP', 'WITH_CLEANUP', '<82>', 'RETURN_VALUE', 'IMPORT_STAR', '<85>', 'YIELD_VALUE', 'POP_BLOCK', 'END_FINALLY', 'POP_EXCEPT', 'STORE_NAME', 'DELETE_NAME', 'UNPACK_SEQUENCE', 'FOR_ITER', 'UNPACK_EX', 'STORE_ATTR', 'DELETE_ATTR', 'STORE_GLOBAL', 'DELETE_GLOBAL', '<99>', 'LOAD_CONST', 'LOAD_NAME', 'BUILD_TUPLE', 'BUILD_LIST', 'BUILD_SET', 'BUILD_MAP', 'LOAD_ATTR', 'COMPARE_OP', 'IMPORT_NAME', 'IMPORT_FROM', 'JUMP_FORWARD', 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'JUMP_ABSOLUTE', 'POP_JUMP_IF_FALSE', 'POP_JUMP_IF_TRUE', 'LOAD_GLOBAL', '<117>', '<118>', 'CONTINUE_LOOP', 'SETUP_LOOP', 'SETUP_EXCEPT', 'SETUP_FINALLY', '<123>', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', '<127>', '<128>', '<129>', 'RAISE_VARARGS', 'CALL_FUNCTION', 'MAKE_FUNCTION', 'BUILD_SLICE', 'MAKE_CLOSURE', 'LOAD_CLOSURE', 'LOAD_DEREF', 'STORE_DEREF', 'DELETE_DEREF', '<139>', 'CALL_FUNCTION_VAR', 'CALL_FUNCTION_KW', 'CALL_FUNCTION_VAR_KW', 'SETUP_WITH', 'EXTENDED_ARG', 'LIST_APPEND', 'SET_ADD', 'MAP_ADD', '<148>', '<149>', '<150>', '<151>', '<152>', '<153>', '<154>', '<155>', '<156>', '<157>', '<158>', '<159>', '<160>', '<161>', '<162>', '<163>', '<164>', '<165>', '<166>', '<167>', '<168>', '<169>', '<170>', '<171>', '<172>', '<173>', '<174>', '<175>', '<176>', '<177>', '<178>', '<179>', '<180>', '<181>', '<182>', '<183>', '<184>', '<185>', '<186>', '<187>', '<188>', '<189>', '<190>', '<191>', '<192>', '<193>', '<194>', '<195>', '<196>', '<197>', '<198>', '<199>', '<200>', '<201>', '<202>', '<203>', '<204>', '<205>', '<206>', '<207>', '<208>', '<209>', '<210>', '<211>', '<212>', '<213>', '<214>', '<215>', '<216>', '<217>', '<218>', '<219>', '<220>', '<221>', '<222>', '<223>', '<224>', '<225>', '<226>', '<227>', '<228>', '<229>', '<230>', '<231>', '<232>', '<233>', '<234>', '<235>', '<236>', '<237>', '<238>', '<239>', '<240>', '<241>', '<242>', '<243>', '<244>', '<245>', '<246>', '<247>', '<248>', '<249>', '<250>', '<251>', '<252>', '<253>', '<254>', '<255>'],
    'stackeffect': {'BINARY_ADD': -1, 'BINARY_AND': -1, 'BINARY_FLOOR_DIVIDE': -1, 'BINARY_LSHIFT': -1, 'BINARY_MODULO': -1, 'BINARY_MULTIPLY': -1, 'BINARY_OR': -1, 'BINARY_POWER': -1, 'BINARY_RSHIFT': -1, 'BINARY_SUBSCR': -1, 'BINARY_SUBTRACT': -1, 'BINARY_TRUE_DIVIDE': -1, 'BINARY_XOR': -1, 'BREAK_LOOP': 0, 'BUILD_LIST': lambda arg: 1 - arg, 'BUILD_MAP': 1, 'BUILD_SET': lambda arg: 1 - arg, 'BUILD_SLICE': lambda arg: -2 if arg == 3 else -1, 'BUILD_TUPLE': lambda arg: 1 - arg, 'CALL_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)), 'CALL_FUNCTION_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 2, 'COMPARE_OP': -1, 'CONTINUE_LOOP': 0, 'DELETE_ATTR': -1, 'DELETE_DEREF': 0, 'DELETE_FAST': 0, 'DELETE_GLOBAL': 0, 'DELETE_NAME': 0, 'DELETE_SUBSCR': -2, 'DUP_TOP': 1, 'DUP_TOP_TWO': 2, 'END_FINALLY': -1, 'EXTENDED_ARG': None, 'FOR_ITER': 1, 'GET_ITER': 0, 'IMPORT_FROM': 1, 'IMPORT_NAME': -1, 'IMPORT_STAR': -1, 'INPLACE_ADD': -1, 'INPLACE_AND': -1, 'INPLACE_FLOOR_DIVIDE': -1, 'INPLACE_LSHIFT': -1, 'INPLACE_MODULO': -1, 'INPLACE_MULTIPLY': -1, 'INPLACE_OR': -1, 'INPLACE_POWER': -1, 'INPLACE_RSHIFT': -1, 'INPLACE_SUBTRACT': -1, 'INPLACE_TRUE_DIVIDE': -1, 'INPLACE_XOR': -1, 'JUMP_ABSOLUTE': 0, 'JUMP_FORWARD': 0, 'JUMP_IF_FALSE_OR_POP': 0, 'JUMP_IF_TRUE_OR_POP': 0, 'LIST_APPEND': -1, 'LOAD_ATTR': 0, 'LOAD_BUILD_CLASS': 1, 'LOAD_CLOSURE': 1, 'LOAD_CONST': 1, 'LOAD_DEREF': 1, 'LOAD_FAST': 1, 'LOAD_GLOBAL': 1, 'LOAD_NAME': 1, 'MAKE_CLOSURE': lambda arg: -2 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAKE_FUNCTION': lambda arg: -1 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAP_ADD': -2, 'NOP': 0, 'POP_BLOCK': 0, 'POP_EXCEPT': 0, 'POP_JUMP_IF_FALSE': -1, 'POP_JUMP_IF_TRUE': -1, 'POP_TOP': -1, 'PRINT_EXPR': -1, 'RAISE_VARARGS': lambda arg: -arg, 'RETURN_VALUE': -1, 'ROT_THREE': 0, 'ROT_TWO': 0, 'SETUP_EXCEPT': 6, 'SETUP_FINALLY': 6, 'SETUP_LOOP': 0, 'SETUP_WITH': 7, 'SET_ADD': -1, 'STORE_ATTR': -2, 'STORE_DEREF': -1, 'STORE_FAST': -1, 'STORE_GLOBAL': -1, 'STORE_LOCALS': -1, 'STORE_MAP': -2, 'STORE_NAME': -1, 'STORE_SUBSCR': -3, 'UNARY_INVERT': 0, 'UNARY_NEGATIVE': 0, 'UNARY_NOT': 0, 'UNARY_POSITIVE': 0, 'UNPACK_EX': lambda arg: (arg & 255) + (arg >> 8), 'UNPACK_SEQUENCE': lambda arg: arg - 1, 'WITH_CLEANUP': -1, 'YIELD_FROM': -1, 'YIELD_VALUE': 0},
    'stackeffect_traits': 1,
}

#: This dictionary describes the internals of CPython 3.4.
PY_34 = {
    'version': 34,
    'magic': 3310,
    'pickle_highest_protocol': 4,
    'pickle_default_protocol': 3,
    'extended_arg': 144,
    'have_argument': 90,
    'hascompare': [107],
    'hasconst': [100],
    'hasfree': [135, 136, 137, 138, 148],
    'haslocal': [124, 125, 126],
    'hasname': [90, 91, 95, 96, 97, 98, 101, 106, 108, 109, 116],
    'hasjrel': [93, 110, 120, 121, 122, 143],
    'hasjabs': [111, 112, 113, 114, 115, 119],
    'cmp_op': ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD'),
    'opmap': {'BINARY_ADD': 23, 'BINARY_AND': 64, 'BINARY_FLOOR_DIVIDE': 26, 'BINARY_LSHIFT': 62, 'BINARY_MODULO': 22, 'BINARY_MULTIPLY': 20, 'BINARY_OR': 66, 'BINARY_POWER': 19, 'BINARY_RSHIFT': 63, 'BINARY_SUBSCR': 25, 'BINARY_SUBTRACT': 24, 'BINARY_TRUE_DIVIDE': 27, 'BINARY_XOR': 65, 'BREAK_LOOP': 80, 'BUILD_LIST': 103, 'BUILD_MAP': 105, 'BUILD_SET': 104, 'BUILD_SLICE': 133, 'BUILD_TUPLE': 102, 'CALL_FUNCTION': 131, 'CALL_FUNCTION_KW': 141, 'CALL_FUNCTION_VAR': 140, 'CALL_FUNCTION_VAR_KW': 142, 'COMPARE_OP': 107, 'CONTINUE_LOOP': 119, 'DELETE_ATTR': 96, 'DELETE_DEREF': 138, 'DELETE_FAST': 126, 'DELETE_GLOBAL': 98, 'DELETE_NAME': 91, 'DELETE_SUBSCR': 61, 'DUP_TOP': 4, 'DUP_TOP_TWO': 5, 'END_FINALLY': 88, 'EXTENDED_ARG': 144, 'FOR_ITER': 93, 'GET_ITER': 68, 'IMPORT_FROM': 109, 'IMPORT_NAME': 108, 'IMPORT_STAR': 84, 'INPLACE_ADD': 55, 'INPLACE_AND': 77, 'INPLACE_FLOOR_DIVIDE': 28, 'INPLACE_LSHIFT': 75, 'INPLACE_MODULO': 59, 'INPLACE_MULTIPLY': 57, 'INPLACE_OR': 79, 'INPLACE_POWER': 67, 'INPLACE_RSHIFT': 76, 'INPLACE_SUBTRACT': 56, 'INPLACE_TRUE_DIVIDE': 29, 'INPLACE_XOR': 78, 'JUMP_ABSOLUTE': 113, 'JUMP_FORWARD': 110, 'JUMP_IF_FALSE_OR_POP': 111, 'JUMP_IF_TRUE_OR_POP': 112, 'LIST_APPEND': 145, 'LOAD_ATTR': 106, 'LOAD_BUILD_CLASS': 71, 'LOAD_CLASSDEREF': 148, 'LOAD_CLOSURE': 135, 'LOAD_CONST': 100, 'LOAD_DEREF': 136, 'LOAD_FAST': 124, 'LOAD_GLOBAL': 116, 'LOAD_NAME': 101, 'MAKE_CLOSURE': 134, 'MAKE_FUNCTION': 132, 'MAP_ADD': 147, 'NOP': 9, 'POP_BLOCK': 87, 'POP_EXCEPT': 89, 'POP_JUMP_IF_FALSE': 114, 'POP_JUMP_IF_TRUE': 115, 'POP_TOP': 1, 'PRINT_EXPR': 70, 'RAISE_VARARGS': 130, 'RETURN_VALUE': 83, 'ROT_THREE': 3, 'ROT_TWO': 2, 'SETUP_EXCEPT': 121, 'SETUP_FINALLY': 122, 'SETUP_LOOP': 120, 'SETUP_WITH': 143, 'SET_ADD': 146, 'STORE_ATTR': 95, 'STORE_DEREF': 137, 'STORE_FAST': 125, 'STORE_GLOBAL': 97, 'STORE_MAP': 54, 'STORE_NAME': 90, 'STORE_SUBSCR': 60, 'UNARY_INVERT': 15, 'UNARY_NEGATIVE': 11, 'UNARY_NOT': 12, 'UNARY_POSITIVE': 10, 'UNPACK_EX': 94, 'UNPACK_SEQUENCE': 92, 'WITH_CLEANUP': 81, 'YIELD_FROM': 72, 'YIELD_VALUE': 86},
    'opname': ['<0>', 'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'DUP_TOP', 'DUP_TOP_TWO', '<6>', '<7>', '<8>', 'NOP', 'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT', '<13>', '<14>', 'UNARY_INVERT', '<16>', '<17>', '<18>', 'BINARY_POWER', 'BINARY_MULTIPLY', '<21>', 'BINARY_MODULO', 'BINARY_ADD', 'BINARY_SUBTRACT', 'BINARY_SUBSCR', 'BINARY_FLOOR_DIVIDE', 'BINARY_TRUE_DIVIDE', 'INPLACE_FLOOR_DIVIDE', 'INPLACE_TRUE_DIVIDE', '<30>', '<31>', '<32>', '<33>', '<34>', '<35>', '<36>', '<37>', '<38>', '<39>', '<40>', '<41>', '<42>', '<43>', '<44>', '<45>', '<46>', '<47>', '<48>', '<49>', '<50>', '<51>', '<52>', '<53>', 'STORE_MAP', 'INPLACE_ADD', 'INPLACE_SUBTRACT', 'INPLACE_MULTIPLY', '<58>', 'INPLACE_MODULO', 'STORE_SUBSCR', 'DELETE_SUBSCR', 'BINARY_LSHIFT', 'BINARY_RSHIFT', 'BINARY_AND', 'BINARY_XOR', 'BINARY_OR', 'INPLACE_POWER', 'GET_ITER', '<69>', 'PRINT_EXPR', 'LOAD_BUILD_CLASS', 'YIELD_FROM', '<73>', '<74>', 'INPLACE_LSHIFT', 'INPLACE_RSHIFT', 'INPLACE_AND', 'INPLACE_XOR', 'INPLACE_OR', 'BREAK_LOOP', 'WITH_CLEANUP', '<82>', 'RETURN_VALUE', 'IMPORT_STAR', '<85>', 'YIELD_VALUE', 'POP_BLOCK', 'END_FINALLY', 'POP_EXCEPT', 'STORE_NAME', 'DELETE_NAME', 'UNPACK_SEQUENCE', 'FOR_ITER', 'UNPACK_EX', 'STORE_ATTR', 'DELETE_ATTR', 'STORE_GLOBAL', 'DELETE_GLOBAL', '<99>', 'LOAD_CONST', 'LOAD_NAME', 'BUILD_TUPLE', 'BUILD_LIST', 'BUILD_SET', 'BUILD_MAP', 'LOAD_ATTR', 'COMPARE_OP', 'IMPORT_NAME', 'IMPORT_FROM', 'JUMP_FORWARD', 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'JUMP_ABSOLUTE', 'POP_JUMP_IF_FALSE', 'POP_JUMP_IF_TRUE', 'LOAD_GLOBAL', '<117>', '<118>', 'CONTINUE_LOOP', 'SETUP_LOOP', 'SETUP_EXCEPT', 'SETUP_FINALLY', '<123>', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', '<127>', '<128>', '<129>', 'RAISE_VARARGS', 'CALL_FUNCTION', 'MAKE_FUNCTION', 'BUILD_SLICE', 'MAKE_CLOSURE', 'LOAD_CLOSURE', 'LOAD_DEREF', 'STORE_DEREF', 'DELETE_DEREF', '<139>', 'CALL_FUNCTION_VAR', 'CALL_FUNCTION_KW', 'CALL_FUNCTION_VAR_KW', 'SETUP_WITH', 'EXTENDED_ARG', 'LIST_APPEND', 'SET_ADD', 'MAP_ADD', 'LOAD_CLASSDEREF', '<149>', '<150>', '<151>', '<152>', '<153>', '<154>', '<155>', '<156>', '<157>', '<158>', '<159>', '<160>', '<161>', '<162>', '<163>', '<164>', '<165>', '<166>', '<167>', '<168>', '<169>', '<170>', '<171>', '<172>', '<173>', '<174>', '<175>', '<176>', '<177>', '<178>', '<179>', '<180>', '<181>', '<182>', '<183>', '<184>', '<185>', '<186>', '<187>', '<188>', '<189>', '<190>', '<191>', '<192>', '<193>', '<194>', '<195>', '<196>', '<197>', '<198>', '<199>', '<200>', '<201>', '<202>', '<203>', '<204>', '<205>', '<206>', '<207>', '<208>', '<209>', '<210>', '<211>', '<212>', '<213>', '<214>', '<215>', '<216>', '<217>', '<218>', '<219>', '<220>', '<221>', '<222>', '<223>', '<224>', '<225>', '<226>', '<227>', '<228>', '<229>', '<230>', '<231>', '<232>', '<233>', '<234>', '<235>', '<236>', '<237>', '<238>', '<239>', '<240>', '<241>', '<242>', '<243>', '<244>', '<245>', '<246>', '<247>', '<248>', '<249>', '<250>', '<251>', '<252>', '<253>', '<254>', '<255>'],
    'stackeffect': {'BINARY_ADD': -1, 'BINARY_AND': -1, 'BINARY_FLOOR_DIVIDE': -1, 'BINARY_LSHIFT': -1, 'BINARY_MODULO': -1, 'BINARY_MULTIPLY': -1, 'BINARY_OR': -1, 'BINARY_POWER': -1, 'BINARY_RSHIFT': -1, 'BINARY_SUBSCR': -1, 'BINARY_SUBTRACT': -1, 'BINARY_TRUE_DIVIDE': -1, 'BINARY_XOR': -1, 'BREAK_LOOP': 0, 'BUILD_LIST': lambda arg: 1 - arg, 'BUILD_MAP': 1, 'BUILD_SET': lambda arg: 1 - arg, 'BUILD_SLICE': lambda arg: -2 if arg == 3 else -1, 'BUILD_TUPLE': lambda arg: 1 - arg, 'CALL_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)), 'CALL_FUNCTION_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 2, 'COMPARE_OP': -1, 'CONTINUE_LOOP': 0, 'DELETE_ATTR': -1, 'DELETE_DEREF': 0, 'DELETE_FAST': 0, 'DELETE_GLOBAL': 0, 'DELETE_NAME': 0, 'DELETE_SUBSCR': -2, 'DUP_TOP': 1, 'DUP_TOP_TWO': 2, 'END_FINALLY': -1, 'EXTENDED_ARG': None, 'FOR_ITER': 1, 'GET_ITER': 0, 'IMPORT_FROM': 1, 'IMPORT_NAME': -1, 'IMPORT_STAR': -1, 'INPLACE_ADD': -1, 'INPLACE_AND': -1, 'INPLACE_FLOOR_DIVIDE': -1, 'INPLACE_LSHIFT': -1, 'INPLACE_MODULO': -1, 'INPLACE_MULTIPLY': -1, 'INPLACE_OR': -1, 'INPLACE_POWER': -1, 'INPLACE_RSHIFT': -1, 'INPLACE_SUBTRACT': -1, 'INPLACE_TRUE_DIVIDE': -1, 'INPLACE_XOR': -1, 'JUMP_ABSOLUTE': 0, 'JUMP_FORWARD': 0, 'JUMP_IF_FALSE_OR_POP': 0, 'JUMP_IF_TRUE_OR_POP': 0, 'LIST_APPEND': -1, 'LOAD_ATTR': 0, 'LOAD_BUILD_CLASS': 1, 'LOAD_CLASSDEREF': 1, 'LOAD_CLOSURE': 1, 'LOAD_CONST': 1, 'LOAD_DEREF': 1, 'LOAD_FAST': 1, 'LOAD_GLOBAL': 1, 'LOAD_NAME': 1, 'MAKE_CLOSURE': lambda arg: -2 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAKE_FUNCTION': lambda arg: -1 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAP_ADD': -2, 'NOP': 0, 'POP_BLOCK': 0, 'POP_EXCEPT': 0, 'POP_JUMP_IF_FALSE': -1, 'POP_JUMP_IF_TRUE': -1, 'POP_TOP': -1, 'PRINT_EXPR': -1, 'RAISE_VARARGS': lambda arg: -arg, 'RETURN_VALUE': -1, 'ROT_THREE': 0, 'ROT_TWO': 0, 'SETUP_EXCEPT': 6, 'SETUP_FINALLY': 6, 'SETUP_LOOP': 0, 'SETUP_WITH': 7, 'SET_ADD': -1, 'STORE_ATTR': -2, 'STORE_DEREF': -1, 'STORE_FAST': -1, 'STORE_GLOBAL': -1, 'STORE_MAP': -2, 'STORE_NAME': -1, 'STORE_SUBSCR': -3, 'UNARY_INVERT': 0, 'UNARY_NEGATIVE': 0, 'UNARY_NOT': 0, 'UNARY_POSITIVE': 0, 'UNPACK_EX': lambda arg: (arg & 255) + (arg >> 8), 'UNPACK_SEQUENCE': lambda arg: arg - 1, 'WITH_CLEANUP': -1, 'YIELD_FROM': -1, 'YIELD_VALUE': 0},
    'stackeffect_traits': 3,
}

#: This dictionary describes the internals of CPython 3.5.
PY_35 = {
    'version': 35,
    'magic': 3350,
    'pickle_highest_protocol': 4,
    'pickle_default_protocol': 3,
    'extended_arg': 144,
    'have_argument': 90,
    'hascompare': [107],
    'hasconst': [100],
    'hasfree': [135, 136, 137, 138, 148],
    'haslocal': [124, 125, 126],
    'hasname': [90, 91, 95, 96, 97, 98, 101, 106, 108, 109, 116],
    'hasjrel': [93, 110, 120, 121, 122, 143, 154],
    'hasjabs': [111, 112, 113, 114, 115, 119],
    'cmp_op': ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD'),
    'opmap': {'BEFORE_ASYNC_WITH': 52, 'BINARY_ADD': 23, 'BINARY_AND': 64, 'BINARY_FLOOR_DIVIDE': 26, 'BINARY_LSHIFT': 62, 'BINARY_MATRIX_MULTIPLY': 16, 'BINARY_MODULO': 22, 'BINARY_MULTIPLY': 20, 'BINARY_OR': 66, 'BINARY_POWER': 19, 'BINARY_RSHIFT': 63, 'BINARY_SUBSCR': 25, 'BINARY_SUBTRACT': 24, 'BINARY_TRUE_DIVIDE': 27, 'BINARY_XOR': 65, 'BREAK_LOOP': 80, 'BUILD_LIST': 103, 'BUILD_LIST_UNPACK': 149, 'BUILD_MAP': 105, 'BUILD_MAP_UNPACK': 150, 'BUILD_MAP_UNPACK_WITH_CALL': 151, 'BUILD_SET': 104, 'BUILD_SET_UNPACK': 153, 'BUILD_SLICE': 133, 'BUILD_TUPLE': 102, 'BUILD_TUPLE_UNPACK': 152, 'CALL_FUNCTION': 131, 'CALL_FUNCTION_KW': 141, 'CALL_FUNCTION_VAR': 140, 'CALL_FUNCTION_VAR_KW': 142, 'COMPARE_OP': 107, 'CONTINUE_LOOP': 119, 'DELETE_ATTR': 96, 'DELETE_DEREF': 138, 'DELETE_FAST': 126, 'DELETE_GLOBAL': 98, 'DELETE_NAME': 91, 'DELETE_SUBSCR': 61, 'DUP_TOP': 4, 'DUP_TOP_TWO': 5, 'END_FINALLY': 88, 'EXTENDED_ARG': 144, 'FOR_ITER': 93, 'GET_AITER': 50, 'GET_ANEXT': 51, 'GET_AWAITABLE': 73, 'GET_ITER': 68, 'GET_YIELD_FROM_ITER': 69, 'IMPORT_FROM': 109, 'IMPORT_NAME': 108, 'IMPORT_STAR': 84, 'INPLACE_ADD': 55, 'INPLACE_AND': 77, 'INPLACE_FLOOR_DIVIDE': 28, 'INPLACE_LSHIFT': 75, 'INPLACE_MATRIX_MULTIPLY': 17, 'INPLACE_MODULO': 59, 'INPLACE_MULTIPLY': 57, 'INPLACE_OR': 79, 'INPLACE_POWER': 67, 'INPLACE_RSHIFT': 76, 'INPLACE_SUBTRACT': 56, 'INPLACE_TRUE_DIVIDE': 29, 'INPLACE_XOR': 78, 'JUMP_ABSOLUTE': 113, 'JUMP_FORWARD': 110, 'JUMP_IF_FALSE_OR_POP': 111, 'JUMP_IF_TRUE_OR_POP': 112, 'LIST_APPEND': 145, 'LOAD_ATTR': 106, 'LOAD_BUILD_CLASS': 71, 'LOAD_CLASSDEREF': 148, 'LOAD_CLOSURE': 135, 'LOAD_CONST': 100, 'LOAD_DEREF': 136, 'LOAD_FAST': 124, 'LOAD_GLOBAL': 116, 'LOAD_NAME': 101, 'MAKE_CLOSURE': 134, 'MAKE_FUNCTION': 132, 'MAP_ADD': 147, 'NOP': 9, 'POP_BLOCK': 87, 'POP_EXCEPT': 89, 'POP_JUMP_IF_FALSE': 114, 'POP_JUMP_IF_TRUE': 115, 'POP_TOP': 1, 'PRINT_EXPR': 70, 'RAISE_VARARGS': 130, 'RETURN_VALUE': 83, 'ROT_THREE': 3, 'ROT_TWO': 2, 'SETUP_ASYNC_WITH': 154, 'SETUP_EXCEPT': 121, 'SETUP_FINALLY': 122, 'SETUP_LOOP': 120, 'SETUP_WITH': 143, 'SET_ADD': 146, 'STORE_ATTR': 95, 'STORE_DEREF': 137, 'STORE_FAST': 125, 'STORE_GLOBAL': 97, 'STORE_NAME': 90, 'STORE_SUBSCR': 60, 'UNARY_INVERT': 15, 'UNARY_NEGATIVE': 11, 'UNARY_NOT': 12, 'UNARY_POSITIVE': 10, 'UNPACK_EX': 94, 'UNPACK_SEQUENCE': 92, 'WITH_CLEANUP_FINISH': 82, 'WITH_CLEANUP_START': 81, 'YIELD_FROM': 72, 'YIELD_VALUE': 86},
    'opname': ['<0>', 'POP_TOP', 'ROT_TWO', 'ROT_THREE', 'DUP_TOP', 'DUP_TOP_TWO', '<6>', '<7>', '<8>', 'NOP', 'UNARY_POSITIVE', 'UNARY_NEGATIVE', 'UNARY_NOT', '<13>', '<14>', 'UNARY_INVERT', 'BINARY_MATRIX_MULTIPLY', 'INPLACE_MATRIX_MULTIPLY', '<18>', 'BINARY_POWER', 'BINARY_MULTIPLY', '<21>', 'BINARY_MODULO', 'BINARY_ADD', 'BINARY_SUBTRACT', 'BINARY_SUBSCR', 'BINARY_FLOOR_DIVIDE', 'BINARY_TRUE_DIVIDE', 'INPLACE_FLOOR_DIVIDE', 'INPLACE_TRUE_DIVIDE', '<30>', '<31>', '<32>', '<33>', '<34>', '<35>', '<36>', '<37>', '<38>', '<39>', '<40>', '<41>', '<42>', '<43>', '<44>', '<45>', '<46>', '<47>', '<48>', '<49>', 'GET_AITER', 'GET_ANEXT', 'BEFORE_ASYNC_WITH', '<53>', '<54>', 'INPLACE_ADD', 'INPLACE_SUBTRACT', 'INPLACE_MULTIPLY', '<58>', 'INPLACE_MODULO', 'STORE_SUBSCR', 'DELETE_SUBSCR', 'BINARY_LSHIFT', 'BINARY_RSHIFT', 'BINARY_AND', 'BINARY_XOR', 'BINARY_OR', 'INPLACE_POWER', 'GET_ITER', 'GET_YIELD_FROM_ITER', 'PRINT_EXPR', 'LOAD_BUILD_CLASS', 'YIELD_FROM', 'GET_AWAITABLE', '<74>', 'INPLACE_LSHIFT', 'INPLACE_RSHIFT', 'INPLACE_AND', 'INPLACE_XOR', 'INPLACE_OR', 'BREAK_LOOP', 'WITH_CLEANUP_START', 'WITH_CLEANUP_FINISH', 'RETURN_VALUE', 'IMPORT_STAR', '<85>', 'YIELD_VALUE', 'POP_BLOCK', 'END_FINALLY', 'POP_EXCEPT', 'STORE_NAME', 'DELETE_NAME', 'UNPACK_SEQUENCE', 'FOR_ITER', 'UNPACK_EX', 'STORE_ATTR', 'DELETE_ATTR', 'STORE_GLOBAL', 'DELETE_GLOBAL', '<99>', 'LOAD_CONST', 'LOAD_NAME', 'BUILD_TUPLE', 'BUILD_LIST', 'BUILD_SET', 'BUILD_MAP', 'LOAD_ATTR', 'COMPARE_OP', 'IMPORT_NAME', 'IMPORT_FROM', 'JUMP_FORWARD', 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'JUMP_ABSOLUTE', 'POP_JUMP_IF_FALSE', 'POP_JUMP_IF_TRUE', 'LOAD_GLOBAL', '<117>', '<118>', 'CONTINUE_LOOP', 'SETUP_LOOP', 'SETUP_EXCEPT', 'SETUP_FINALLY', '<123>', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', '<127>', '<128>', '<129>', 'RAISE_VARARGS', 'CALL_FUNCTION', 'MAKE_FUNCTION', 'BUILD_SLICE', 'MAKE_CLOSURE', 'LOAD_CLOSURE', 'LOAD_DEREF', 'STORE_DEREF', 'DELETE_DEREF', '<139>', 'CALL_FUNCTION_VAR', 'CALL_FUNCTION_KW', 'CALL_FUNCTION_VAR_KW', 'SETUP_WITH', 'EXTENDED_ARG', 'LIST_APPEND', 'SET_ADD', 'MAP_ADD', 'LOAD_CLASSDEREF', 'BUILD_LIST_UNPACK', 'BUILD_MAP_UNPACK', 'BUILD_MAP_UNPACK_WITH_CALL', 'BUILD_TUPLE_UNPACK', 'BUILD_SET_UNPACK', 'SETUP_ASYNC_WITH', '<155>', '<156>', '<157>', '<158>', '<159>', '<160>', '<161>', '<162>', '<163>', '<164>', '<165>', '<166>', '<167>', '<168>', '<169>', '<170>', '<171>', '<172>', '<173>', '<174>', '<175>', '<176>', '<177>', '<178>', '<179>', '<180>', '<181>', '<182>', '<183>', '<184>', '<185>', '<186>', '<187>', '<188>', '<189>', '<190>', '<191>', '<192>', '<193>', '<194>', '<195>', '<196>', '<197>', '<198>', '<199>', '<200>', '<201>', '<202>', '<203>', '<204>', '<205>', '<206>', '<207>', '<208>', '<209>', '<210>', '<211>', '<212>', '<213>', '<214>', '<215>', '<216>', '<217>', '<218>', '<219>', '<220>', '<221>', '<222>', '<223>', '<224>', '<225>', '<226>', '<227>', '<228>', '<229>', '<230>', '<231>', '<232>', '<233>', '<234>', '<235>', '<236>', '<237>', '<238>', '<239>', '<240>', '<241>', '<242>', '<243>', '<244>', '<245>', '<246>', '<247>', '<248>', '<249>', '<250>', '<251>', '<252>', '<253>', '<254>', '<255>'],
    'stackeffect': {'BEFORE_ASYNC_WITH': 1, 'BINARY_ADD': -1, 'BINARY_AND': -1, 'BINARY_FLOOR_DIVIDE': -1, 'BINARY_LSHIFT': -1, 'BINARY_MATRIX_MULTIPLY': -1, 'BINARY_MODULO': -1, 'BINARY_MULTIPLY': -1, 'BINARY_OR': -1, 'BINARY_POWER': -1, 'BINARY_RSHIFT': -1, 'BINARY_SUBSCR': -1, 'BINARY_SUBTRACT': -1, 'BINARY_TRUE_DIVIDE': -1, 'BINARY_XOR': -1, 'BREAK_LOOP': 0, 'BUILD_LIST': lambda arg: 1 - arg, 'BUILD_LIST_UNPACK': lambda arg: 1 - arg, 'BUILD_MAP': lambda arg: 1 - 2 * arg, 'BUILD_MAP_UNPACK': lambda arg: 1 - arg, 'BUILD_MAP_UNPACK_WITH_CALL': lambda arg: 1 - (arg & 255), 'BUILD_SET': lambda arg: 1 - arg, 'BUILD_SET_UNPACK': lambda arg: 1 - arg, 'BUILD_SLICE': lambda arg: -2 if arg == 3 else -1, 'BUILD_TUPLE': lambda arg: 1 - arg, 'BUILD_TUPLE_UNPACK': lambda arg: 1 - arg, 'CALL_FUNCTION': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)), 'CALL_FUNCTION_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 1, 'CALL_FUNCTION_VAR_KW': lambda arg: -((arg % 256) + 2 * ((arg >> 8) % 256)) - 2, 'COMPARE_OP': -1, 'CONTINUE_LOOP': 0, 'DELETE_ATTR': -1, 'DELETE_DEREF': 0, 'DELETE_FAST': 0, 'DELETE_GLOBAL': 0, 'DELETE_NAME': 0, 'DELETE_SUBSCR': -2, 'DUP_TOP': 1, 'DUP_TOP_TWO': 2, 'END_FINALLY': -1, 'EXTENDED_ARG': None, 'FOR_ITER': 1, 'GET_AITER': 0, 'GET_ANEXT': 1, 'GET_AWAITABLE': 0, 'GET_ITER': 0, 'GET_YIELD_FROM_ITER': 0, 'IMPORT_FROM': 1, 'IMPORT_NAME': -1, 'IMPORT_STAR': -1, 'INPLACE_ADD': -1, 'INPLACE_AND': -1, 'INPLACE_FLOOR_DIVIDE': -1, 'INPLACE_LSHIFT': -1, 'INPLACE_MATRIX_MULTIPLY': -1, 'INPLACE_MODULO': -1, 'INPLACE_MULTIPLY': -1, 'INPLACE_OR': -1, 'INPLACE_POWER': -1, 'INPLACE_RSHIFT': -1, 'INPLACE_SUBTRACT': -1, 'INPLACE_TRUE_DIVIDE': -1, 'INPLACE_XOR': -1, 'JUMP_ABSOLUTE': 0, 'JUMP_FORWARD': 0, 'JUMP_IF_FALSE_OR_POP': 0, 'JUMP_IF_TRUE_OR_POP': 0, 'LIST_APPEND': -1, 'LOAD_ATTR': 0, 'LOAD_BUILD_CLASS': 1, 'LOAD_CLASSDEREF': 1, 'LOAD_CLOSURE': 1, 'LOAD_CONST': 1, 'LOAD_DEREF': 1, 'LOAD_FAST': 1, 'LOAD_GLOBAL': 1, 'LOAD_NAME': 1, 'MAKE_CLOSURE': lambda arg: -2 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAKE_FUNCTION': lambda arg: -1 - ((arg % 256) + 2 * ((arg >> 8) % 256)) - ((arg >> 16) & 0xffff), 'MAP_ADD': -2, 'NOP': 0, 'POP_BLOCK': 0, 'POP_EXCEPT': 0, 'POP_JUMP_IF_FALSE': -1, 'POP_JUMP_IF_TRUE': -1, 'POP_TOP': -1, 'PRINT_EXPR': -1, 'RAISE_VARARGS': lambda arg: -arg, 'RETURN_VALUE': -1, 'ROT_THREE': 0, 'ROT_TWO': 0, 'SETUP_ASYNC_WITH': 6, 'SETUP_EXCEPT': 6, 'SETUP_FINALLY': 6, 'SETUP_LOOP': 0, 'SETUP_WITH': 7, 'SET_ADD': -1, 'STORE_ATTR': -2, 'STORE_DEREF': -1, 'STORE_FAST': -1, 'STORE_GLOBAL': -1, 'STORE_NAME': -1, 'STORE_SUBSCR': -3, 'UNARY_INVERT': 0, 'UNARY_NEGATIVE': 0, 'UNARY_NOT': 0, 'UNARY_POSITIVE': 0, 'UNPACK_EX': lambda arg: (arg & 255) + (arg >> 8), 'UNPACK_SEQUENCE': lambda arg: arg - 1, 'WITH_CLEANUP_FINISH': -1, 'WITH_CLEANUP_START': 1, 'YIELD_FROM': -1, 'YIELD_VALUE': 0},
    'stackeffect_traits': 3,
}


#: This dictionary describes the internals of various python versions.
PY_INTERNALS = {
    26: PY_26,
    27: PY_27,
    30: PY_30,
    31: PY_31,
    32: PY_32,
    33: PY_33,
    34: PY_34,
    35: PY_35,
}
PY_INTERNALS[None] = PY_INTERNALS.get(sys.version_info[0] * 10 + sys.version_info[1])
if PY_INTERNALS[None] is None:
    warnings.warn('The running python version is unsupported, explicit internals will be required.')


def get_py_internals(version=None, default=None):
    """
    Given a version specification. It can be any dict which is returned
    verbatim, an index into :data:`PY_INTERNALS` or ``None``.

    Arguments:
        version: The python version to return the internals of.
        default: The python version that will be looked up if ``version`` is
            None.

    Returns:
        dict: The python internals for the requested version.
    """

    if version is None:
        version = default

    if isinstance(version, dict):
        return version
    elif version in PY_INTERNALS:
        return PY_INTERNALS[version]
    else:
        return ValueError('Unsupported python version %r requested.' % version)

