prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  BUG: all_members_are_administrators fails
  I don;t know if telegram api changed but the parameter to tell if all administrators in a group are admin has changed: to `all_members_are_administrators` Chat's fail to update with this parameter
  
  ### Steps to reproduce
  1. Create a group with "all members are administrators enabled
  2. Add a bot to it
  3. send the bot a message
  4. ` assert print(update.message.chat.all_members_are_admins)==True`
  
  ### Expected behaviour
  It should pass the assert
  
  ### Actual behaviour
  This failes the assert
  
  ### Way to fix
  rename to `all_members_are_administrators`
  
  </issue>
  <code>
  [start of telegram/chat.py]
  1 #!/usr/bin/env python
  2 # pylint: disable=C0103,W0622
  3 #
  4 # A library that provides a Python interface to the Telegram Bot API
  5 # Copyright (C) 2015-2016
  6 # Leandro Toledo de Souza <devs@python-telegram-bot.org>
  7 #
  8 # This program is free software: you can redistribute it and/or modify
  9 # it under the terms of the GNU Lesser Public License as published by
  10 # the Free Software Foundation, either version 3 of the License, or
  11 # (at your option) any later version.
  12 #
  13 # This program is distributed in the hope that it will be useful,
  14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16 # GNU Lesser Public License for more details.
  17 #
  18 # You should have received a copy of the GNU Lesser Public License
  19 # along with this program.  If not, see [http://www.gnu.org/licenses/].
  20 """This module contains an object that represents a Telegram Chat."""
  21 
  22 from telegram import TelegramObject
  23 
  24 
  25 class Chat(TelegramObject):
  26     """This object represents a Telegram Chat.
  27 
  28     Attributes:
  29         id (int):
  30         type (str): Can be 'private', 'group', 'supergroup' or 'channel'
  31         title (str): Title, for channels and group chats
  32         username (str): Username, for private chats and channels if available
  33         first_name (str): First name of the other party in a private chat
  34         last_name (str): Last name of the other party in a private chat
  35         all_members_are_admins (bool): True if a group has 'All Members Are Admins' enabled.
  36 
  37     Args:
  38         id (int):
  39         type (str):
  40         title (Optional[str]):
  41         username(Optional[str]):
  42         first_name(Optional[str]):
  43         last_name(Optional[str]):
  44         bot (Optional[Bot]): The Bot to use for instance methods
  45         **kwargs (dict): Arbitrary keyword arguments.
  46 
  47     """
  48     PRIVATE = 'private'
  49     GROUP = 'group'
  50     SUPERGROUP = 'supergroup'
  51     CHANNEL = 'channel'
  52 
  53     def __init__(self,
  54                  id,
  55                  type,
  56                  title='',
  57                  username='',
  58                  first_name='',
  59                  last_name='',
  60                  all_members_are_admins=False,
  61                  bot=None,
  62                  **kwargs):
  63         # Required
  64         self.id = int(id)
  65         self.type = type
  66         # Optionals
  67         self.title = title
  68         self.username = username
  69         self.first_name = first_name
  70         self.last_name = last_name
  71         self.all_members_are_admins = all_members_are_admins
  72 
  73         self.bot = bot
  74 
  75     @staticmethod
  76     def de_json(data, bot):
  77         """
  78         Args:
  79             data (dict):
  80             bot (telegram.Bot):
  81 
  82         Returns:
  83             telegram.Chat:
  84         """
  85         if not data:
  86             return None
  87 
  88         return Chat(bot=bot, **data)
  89 
  90     def send_action(self, *args, **kwargs):
  91         """Shortcut for ``bot.sendChatAction(update.message.chat.id, *args, **kwargs)``"""
  92         return self.bot.sendChatAction(self.id, *args, **kwargs)
  93 
  94     def leave(self, *args, **kwargs):
  95         """Shortcut for ``bot.leaveChat(update.message.chat.id, *args, **kwargs)``"""
  96         return self.bot.leaveChat(self.id, *args, **kwargs)
  97 
  98     def get_administrators(self, *args, **kwargs):
  99         """Shortcut for ``bot.getChatAdministrators(update.message.chat.id, *args, **kwargs)``"""
  100         return self.bot.getChatAdministrators(self.id, *args, **kwargs)
  101 
  102     def get_members_count(self, *args, **kwargs):
  103         """Shortcut for ``bot.getChatMembersCount(update.message.chat.id, *args, **kwargs)``"""
  104         return self.bot.getChatMembersCount(self.id, *args, **kwargs)
  105 
  106     def get_member(self, *args, **kwargs):
  107         """Shortcut for ``bot.getChatMember(update.message.chat.id, *args, **kwargs)``"""
  108         return self.bot.getChatMember(self.id, *args, **kwargs)
  109 
  110     def kick_member(self, *args, **kwargs):
  111         """Shortcut for ``bot.kickChatMember(update.message.chat.id, *args, **kwargs)``"""
  112         return self.bot.kickChatMember(self.id, *args, **kwargs)
  113 
  114     def unban_member(self, *args, **kwargs):
  115         """Shortcut for ``bot.unbanChatMember(update.message.chat.id, *args, **kwargs)``"""
  116         return self.bot.unbanChatMember(self.id, *args, **kwargs)
  117
  [end of telegram/chat.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/telegram/chat.py b/telegram/chat.py
  --- a/telegram/chat.py
  +++ b/telegram/chat.py
  @@ -32,7 +32,7 @@
           username (str): Username, for private chats and channels if available
           first_name (str): First name of the other party in a private chat
           last_name (str): Last name of the other party in a private chat
  -        all_members_are_admins (bool): True if a group has 'All Members Are Admins' enabled.
  +        all_members_are_administrators (bool): True if group has 'All Members Are Administrators'
   
       Args:
           id (int):
  @@ -57,7 +57,7 @@
                    username='',
                    first_name='',
                    last_name='',
  -                 all_members_are_admins=False,
  +                 all_members_are_administrators=False,
                    bot=None,
                    **kwargs):
           # Required
  @@ -68,7 +68,7 @@
           self.username = username
           self.first_name = first_name
           self.last_name = last_name
  -        self.all_members_are_admins = all_members_are_admins
  +        self.all_members_are_administrators = all_members_are_administrators
   
           self.bot = bot
  
verification_info: {"golden_diff": "diff --git a/telegram/chat.py b/telegram/chat.py\n--- a/telegram/chat.py\n+++ b/telegram/chat.py\n@@ -32,7 +32,7 @@\n         username (str): Username, for private chats and channels if available\n         first_name (str): First name of the other party in a private chat\n         last_name (str): Last name of the other party in a private chat\n-        all_members_are_admins (bool): True if a group has 'All Members Are Admins' enabled.\n+        all_members_are_administrators (bool): True if group has 'All Members Are Administrators'\n \n     Args:\n         id (int):\n@@ -57,7 +57,7 @@\n                  username='',\n                  first_name='',\n                  last_name='',\n-                 all_members_are_admins=False,\n+                 all_members_are_administrators=False,\n                  bot=None,\n                  **kwargs):\n         # Required\n@@ -68,7 +68,7 @@\n         self.username = username\n         self.first_name = first_name\n         self.last_name = last_name\n-        self.all_members_are_admins = all_members_are_admins\n+        self.all_members_are_administrators = all_members_are_administrators\n \n         self.bot = bot\n", "issue": "BUG: all_members_are_administrators fails\nI don;t know if telegram api changed but the parameter to tell if all administrators in a group are admin has changed: to `all_members_are_administrators` Chat's fail to update with this parameter\r\n\r\n### Steps to reproduce\r\n1. Create a group with \"all members are administrators enabled\r\n2. Add a bot to it\r\n3. send the bot a message\r\n4. ` assert print(update.message.chat.all_members_are_admins)==True`\r\n\r\n### Expected behaviour\r\nIt should pass the assert\r\n\r\n### Actual behaviour\r\nThis failes the assert\r\n\r\n### Way to fix\r\nrename to `all_members_are_administrators`\n", "before_files": [{"content": "#!/usr/bin/env python\n# pylint: disable=C0103,W0622\n#\n# A library that provides a Python interface to the Telegram Bot API\n# Copyright (C) 2015-2016\n# Leandro Toledo de Souza <devs@python-telegram-bot.org>\n#\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU Lesser 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# This program 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 Lesser Public License for more details.\n#\n# You should have received a copy of the GNU Lesser Public License\n# along with this program.  If not, see [http://www.gnu.org/licenses/].\n\"\"\"This module contains an object that represents a Telegram Chat.\"\"\"\n\nfrom telegram import TelegramObject\n\n\nclass Chat(TelegramObject):\n    \"\"\"This object represents a Telegram Chat.\n\n    Attributes:\n        id (int):\n        type (str): Can be 'private', 'group', 'supergroup' or 'channel'\n        title (str): Title, for channels and group chats\n        username (str): Username, for private chats and channels if available\n        first_name (str): First name of the other party in a private chat\n        last_name (str): Last name of the other party in a private chat\n        all_members_are_admins (bool): True if a group has 'All Members Are Admins' enabled.\n\n    Args:\n        id (int):\n        type (str):\n        title (Optional[str]):\n        username(Optional[str]):\n        first_name(Optional[str]):\n        last_name(Optional[str]):\n        bot (Optional[Bot]): The Bot to use for instance methods\n        **kwargs (dict): Arbitrary keyword arguments.\n\n    \"\"\"\n    PRIVATE = 'private'\n    GROUP = 'group'\n    SUPERGROUP = 'supergroup'\n    CHANNEL = 'channel'\n\n    def __init__(self,\n                 id,\n                 type,\n                 title='',\n                 username='',\n                 first_name='',\n                 last_name='',\n                 all_members_are_admins=False,\n                 bot=None,\n                 **kwargs):\n        # Required\n        self.id = int(id)\n        self.type = type\n        # Optionals\n        self.title = title\n        self.username = username\n        self.first_name = first_name\n        self.last_name = last_name\n        self.all_members_are_admins = all_members_are_admins\n\n        self.bot = bot\n\n    @staticmethod\n    def de_json(data, bot):\n        \"\"\"\n        Args:\n            data (dict):\n            bot (telegram.Bot):\n\n        Returns:\n            telegram.Chat:\n        \"\"\"\n        if not data:\n            return None\n\n        return Chat(bot=bot, **data)\n\n    def send_action(self, *args, **kwargs):\n        \"\"\"Shortcut for ``bot.sendChatAction(update.message.chat.id, *args, **kwargs)``\"\"\"\n        return self.bot.sendChatAction(self.id, *args, **kwargs)\n\n    def leave(self, *args, **kwargs):\n        \"\"\"Shortcut for ``bot.leaveChat(update.message.chat.id, *args, **kwargs)``\"\"\"\n        return self.bot.leaveChat(self.id, *args, **kwargs)\n\n    def get_administrators(self, *args, **kwargs):\n        \"\"\"Shortcut for ``bot.getChatAdministrators(update.message.chat.id, *args, **kwargs)``\"\"\"\n        return self.bot.getChatAdministrators(self.id, *args, **kwargs)\n\n    def get_members_count(self, *args, **kwargs):\n        \"\"\"Shortcut for ``bot.getChatMembersCount(update.message.chat.id, *args, **kwargs)``\"\"\"\n        return self.bot.getChatMembersCount(self.id, *args, **kwargs)\n\n    def get_member(self, *args, **kwargs):\n        \"\"\"Shortcut for ``bot.getChatMember(update.message.chat.id, *args, **kwargs)``\"\"\"\n        return self.bot.getChatMember(self.id, *args, **kwargs)\n\n    def kick_member(self, *args, **kwargs):\n        \"\"\"Shortcut for ``bot.kickChatMember(update.message.chat.id, *args, **kwargs)``\"\"\"\n        return self.bot.kickChatMember(self.id, *args, **kwargs)\n\n    def unban_member(self, *args, **kwargs):\n        \"\"\"Shortcut for ``bot.unbanChatMember(update.message.chat.id, *args, **kwargs)``\"\"\"\n        return self.bot.unbanChatMember(self.id, *args, **kwargs)\n", "path": "telegram/chat.py"}]}