<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _ctx_elt_properties(elt, ctx=None, create=False):
 """Get elt properties related to a ctx. :param elt: property component elt. Not None methods or unhashable types. :param ctx: elt ctx from where get properties. Equals elt if None. It allows to get function properties related to a class or instance if related function is defined in base class. :param bool create: create ctx elt properties if not exist. :return: dictionary of property by name embedded into ctx __dict__ or in shared __STATIC_ELEMENTS_CACHE__ or else in shared __UNHASHABLE_ELTS_CACHE__. None if no properties exists. :rtype: dict """


    result = None

    if ctx is None:
        ctx = find_ctx(elt=elt)

    ctx_properties = None

    # in case of dynamic object, parse the ctx __dict__
    ctx__dict__ = getattr(ctx, __DICT__, None)
    if ctx__dict__ is not None and isinstance(ctx__dict__, dict):
        # if properties exist in ctx__dict__
        if __B3J0F__PROPERTIES__ in ctx__dict__:
            ctx_properties = ctx__dict__[__B3J0F__PROPERTIES__]
        elif create:  # if create in worst case
            ctx_properties = ctx__dict__[__B3J0F__PROPERTIES__] = {}

    else:  # in case of static object
        if isinstance(ctx, Hashable):  # search among static elements
            cache = __STATIC_ELEMENTS_CACHE__
        else:  # or unhashable elements
            cache = __UNHASHABLE_ELTS_CACHE__
            ctx = id(ctx)
            if not isinstance(elt, Hashable):
                elt = id(elt)
        # if ctx is in cache
        if ctx in cache:
            # get its properties
            ctx_properties = cache[ctx]
        elif create:  # elif create, get an empty dict
            ctx_properties = cache[ctx] = {}

    # if ctx_properties is not None
    if ctx_properties is not None:
        # check if elt exist in ctx_properties
        if elt in ctx_properties:
            result = ctx_properties[elt]
        elif create:  # create the right data if create
            if create:
                result = ctx_properties[elt] = {}

    return result