We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
`RPA.Windows.Get Elements` not copying the `robocorp_click_offset` attribute
Should make available this attribute in all siblings found elements, otherwise the `Click` keyword will fail when using offsets:

<img width="841" alt="Screen Shot 2022-08-26 at 4 48 38 PM" src="https://user-images.githubusercontent.com/709053/187146331-32d1ea86-7da7-4afe-b8ec-ea9b5289db70.png">
<img width="1391" alt="Screen Shot 2022-08-26 at 4 48 20 PM" src="https://user-images.githubusercontent.com/709053/187146342-b6ae653f-0ae7-4870-bdc9-edba1ef83533.png">


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `packages/windows/src/RPA/Windows/keywords/locators.py`
Content:
```
1 from typing import List, Optional
2 
3 from RPA.core.windows.locators import (
4     Locator,
5     LocatorMethods,
6     WindowsElement,
7 )
8 
9 from RPA.Windows.keywords import keyword
10 from RPA.Windows.keywords.context import with_timeout
11 
12 
13 class LocatorKeywords(LocatorMethods):
14     """Keywords for handling Windows locators"""
15 
16     @keyword
17     @with_timeout
18     def get_element(
19         self,
20         locator: Optional[Locator] = None,
21         search_depth: int = 8,
22         root_element: Optional[WindowsElement] = None,
23         timeout: Optional[float] = None,  # pylint: disable=unused-argument
24     ) -> WindowsElement:
25         """Get Control element defined by the locator.
26 
27         Returned element can be used instead of a locator string for
28         keywords accepting `locator`.
29 
30         Keyword ``Get Attribute`` can be used to read element attribute values.
31 
32         If `locator` is *None* then returned `element` will be in order of preference:
33 
34             1. anchor element if that has been set with `Set Anchor`
35             2. current active window if that has been set with `Control Window`
36             3. final option is the `Desktop`
37 
38         :param locator: locator as a string or as an element
39         :param search_depth: how deep the element search will traverse (default 8)
40         :param root_element: can be used to set search root element
41         :param timeout: float value in seconds, see keyword
42          ``Set Global Timeout``
43         :return: WindowsElement object
44 
45         Example:
46 
47         .. code-block:: robotframework
48 
49             ${element} =    Get Element    name:"RichEdit Control"
50             Set Value    ${element}    note to myself
51         """
52         # NOTE(cmiN): Timeout is automatically set to `None` in the upper call by the
53         #  `with_timeout` decorator, so we alter the behaviour (context timeout
54         #  setting) at this level only.
55         return super().get_element(
56             locator=locator,
57             search_depth=search_depth,
58             root_element=root_element,
59             timeout=timeout,
60         )
61 
62     @keyword
63     @with_timeout
64     def get_elements(
65         self,
66         locator: Optional[Locator] = None,
67         search_depth: int = 8,
68         root_element: Optional[WindowsElement] = None,
69         timeout: Optional[float] = None,  # pylint: disable=unused-argument
70     ) -> List[WindowsElement]:
71         """Get list of elements matching locator.
72 
73         :param locator: locator as a string or as an element
74         :param search_depth: how deep the element search will traverse (default 8)
75         :param root_element: can be used to set search root element
76         :param timeout: float value in seconds, see keyword
77          ``Set Global Timeout``
78         :return: list of WindowsElement objects
79 
80         Example:
81 
82         .. code-block:: robotframework
83 
84             Set Anchor    id:DataGrid
85             ${elements}=    Get Elements    type:HeaderItem
86             FOR    ${el}    IN    @{elements}
87                 Log To Console    ${el.Name}
88             END
89         """
90         elements = []
91         initial_element = element = self.get_element(
92             locator, search_depth, root_element
93         )
94         elements.append(initial_element)
95         while True:
96             next_control = element.item.GetNextSiblingControl()
97             if next_control:
98                 element = WindowsElement(next_control, locator)
99                 if initial_element.is_sibling(element):
100                     elements.append(element)
101             else:
102                 break
103         return elements
104
```
--- 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/packages/windows/src/RPA/Windows/keywords/locators.py b/packages/windows/src/RPA/Windows/keywords/locators.py
--- a/packages/windows/src/RPA/Windows/keywords/locators.py
+++ b/packages/windows/src/RPA/Windows/keywords/locators.py
@@ -97,6 +97,9 @@
             if next_control:
                 element = WindowsElement(next_control, locator)
                 if initial_element.is_sibling(element):
+                    element.item.robocorp_click_offset = (
+                        initial_element.item.robocorp_click_offset
+                    )
                     elements.append(element)
             else:
                 break

{"golden_diff": "diff --git a/packages/windows/src/RPA/Windows/keywords/locators.py b/packages/windows/src/RPA/Windows/keywords/locators.py\n--- a/packages/windows/src/RPA/Windows/keywords/locators.py\n+++ b/packages/windows/src/RPA/Windows/keywords/locators.py\n@@ -97,6 +97,9 @@\n             if next_control:\n                 element = WindowsElement(next_control, locator)\n                 if initial_element.is_sibling(element):\n+                    element.item.robocorp_click_offset = (\n+                        initial_element.item.robocorp_click_offset\n+                    )\n                     elements.append(element)\n             else:\n                 break\n", "issue": "`RPA.Windows.Get Elements` not copying the `robocorp_click_offset` attribute\nShould make available this attribute in all siblings found elements, otherwise the `Click` keyword will fail when using offsets:\r\n\r\n<img width=\"841\" alt=\"Screen Shot 2022-08-26 at 4 48 38 PM\" src=\"https://user-images.githubusercontent.com/709053/187146331-32d1ea86-7da7-4afe-b8ec-ea9b5289db70.png\">\r\n<img width=\"1391\" alt=\"Screen Shot 2022-08-26 at 4 48 20 PM\" src=\"https://user-images.githubusercontent.com/709053/187146342-b6ae653f-0ae7-4870-bdc9-edba1ef83533.png\">\r\n\n", "before_files": [{"content": "from typing import List, Optional\n\nfrom RPA.core.windows.locators import (\n    Locator,\n    LocatorMethods,\n    WindowsElement,\n)\n\nfrom RPA.Windows.keywords import keyword\nfrom RPA.Windows.keywords.context import with_timeout\n\n\nclass LocatorKeywords(LocatorMethods):\n    \"\"\"Keywords for handling Windows locators\"\"\"\n\n    @keyword\n    @with_timeout\n    def get_element(\n        self,\n        locator: Optional[Locator] = None,\n        search_depth: int = 8,\n        root_element: Optional[WindowsElement] = None,\n        timeout: Optional[float] = None,  # pylint: disable=unused-argument\n    ) -> WindowsElement:\n        \"\"\"Get Control element defined by the locator.\n\n        Returned element can be used instead of a locator string for\n        keywords accepting `locator`.\n\n        Keyword ``Get Attribute`` can be used to read element attribute values.\n\n        If `locator` is *None* then returned `element` will be in order of preference:\n\n            1. anchor element if that has been set with `Set Anchor`\n            2. current active window if that has been set with `Control Window`\n            3. final option is the `Desktop`\n\n        :param locator: locator as a string or as an element\n        :param search_depth: how deep the element search will traverse (default 8)\n        :param root_element: can be used to set search root element\n        :param timeout: float value in seconds, see keyword\n         ``Set Global Timeout``\n        :return: WindowsElement object\n\n        Example:\n\n        .. code-block:: robotframework\n\n            ${element} =    Get Element    name:\"RichEdit Control\"\n            Set Value    ${element}    note to myself\n        \"\"\"\n        # NOTE(cmiN): Timeout is automatically set to `None` in the upper call by the\n        #  `with_timeout` decorator, so we alter the behaviour (context timeout\n        #  setting) at this level only.\n        return super().get_element(\n            locator=locator,\n            search_depth=search_depth,\n            root_element=root_element,\n            timeout=timeout,\n        )\n\n    @keyword\n    @with_timeout\n    def get_elements(\n        self,\n        locator: Optional[Locator] = None,\n        search_depth: int = 8,\n        root_element: Optional[WindowsElement] = None,\n        timeout: Optional[float] = None,  # pylint: disable=unused-argument\n    ) -> List[WindowsElement]:\n        \"\"\"Get list of elements matching locator.\n\n        :param locator: locator as a string or as an element\n        :param search_depth: how deep the element search will traverse (default 8)\n        :param root_element: can be used to set search root element\n        :param timeout: float value in seconds, see keyword\n         ``Set Global Timeout``\n        :return: list of WindowsElement objects\n\n        Example:\n\n        .. code-block:: robotframework\n\n            Set Anchor    id:DataGrid\n            ${elements}=    Get Elements    type:HeaderItem\n            FOR    ${el}    IN    @{elements}\n                Log To Console    ${el.Name}\n            END\n        \"\"\"\n        elements = []\n        initial_element = element = self.get_element(\n            locator, search_depth, root_element\n        )\n        elements.append(initial_element)\n        while True:\n            next_control = element.item.GetNextSiblingControl()\n            if next_control:\n                element = WindowsElement(next_control, locator)\n                if initial_element.is_sibling(element):\n                    elements.append(element)\n            else:\n                break\n        return elements\n", "path": "packages/windows/src/RPA/Windows/keywords/locators.py"}], "after_files": [{"content": "from typing import List, Optional\n\nfrom RPA.core.windows.locators import (\n    Locator,\n    LocatorMethods,\n    WindowsElement,\n)\n\nfrom RPA.Windows.keywords import keyword\nfrom RPA.Windows.keywords.context import with_timeout\n\n\nclass LocatorKeywords(LocatorMethods):\n    \"\"\"Keywords for handling Windows locators\"\"\"\n\n    @keyword\n    @with_timeout\n    def get_element(\n        self,\n        locator: Optional[Locator] = None,\n        search_depth: int = 8,\n        root_element: Optional[WindowsElement] = None,\n        timeout: Optional[float] = None,  # pylint: disable=unused-argument\n    ) -> WindowsElement:\n        \"\"\"Get Control element defined by the locator.\n\n        Returned element can be used instead of a locator string for\n        keywords accepting `locator`.\n\n        Keyword ``Get Attribute`` can be used to read element attribute values.\n\n        If `locator` is *None* then returned `element` will be in order of preference:\n\n            1. anchor element if that has been set with `Set Anchor`\n            2. current active window if that has been set with `Control Window`\n            3. final option is the `Desktop`\n\n        :param locator: locator as a string or as an element\n        :param search_depth: how deep the element search will traverse (default 8)\n        :param root_element: can be used to set search root element\n        :param timeout: float value in seconds, see keyword\n         ``Set Global Timeout``\n        :return: WindowsElement object\n\n        Example:\n\n        .. code-block:: robotframework\n\n            ${element} =    Get Element    name:\"RichEdit Control\"\n            Set Value    ${element}    note to myself\n        \"\"\"\n        # NOTE(cmiN): Timeout is automatically set to `None` in the upper call by the\n        #  `with_timeout` decorator, so we alter the behaviour (context timeout\n        #  setting) at this level only.\n        return super().get_element(\n            locator=locator,\n            search_depth=search_depth,\n            root_element=root_element,\n            timeout=timeout,\n        )\n\n    @keyword\n    @with_timeout\n    def get_elements(\n        self,\n        locator: Optional[Locator] = None,\n        search_depth: int = 8,\n        root_element: Optional[WindowsElement] = None,\n        timeout: Optional[float] = None,  # pylint: disable=unused-argument\n    ) -> List[WindowsElement]:\n        \"\"\"Get list of elements matching locator.\n\n        :param locator: locator as a string or as an element\n        :param search_depth: how deep the element search will traverse (default 8)\n        :param root_element: can be used to set search root element\n        :param timeout: float value in seconds, see keyword\n         ``Set Global Timeout``\n        :return: list of WindowsElement objects\n\n        Example:\n\n        .. code-block:: robotframework\n\n            Set Anchor    id:DataGrid\n            ${elements}=    Get Elements    type:HeaderItem\n            FOR    ${el}    IN    @{elements}\n                Log To Console    ${el.Name}\n            END\n        \"\"\"\n        elements = []\n        initial_element = element = self.get_element(\n            locator, search_depth, root_element\n        )\n        elements.append(initial_element)\n        while True:\n            next_control = element.item.GetNextSiblingControl()\n            if next_control:\n                element = WindowsElement(next_control, locator)\n                if initial_element.is_sibling(element):\n                    element.item.robocorp_click_offset = (\n                        initial_element.item.robocorp_click_offset\n                    )\n                    elements.append(element)\n            else:\n                break\n        return elements\n", "path": "packages/windows/src/RPA/Windows/keywords/locators.py"}]}