# Path: jinja2/utils.py
#     def _test_gen_bug():
#         def concat(gen):
#     def is_python_keyword(name):
#     def method(self): pass
# def _func():
# def contextfunction(f):
# def environmentfunction(f):
# def is_undefined(obj):
# def consume(iterable):
# def clear_caches():
# def import_string(import_name, silent=False):
# def open_if_exists(filename, mode='r'):
# def pformat(obj, verbose=False):
# def urlize(text, trim_url_limit=None, nofollow=False):
# def generate_lorem_ipsum(n=5, html=True, min=20, max=100):
#     def __new__(cls, base=u'', encoding=None, errors='strict'):
#     def __html__(self):
#     def __add__(self, other):
#     def __radd__(self, other):
#     def __mul__(self, num):
#     def __mod__(self, arg):
#     def __repr__(self):
#     def join(self, seq):
#     def split(self, *args, **kwargs):
#     def rsplit(self, *args, **kwargs):
#     def splitlines(self, *args, **kwargs):
#     def unescape(self):
#         def handle_match(m):
#     def striptags(self):
#     def escape(cls, s):
#     def make_wrapper(name):
#         def func(self, *args, **kwargs):
# def _escape_argspec(obj, iterable):
#     def __init__(self, obj):
#     def __init__(self, capacity):
#     def _postinit(self):
#     def _remove(self, obj):
#     def __getstate__(self):
#     def __setstate__(self, d):
#     def __getnewargs__(self):
#     def copy(self):
#     def get(self, key, default=None):
#     def setdefault(self, key, default=None):
#     def clear(self):
#     def __contains__(self, key):
#     def __len__(self):
#     def __repr__(self):
#     def __getitem__(self, key):
#     def __setitem__(self, key, value):
#     def __delitem__(self, key):
#     def items(self):
#     def iteritems(self):
#     def values(self):
#     def itervalue(self):
#     def keys(self):
#     def iterkeys(self):
#     def __reversed__(self):
#     def __init__(self, *items):
#     def reset(self):
#     def current(self):
#     def next(self):
#     def __init__(self, sep=u', '):
#     def __call__(self):
#     def escape(s):
#     def soft_unicode(s):
#         def __init__(self, _func, *args, **kwargs):
#         def __call__(self, *args, **kwargs):
# class _C(object):
# class Markup(unicode):
# class _MarkupEscapeHelper(object):
# class LRUCache(object):
# class Cycler(object):
# class Joiner(object):
#     class partial(object):


import sys
    import ctypes
from jinja2.utils import CodeType
    from types import TracebackType
    from jinja2._speedups import tb_set_next
        locals = {}
    for name, value in real_locals.iteritems():
        if name.startswith('l_'):
            locals[name[2:]] = value

    # if there is a local called __jinja_exception__, we get
    # rid of it to not break the debug functionality.
    locals.pop('__jinja_exception__', None)

    # assamble fake globals we need
    globals = {
        '__name__':             filename,
        '__file__':             filename,
        '__jinja_exception__':  exc_info[:2]
    }

    # and fake the exception
    code = compile('\n' * (lineno - 1) + 'raise __jinja_exception__[0], ' +
                   '__jinja_exception__[1]', filename, 'exec')

    # if it's possible, change the name of the code.  This won't work
    # on some python environments such as google appengine
    try:
        function = tb.tb_frame.f_code.co_name
        if function == 'root':
            location = 'top-level template code'
        elif function.startswith('block_'):
            location = 'block "%s"' % function[6:]
        else:
            location = 'template'

# Path: jinja2/utils.py
#     def _test_gen_bug():
#         def concat(gen):
#     def is_python_keyword(name):
#     def method(self): pass
# def _func():
# def contextfunction(f):
# def environmentfunction(f):
# def is_undefined(obj):
# def consume(iterable):
# def clear_caches():
# def import_string(import_name, silent=False):
# def open_if_exists(filename, mode='r'):
# def pformat(obj, verbose=False):
# def urlize(text, trim_url_limit=None, nofollow=False):
# def generate_lorem_ipsum(n=5, html=True, min=20, max=100):
#     def __new__(cls, base=u'', encoding=None, errors='strict'):
#     def __html__(self):
#     def __add__(self, other):
#     def __radd__(self, other):
#     def __mul__(self, num):
#     def __mod__(self, arg):
#     def __repr__(self):
#     def join(self, seq):
#     def split(self, *args, **kwargs):
#     def rsplit(self, *args, **kwargs):
#     def splitlines(self, *args, **kwargs):
#     def unescape(self):
#         def handle_match(m):
#     def striptags(self):
#     def escape(cls, s):
#     def make_wrapper(name):
#         def func(self, *args, **kwargs):
# def _escape_argspec(obj, iterable):
#     def __init__(self, obj):
#     def __init__(self, capacity):
#     def _postinit(self):
#     def _remove(self, obj):
#     def __getstate__(self):
#     def __setstate__(self, d):
#     def __getnewargs__(self):
#     def copy(self):
#     def get(self, key, default=None):
#     def setdefault(self, key, default=None):
#     def clear(self):
#     def __contains__(self, key):
#     def __len__(self):
#     def __repr__(self):
#     def __getitem__(self, key):
#     def __setitem__(self, key, value):
#     def __delitem__(self, key):
#     def items(self):
#     def iteritems(self):
#     def values(self):
#     def itervalue(self):
#     def keys(self):
#     def iterkeys(self):
#     def __reversed__(self):
#     def __init__(self, *items):
#     def reset(self):
#     def current(self):
#     def next(self):
#     def __init__(self, sep=u', '):
#     def __call__(self):
#     def escape(s):
#     def soft_unicode(s):
#         def __init__(self, _func, *args, **kwargs):
#         def __call__(self, *args, **kwargs):
# class _C(object):
# class Markup(unicode):
# class _MarkupEscapeHelper(object):
# class LRUCache(object):
# class Cycler(object):
# class Joiner(object):
#     class partial(object):


# Path: jinja2/debug.py
import sys
    import ctypes
from jinja2.utils import CodeType
    from types import TracebackType
    from jinja2._speedups import tb_set_next

        locals = {}
    for name, value in real_locals.iteritems():
        if name.startswith('l_'):
            locals[name[2:]] = value

    # if there is a local called __jinja_exception__, we get
    # rid of it to not break the debug functionality.
    locals.pop('__jinja_exception__', None)

    # assamble fake globals we need
    globals = {
        '__name__':             filename,
        '__file__':             filename,
        '__jinja_exception__':  exc_info[:2]
    }

    # and fake the exception
    code = compile('\n' * (lineno - 1) + 'raise __jinja_exception__[0], ' +
                   '__jinja_exception__[1]', filename, 'exec')

    # if it's possible, change the name of the code.  This won't work
    # on some python environments such as google appengine
    try:
        function = tb.tb_frame.f_code.co_name
        if function == 'root':
            location = 'top-level template code'
        elif function.startswith('block_'):
            location = 'block "%s"' % function[6:]
        else:
            location = 'template'

        code = CodeType(0, code.co_nlocals, code.co_stacksize,