We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
aws_s3 is automaticly decrypting ansible-vault encrypted files before put
<!---
Verify first that your issue/request is not already reported on GitHub.
Also test if the latest release, and devel branch are affected too.
Always add information AFTER of these html comments. -->

##### ISSUE TYPE
 - Bug Report

##### COMPONENT NAME
aws_s3

##### ANSIBLE VERSION
<!--- Paste, BELOW THIS COMMENT, verbatim output from "ansible --version" between quotes below -->
```
2.5.1
```

##### SUMMARY
- I'm trying to upload an ansible-vault encrypted file with aws_s3. But aws_s3 decrypts the src: file before uploading it to S3. 
- aws_s3 in 2.4 didn't decrypt the src: parameter.
- The documentation for aws_s3 doesn't mention that the src: parameter is autodecrypted.
- The aws_s3 module doesn't accept the decrypt: argument.

##### STEPS TO REPRODUCE
<!--- Paste example playbooks or commands between quotes below -->
```yaml
- name: upload vault to s3
  aws_s3:
    bucket: "the bucket"
    object: "file.txt"
    src: "file.txt"
    mode: put
```
1. The file.txt is encrypted with ansible-vault. 
2. The playbook that runs this task is invoked with --vault-password and is able to decrypt the file because other tasks need the file decrypted.

##### EXPECTED RESULTS
Don't autodecrypt the src: argument or be able to specify decrypt: no.

##### ACTUAL RESULTS
The src: argument to aws_s3 is automagicly decrypted without documentation or a way to disable the feature like other modules (ex. copy).

aws_s3 is automaticly decrypting ansible-vault encrypted files before put
<!---
Verify first that your issue/request is not already reported on GitHub.
Also test if the latest release, and devel branch are affected too.
Always add information AFTER of these html comments. -->

##### ISSUE TYPE
 - Bug Report

##### COMPONENT NAME
aws_s3

##### ANSIBLE VERSION
<!--- Paste, BELOW THIS COMMENT, verbatim output from "ansible --version" between quotes below -->
```
2.5.1
```

##### SUMMARY
- I'm trying to upload an ansible-vault encrypted file with aws_s3. But aws_s3 decrypts the src: file before uploading it to S3. 
- aws_s3 in 2.4 didn't decrypt the src: parameter.
- The documentation for aws_s3 doesn't mention that the src: parameter is autodecrypted.
- The aws_s3 module doesn't accept the decrypt: argument.

##### STEPS TO REPRODUCE
<!--- Paste example playbooks or commands between quotes below -->
```yaml
- name: upload vault to s3
  aws_s3:
    bucket: "the bucket"
    object: "file.txt"
    src: "file.txt"
    mode: put
```
1. The file.txt is encrypted with ansible-vault. 
2. The playbook that runs this task is invoked with --vault-password and is able to decrypt the file because other tasks need the file decrypted.

##### EXPECTED RESULTS
Don't autodecrypt the src: argument or be able to specify decrypt: no.

##### ACTUAL RESULTS
The src: argument to aws_s3 is automagicly decrypted without documentation or a way to disable the feature like other modules (ex. copy).


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `lib/ansible/plugins/action/aws_s3.py`
Content:
```
1 # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>
2 # (c) 2018, Will Thames <will@thames.id.au>
3 #
4 # This file is part of Ansible
5 #
6 # Ansible is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # Ansible is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
18 from __future__ import (absolute_import, division, print_function)
19 __metaclass__ = type
20 
21 import os
22 
23 from ansible.errors import AnsibleError, AnsibleAction, AnsibleActionFail, AnsibleFileNotFound
24 from ansible.module_utils._text import to_text
25 from ansible.plugins.action import ActionBase
26 
27 
28 class ActionModule(ActionBase):
29 
30     TRANSFERS_FILES = True
31 
32     def run(self, tmp=None, task_vars=None):
33         ''' handler for aws_s3 operations '''
34         if task_vars is None:
35             task_vars = dict()
36 
37         result = super(ActionModule, self).run(tmp, task_vars)
38         del tmp  # tmp no longer has any effect
39 
40         source = self._task.args.get('src', None)
41 
42         try:
43             new_module_args = self._task.args.copy()
44             if source:
45                 source = os.path.expanduser(source)
46 
47                 # For backward compatibility check if the file exists on the remote; it should take precedence
48                 if not self._remote_file_exists(source):
49                     try:
50                         source = self._loader.get_real_file(self._find_needle('files', source))
51                         new_module_args['src'] = source
52                     except AnsibleFileNotFound as e:
53                         # module handles error message for nonexistent files
54                         new_module_args['src'] = source
55                     except AnsibleError as e:
56                         raise AnsibleActionFail(to_text(e))
57 
58             # execute the aws_s3 module now, with the updated args
59             result.update(self._execute_module(module_args=new_module_args, task_vars=task_vars))
60         except AnsibleAction as e:
61             result.update(e.result)
62         return result
63
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/lib/ansible/plugins/action/aws_s3.py b/lib/ansible/plugins/action/aws_s3.py
--- a/lib/ansible/plugins/action/aws_s3.py
+++ b/lib/ansible/plugins/action/aws_s3.py
@@ -47,7 +47,7 @@
                 # For backward compatibility check if the file exists on the remote; it should take precedence
                 if not self._remote_file_exists(source):
                     try:
-                        source = self._loader.get_real_file(self._find_needle('files', source))
+                        source = self._loader.get_real_file(self._find_needle('files', source), decrypt=False)
                         new_module_args['src'] = source
                     except AnsibleFileNotFound as e:
                         # module handles error message for nonexistent files

{"golden_diff": "diff --git a/lib/ansible/plugins/action/aws_s3.py b/lib/ansible/plugins/action/aws_s3.py\n--- a/lib/ansible/plugins/action/aws_s3.py\n+++ b/lib/ansible/plugins/action/aws_s3.py\n@@ -47,7 +47,7 @@\n                 # For backward compatibility check if the file exists on the remote; it should take precedence\n                 if not self._remote_file_exists(source):\n                     try:\n-                        source = self._loader.get_real_file(self._find_needle('files', source))\n+                        source = self._loader.get_real_file(self._find_needle('files', source), decrypt=False)\n                         new_module_args['src'] = source\n                     except AnsibleFileNotFound as e:\n                         # module handles error message for nonexistent files\n", "issue": "aws_s3 is automaticly decrypting ansible-vault encrypted files before put\n<!---\r\nVerify first that your issue/request is not already reported on GitHub.\r\nAlso test if the latest release, and devel branch are affected too.\r\nAlways add information AFTER of these html comments. -->\r\n\r\n##### ISSUE TYPE\r\n - Bug Report\r\n\r\n##### COMPONENT NAME\r\naws_s3\r\n\r\n##### ANSIBLE VERSION\r\n<!--- Paste, BELOW THIS COMMENT, verbatim output from \"ansible --version\" between quotes below -->\r\n```\r\n2.5.1\r\n```\r\n\r\n##### SUMMARY\r\n- I'm trying to upload an ansible-vault encrypted file with aws_s3. But aws_s3 decrypts the src: file before uploading it to S3. \r\n- aws_s3 in 2.4 didn't decrypt the src: parameter.\r\n- The documentation for aws_s3 doesn't mention that the src: parameter is autodecrypted.\r\n- The aws_s3 module doesn't accept the decrypt: argument.\r\n\r\n##### STEPS TO REPRODUCE\r\n<!--- Paste example playbooks or commands between quotes below -->\r\n```yaml\r\n- name: upload vault to s3\r\n  aws_s3:\r\n    bucket: \"the bucket\"\r\n    object: \"file.txt\"\r\n    src: \"file.txt\"\r\n    mode: put\r\n```\r\n1. The file.txt is encrypted with ansible-vault. \r\n2. The playbook that runs this task is invoked with --vault-password and is able to decrypt the file because other tasks need the file decrypted.\r\n\r\n##### EXPECTED RESULTS\r\nDon't autodecrypt the src: argument or be able to specify decrypt: no.\r\n\r\n##### ACTUAL RESULTS\r\nThe src: argument to aws_s3 is automagicly decrypted without documentation or a way to disable the feature like other modules (ex. copy).\r\n\naws_s3 is automaticly decrypting ansible-vault encrypted files before put\n<!---\r\nVerify first that your issue/request is not already reported on GitHub.\r\nAlso test if the latest release, and devel branch are affected too.\r\nAlways add information AFTER of these html comments. -->\r\n\r\n##### ISSUE TYPE\r\n - Bug Report\r\n\r\n##### COMPONENT NAME\r\naws_s3\r\n\r\n##### ANSIBLE VERSION\r\n<!--- Paste, BELOW THIS COMMENT, verbatim output from \"ansible --version\" between quotes below -->\r\n```\r\n2.5.1\r\n```\r\n\r\n##### SUMMARY\r\n- I'm trying to upload an ansible-vault encrypted file with aws_s3. But aws_s3 decrypts the src: file before uploading it to S3. \r\n- aws_s3 in 2.4 didn't decrypt the src: parameter.\r\n- The documentation for aws_s3 doesn't mention that the src: parameter is autodecrypted.\r\n- The aws_s3 module doesn't accept the decrypt: argument.\r\n\r\n##### STEPS TO REPRODUCE\r\n<!--- Paste example playbooks or commands between quotes below -->\r\n```yaml\r\n- name: upload vault to s3\r\n  aws_s3:\r\n    bucket: \"the bucket\"\r\n    object: \"file.txt\"\r\n    src: \"file.txt\"\r\n    mode: put\r\n```\r\n1. The file.txt is encrypted with ansible-vault. \r\n2. The playbook that runs this task is invoked with --vault-password and is able to decrypt the file because other tasks need the file decrypted.\r\n\r\n##### EXPECTED RESULTS\r\nDon't autodecrypt the src: argument or be able to specify decrypt: no.\r\n\r\n##### ACTUAL RESULTS\r\nThe src: argument to aws_s3 is automagicly decrypted without documentation or a way to disable the feature like other modules (ex. copy).\r\n\n", "before_files": [{"content": "# (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>\n# (c) 2018, Will Thames <will@thames.id.au>\n#\n# This file is part of Ansible\n#\n# Ansible is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# Ansible is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with Ansible.  If not, see <http://www.gnu.org/licenses/>.\nfrom __future__ import (absolute_import, division, print_function)\n__metaclass__ = type\n\nimport os\n\nfrom ansible.errors import AnsibleError, AnsibleAction, AnsibleActionFail, AnsibleFileNotFound\nfrom ansible.module_utils._text import to_text\nfrom ansible.plugins.action import ActionBase\n\n\nclass ActionModule(ActionBase):\n\n    TRANSFERS_FILES = True\n\n    def run(self, tmp=None, task_vars=None):\n        ''' handler for aws_s3 operations '''\n        if task_vars is None:\n            task_vars = dict()\n\n        result = super(ActionModule, self).run(tmp, task_vars)\n        del tmp  # tmp no longer has any effect\n\n        source = self._task.args.get('src', None)\n\n        try:\n            new_module_args = self._task.args.copy()\n            if source:\n                source = os.path.expanduser(source)\n\n                # For backward compatibility check if the file exists on the remote; it should take precedence\n                if not self._remote_file_exists(source):\n                    try:\n                        source = self._loader.get_real_file(self._find_needle('files', source))\n                        new_module_args['src'] = source\n                    except AnsibleFileNotFound as e:\n                        # module handles error message for nonexistent files\n                        new_module_args['src'] = source\n                    except AnsibleError as e:\n                        raise AnsibleActionFail(to_text(e))\n\n            # execute the aws_s3 module now, with the updated args\n            result.update(self._execute_module(module_args=new_module_args, task_vars=task_vars))\n        except AnsibleAction as e:\n            result.update(e.result)\n        return result\n", "path": "lib/ansible/plugins/action/aws_s3.py"}], "after_files": [{"content": "# (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>\n# (c) 2018, Will Thames <will@thames.id.au>\n#\n# This file is part of Ansible\n#\n# Ansible is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# Ansible is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with Ansible.  If not, see <http://www.gnu.org/licenses/>.\nfrom __future__ import (absolute_import, division, print_function)\n__metaclass__ = type\n\nimport os\n\nfrom ansible.errors import AnsibleError, AnsibleAction, AnsibleActionFail, AnsibleFileNotFound\nfrom ansible.module_utils._text import to_text\nfrom ansible.plugins.action import ActionBase\n\n\nclass ActionModule(ActionBase):\n\n    TRANSFERS_FILES = True\n\n    def run(self, tmp=None, task_vars=None):\n        ''' handler for aws_s3 operations '''\n        if task_vars is None:\n            task_vars = dict()\n\n        result = super(ActionModule, self).run(tmp, task_vars)\n        del tmp  # tmp no longer has any effect\n\n        source = self._task.args.get('src', None)\n\n        try:\n            new_module_args = self._task.args.copy()\n            if source:\n                source = os.path.expanduser(source)\n\n                # For backward compatibility check if the file exists on the remote; it should take precedence\n                if not self._remote_file_exists(source):\n                    try:\n                        source = self._loader.get_real_file(self._find_needle('files', source), decrypt=False)\n                        new_module_args['src'] = source\n                    except AnsibleFileNotFound as e:\n                        # module handles error message for nonexistent files\n                        new_module_args['src'] = source\n                    except AnsibleError as e:\n                        raise AnsibleActionFail(to_text(e))\n\n            # execute the aws_s3 module now, with the updated args\n            result.update(self._execute_module(module_args=new_module_args, task_vars=task_vars))\n        except AnsibleAction as e:\n            result.update(e.result)\n        return result\n", "path": "lib/ansible/plugins/action/aws_s3.py"}]}