# Path: haystack/argparse_utils.py
# def readable(f):
# def writeable(f):
# def int16(s):
# 
# Path: haystack/basicmodel.py
# def get_field_type(record, fieldname):
# def get_fields(record):
# def get_record_type_fields(record_type):
#     def __init__(self, memory_handler, my_constraints, target_ctypes=None):
#     def _get_constraints_for(self, record):
#     def _get_dynamic_constraints_for(self, record):
#     def get_orig_addr(self, record):
#     def is_valid(self, record):
#     def _is_valid_dynamic_constraints(self, record):
#     def _is_valid(self, record, record_constraints):
#     def _is_valid_attr(self, attr, attrname, attrtype, record_constraints):
#     def _is_loadable_member(self, attr, attrname, attrtype):
#     def load_members(self, record, max_depth):
#     def _load_member(self, record, attr, attrname, attrtype, record_constraints, max_depth):
#     def is_valid_address(self, obj, structType=None):
#     def is_valid_address_value(self, addr, structType=None):
#     def __str__(self):
# class CTypesRecordConstraintValidator(interfaces.IRecordConstraintsValidator):
#     MAX_CSTRING_SIZE = 1024
# 
# Path: haystack/constraints.py
# class ConstraintsConfigHandler(interfaces.IConstraintsConfigHandler):
# class ModuleConstraints(interfaces.IModuleConstraints):
# class RecordConstraints(interfaces.IRecordConstraints, dict):
# class IgnoreMember(interfaces.IConstraint):
# class ListLimitDepthValidation(interfaces.IConstraint):
# class RangeValue(interfaces.IConstraint):
# class NotValue(interfaces.IConstraint):
# class NotNullComparable(interfaces.IConstraint):
# class BytesComparable(interfaces.IConstraint):
#     def read(self, filename):
#     def _parse(self, value):
#     def _parse_c(self, value):
#     def _try_numbers(self, _arg):
#     def __init__(self):
#     def get_constraints(self):
#     def set_constraints(self, record_type_name, record_constraints):
#     def get_dynamic_constraints(self):
#     def set_dynamic_constraints(self, record_type_name, record_constraints):
#     def get_fields(self):
#     def get_constraints_for_field(self, field_name):
#     def __contains__(self, obj):
#     def __init__(self, max_depth):
#     def __contains__(self, obj):
#     def __init__(self, low, high):
#     def __contains__(self, obj):
#     def __eq__(self, obj):
#     def __init__(self, not_value):
#     def __contains__(self, obj):
#     def __eq__(self, obj):
#     def __contains__(self, obj):
#     def __eq__(self, obj):
#     def __init__(self, seq):
#     def __contains__(self, obj):
#     def __cmp__(self, obj):
# 
# Path: haystack/search/api.py
# class HaystackError(Exception):
# def search_record(memory_handler, record_type, search_constraints=None, extended_search=False):
# def search_record_hint(memory_handler, record_type, hint, search_constraints=None, extended_search=False):
# def output_to_string(memory_handler, results):
# def output_to_python(memory_handler, results):
# def output_to_json(memory_handler, results):
# def output_to_pickle(memory_handler, results):
# def load_record(memory_handler, struct_type, memory_address, load_constraints=None):
# def validate_record(memory_handler, instance, record_constraints=None, max_depth=10):


import argparse
import logging
import os
import sys
import time
import pkg_resources
            import code
            import code
    from urllib.parse import urlparse
    from urlparse import urlparse
from haystack import argparse_utils
from haystack import basicmodel
from haystack import constraints
from haystack.search import api
        from haystack.mappings import rek
    # validate if required
    validation = None
    if args.constraints_file:
        handler = constraints.ConstraintsConfigHandler()
        my_constraints = handler.read(args.constraints_file.name)
        validation = api.validate_record(memory_handler, result[0], my_constraints)
    # output handling
    ret = None
    try:
        ret = get_output(memory_handler, results, args.output)
        # print output on stdout
        print(ret)
        if args.constraints_file:
            print('Validated', validation)
    except Exception as e:
        log.error(e)
    finally:
        if args.interactive:
            print('results are local variable "results"')
            code.interact(local=locals())
    return


def check_varname_for_type(memory_handler, varname, struct_type):
    done = []
    st = struct_type
    model = memory_handler.get_model()
    ctypes = memory_handler.get_target_platform().get_target_ctypes()
    for v in varname:
        if not hasattr(st, v):

# Path: haystack/argparse_utils.py
# def readable(f):
# def writeable(f):
# def int16(s):
# 
# Path: haystack/basicmodel.py
# def get_field_type(record, fieldname):
# def get_fields(record):
# def get_record_type_fields(record_type):
#     def __init__(self, memory_handler, my_constraints, target_ctypes=None):
#     def _get_constraints_for(self, record):
#     def _get_dynamic_constraints_for(self, record):
#     def get_orig_addr(self, record):
#     def is_valid(self, record):
#     def _is_valid_dynamic_constraints(self, record):
#     def _is_valid(self, record, record_constraints):
#     def _is_valid_attr(self, attr, attrname, attrtype, record_constraints):
#     def _is_loadable_member(self, attr, attrname, attrtype):
#     def load_members(self, record, max_depth):
#     def _load_member(self, record, attr, attrname, attrtype, record_constraints, max_depth):
#     def is_valid_address(self, obj, structType=None):
#     def is_valid_address_value(self, addr, structType=None):
#     def __str__(self):
# class CTypesRecordConstraintValidator(interfaces.IRecordConstraintsValidator):
#     MAX_CSTRING_SIZE = 1024
# 
# Path: haystack/constraints.py
# class ConstraintsConfigHandler(interfaces.IConstraintsConfigHandler):
# class ModuleConstraints(interfaces.IModuleConstraints):
# class RecordConstraints(interfaces.IRecordConstraints, dict):
# class IgnoreMember(interfaces.IConstraint):
# class ListLimitDepthValidation(interfaces.IConstraint):
# class RangeValue(interfaces.IConstraint):
# class NotValue(interfaces.IConstraint):
# class NotNullComparable(interfaces.IConstraint):
# class BytesComparable(interfaces.IConstraint):
#     def read(self, filename):
#     def _parse(self, value):
#     def _parse_c(self, value):
#     def _try_numbers(self, _arg):
#     def __init__(self):
#     def get_constraints(self):
#     def set_constraints(self, record_type_name, record_constraints):
#     def get_dynamic_constraints(self):
#     def set_dynamic_constraints(self, record_type_name, record_constraints):
#     def get_fields(self):
#     def get_constraints_for_field(self, field_name):
#     def __contains__(self, obj):
#     def __init__(self, max_depth):
#     def __contains__(self, obj):
#     def __init__(self, low, high):
#     def __contains__(self, obj):
#     def __eq__(self, obj):
#     def __init__(self, not_value):
#     def __contains__(self, obj):
#     def __eq__(self, obj):
#     def __contains__(self, obj):
#     def __eq__(self, obj):
#     def __init__(self, seq):
#     def __contains__(self, obj):
#     def __cmp__(self, obj):
# 
# Path: haystack/search/api.py
# class HaystackError(Exception):
# def search_record(memory_handler, record_type, search_constraints=None, extended_search=False):
# def search_record_hint(memory_handler, record_type, hint, search_constraints=None, extended_search=False):
# def output_to_string(memory_handler, results):
# def output_to_python(memory_handler, results):
# def output_to_json(memory_handler, results):
# def output_to_pickle(memory_handler, results):
# def load_record(memory_handler, struct_type, memory_address, load_constraints=None):
# def validate_record(memory_handler, instance, record_constraints=None, max_depth=10):


# Path: haystack/cli.py
import argparse
import logging
import os
import sys
import time
import pkg_resources
            import code
            import code
    from urllib.parse import urlparse
    from urlparse import urlparse
from haystack import argparse_utils
from haystack import basicmodel
from haystack import constraints
from haystack.search import api
        from haystack.mappings import rek

    # validate if required
    validation = None
    if args.constraints_file:
        handler = constraints.ConstraintsConfigHandler()
        my_constraints = handler.read(args.constraints_file.name)
        validation = api.validate_record(memory_handler, result[0], my_constraints)
    # output handling
    ret = None
    try:
        ret = get_output(memory_handler, results, args.output)
        # print output on stdout
        print(ret)
        if args.constraints_file:
            print('Validated', validation)
    except Exception as e:
        log.error(e)
    finally:
        if args.interactive:
            print('results are local variable "results"')
            code.interact(local=locals())
    return


def check_varname_for_type(memory_handler, varname, struct_type):
    done = []
    st = struct_type
    model = memory_handler.get_model()
    ctypes = memory_handler.get_target_platform().get_target_ctypes()
    for v in varname:
        if not hasattr(st, v):

            fields = ["%s: %s" % (n, t) for n, t in basicmodel.get_fields(st)]