##### SUMMARY
If I use copy module with `mode: preserve` and `remote_src: yes` and `src` has trailing slash (`/`), mode of files on first level directory hierarchy are not preserved.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
`lib/ansible/modules/files/copy.py`

##### ANSIBLE VERSION
```paste below
ansible 2.9.9
  config file = /home/pbabinca/workspace/pbabinca-pub-configs/ansible.cfg
  configured module search path = ['/home/pbabinca/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.7 (default, Mar 13 2020, 10:23:39) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
```

##### CONFIGURATION
```paste below
COMMAND_WARNINGS(/home/pbabinca/workspace/pbabinca-pub-configs/ansible.cfg) = True
DEFAULT_ASK_VAULT_PASS(/home/pbabinca/workspace/pbabinca-pub-configs/ansible.cfg) = False
DEFAULT_HOST_LIST(/home/pbabinca/workspace/pbabinca-pub-configs/ansible.cfg) = ['/home/pbabinca/workspace/pbabinca-pub-configs/production']
DEFAULT_ROLES_PATH(/home/pbabinca/workspace/pbabinca-pub-configs/ansible.cfg) = ['/home/pbabinca/workspace/pbabinca-pub-configs/roles']
DEFAULT_STDOUT_CALLBACK(/home/pbabinca/workspace/pbabinca-pub-configs/ansible.cfg) = yaml
DEFAULT_UNDEFINED_VAR_BEHAVIOR(/home/pbabinca/workspace/pbabinca-pub-configs/ansible.cfg) = True
HOST_KEY_CHECKING(/home/pbabinca/workspace/pbabinca-pub-configs/ansible.cfg) = False
```

##### OS / ENVIRONMENT
```
$ cat /etc/os-release
NAME=Fedora
VERSION="31 (Workstation Edition)"
ID=fedora
VERSION_ID=31
VERSION_CODENAME=""
PLATFORM_ID="platform:f31"
PRETTY_NAME="Fedora 31 (Workstation Edition)"
ANSI_COLOR="0;34"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:31"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f31/system-administrators-guide/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=31
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=31
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation
```

##### STEPS TO REPRODUCE
Creates directory structure and copies it around:

```yaml
- name: Temp dir
  tempfile:
    state: directory
  register: tmp_dir

- name: Create directory structure
  file:
    path: "{{ tmp_dir.path }}/{{ item }}"
    state: directory
  loop:
    - "src/dir"
    - "dest-src-slash"

- name: Create file structure
  file:
    path: "{{ tmp_dir.path }}/src/{{ item.name }}"
    state: touch
    mode: "{{ item.mode }}"
  loop: 
    - { name: 'normal', mode: 'u+rw,g=r,o=r' }
    - { name: 'executable', mode: 'u=rwx,go=rx' }
    - { name: 'readonly', mode: 'a=r' }
    - { name: 'dir/normal', mode: 'u+rw,g=r,o=r' }
    - { name: 'dir/executable', mode: 'u=rwx,go=rx' }
    - { name: 'dir/readonly', mode: 'a=r' }

- name: Recursive remote copy with preserve
  copy:
    src: "{{ tmp_dir.path }}/{{ item.src }}"
    dest: "{{ tmp_dir.path }}/{{ item.dest }}"
    remote_src: yes
    mode: preserve
  loop:
    - { src: 'src/', dest: 'dest-src-slash/' }

- name: List dest
  command: "ls -lR {{ tmp_dir.path }}/src {{ tmp_dir.path }}/dest-src-slash"
  register: listing

- name: Print Listing
  debug:
    msg: "{{ listing.stdout }}"

- name: Remove temp dir
  file:
    name: "{{ tmp_dir.path }}"
    state: absent
```

##### EXPECTED RESULTS
Task "Print Listing" should include these lines - note that modes correspond to modes listed above:
```
    /tmp/ansible.bx788pbc/dest-src-slash:
    total 0
    drwxrwxr-x. 2 ansible ansible 100 May 31 22:42 dir1
    -rwxr-xr-x. 1 ansible ansible 0 May 31 22:42 executable
    -rw-r--r--. 1 ansible ansible 0 May 31 22:42 normal
    -r--r--r--. 1 ansible ansible 0 May 31 22:42 readonly
```


##### ACTUAL RESULTS
Task "Print Listing" includes these lines - note that of all files is `a=rw`:
```paste below
    /tmp/ansible.bx788pbc/dest-src-slash:
    total 0
    drwxrwxr-x. 2 ansible ansible 100 May 31 22:42 dir1
    -rw-rw-r--. 1 ansible ansible   0 May 31 22:42 executable
    -rw-rw-r--. 1 ansible ansible   0 May 31 22:42 normal
    -rw-rw-r--. 1 ansible ansible   0 May 31 22:42 readonly
```
os.makedirs(b_dirname)
            directory_args = module.load_file_common_arguments(module.params)
            directory_mode = module.params["directory_mode"]
            if directory_mode is not None:
                directory_args['mode'] = directory_mode
            else:
                directory_args['mode'] = None
            adjust_recursive_directory_permissions(pre_existing_dir, new_directory_list, module, directory_args, changed)
    if os.path.isdir(b_dest):
        basename = os.path.basename(src)
        if _original_basename:
            basename = _original_basename
        dest = os.path.join(dest, basename)
        b_dest = to_bytes(dest, errors='surrogate_or_strict')
    if os.path.exists(b_dest):
        if os.path.islink(b_dest) and follow:
            b_dest = os.path.realpath(b_dest)
            dest = to_native(b_dest, errors='surrogate_or_strict')
        if not force:
            module.exit_json(msg="file already exists", src=src, dest=dest, changed=False)
        if os.access(b_dest, os.R_OK) and os.path.isfile(b_dest):
            checksum_dest = module.sha1(dest)
    else:
        if not os.path.exists(os.path.dirname(b_dest)):
            try:
                
                
                
                
                os.stat(os.path.dirname(b_dest))