def find_config_file(i):
    """
    Input:  {
              full_path  - where to start search
            }

    Output: {
              return       - return code =  0, if successful
                                         >  0, if error
              (error)      - error text if return > 0

              found    - 'yes' if found
              dict     - loaded dict with the configuration ...
              filename - filename
              path     - path
            }

    """

    import os

    pf=i['full_path']
    filter_data_uid = i.get('data_uid', '')

    pf1=os.path.dirname(pf)

    found='no'
    d={}

    fn=''
    pf2=''
    while pf1!=pf and pf1!='':
       fn=cfg['ck_install_file']
       pf2=os.path.join(pf1,fn)
       if os.path.isfile(pf2):
          rx=ck.load_json_file({'json_file':pf2})
          if rx['return']==0:
             found='yes'
             d=rx['dict']
             break
       else:
          fn=cfg['ck_install_file_saved']
          pf2=os.path.join(pf1,fn)
          if os.path.isfile(pf2):
             rx=ck.load_json_file({'json_file':pf2})
             if rx['return']==0:
                found='yes'
                d=rx['dict']
                break

       pf=pf1
       pf1=os.path.dirname(pf)

    config_data_uid = d.get('data_uoa', '')
    if filter_data_uid and (config_data_uid != filter_data_uid):
        found = 'no'
        d = {}

    return {'return':0, 'found':found, 'dict':d, 'filename':fn, 'path':pf2}