def smart_search_prefix(self):

        search_options = {}
        extra_query = None
        vrf_filter = None

        if 'query_id' in request.params:
            search_options['query_id'] = request.params['query_id']

        if 'include_all_parents' in request.params:
            if request.params['include_all_parents'] == 'true':
                search_options['include_all_parents'] = True
            else:
                search_options['include_all_parents'] = False

        if 'include_all_children' in request.params:
            if request.params['include_all_children'] == 'true':
                search_options['include_all_children'] = True
            else:
                search_options['include_all_children'] = False

        if 'parents_depth' in request.params:
            search_options['parents_depth'] = request.params['parents_depth']
        if 'children_depth' in request.params:
            search_options['children_depth'] = request.params['children_depth']
        if 'include_neighbors' in request.params:
            if request.params['include_neighbors'] == 'true':
                search_options['include_neighbors'] = True
            else:
                search_options['include_neighbors'] = False
        if 'max_result' in request.params:
            search_options['max_result'] = request.params['max_result']
        if 'offset' in request.params:
            search_options['offset'] = request.params['offset']
        if 'parent_prefix' in request.params:
            search_options['parent_prefix'] = request.params['parent_prefix']
        if 'vrf_filter[]' in request.params:
            vrf_filter_parts = []

            # Fetch VRF IDs from search query and build extra query dict for
            # smart_search_prefix.
            vrfs = request.params.getall('vrf_filter[]')

            if len(vrfs) > 0:
                vrf = vrfs[0]
                vrf_filter = {
                    'operator': 'equals',
                    'val1': 'vrf_id',
                    'val2': vrf if vrf != 'null' else None
                }

                for vrf in vrfs[1:]:
                    vrf_filter = {
                        'operator': 'or',
                        'val1': vrf_filter,
                        'val2': {
                            'operator': 'equals',
                            'val1': 'vrf_id',
                            'val2': vrf if vrf != 'null' else None
                        }
                    }

        if vrf_filter:
            extra_query = vrf_filter

        if 'indent' in request.params:
            if extra_query:
                extra_query = {
                        'operator': 'and',
                        'val1': extra_query,
                        'val2': {
                            'operator': 'equals',
                            'val1': 'indent',
                            'val2': request.params['indent']
                        }
                    }
            else:
                extra_query = {
                    'operator': 'equals',
                    'val1': 'indent',
                    'val2': request.params['indent']
                    }

        try:
            result = Prefix.smart_search(request.params['query_string'],
                search_options, extra_query)
        except NipapError, e:
            return json.dumps({'error': 1, 'message': e.args, 'type': type(e).__name__})

        return json.dumps(result, cls=NipapJSONEncoder)
Print the TITLE and USAGE and then start the main loop.
dataset/ETHPy150Open SpriteLink/NIPAP/nipap-www/nipapwww/controllers/xhr.py/XhrController.smart_search_prefix--crossover with--dataset/ETHPy150Open AnimeshShaw/Hash-Algorithm-Identifier/hashidentifier/HashIdentifier.py/main