We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Typo in comment in conversationbot2.py
<!--
Thanks for reporting issues of python-telegram-bot!

Use this template to notify us if you found a bug, or if you want to request a new feature.
If you're looking for help with programming your bot using our library, feel free to ask your
questions in out telegram group at: https://t.me/pythontelegrambotgroup

To make it easier for us to help you please enter detailed information below.

Please note, we only support the latest version of python-telegram-bot and
master branch. Please make sure to upgrade & recreate the issue on the latest
version prior to opening an issue.
-->
### Steps to reproduce
1. Not really a bug... wrong comment line in conversationbot2.py :)

### Expected behaviour
Should be: # Add conversation handler with the states CHOOSING, TYPING_CHOICE and TYPING_REPLY

### Actual behaviour
Actual comment in conversationbot2.py (leftover from conversationbot.py I guess :))
# Add conversation handler with the states GENDER, PHOTO, LOCATION and BIO

### Configuration
**Operating System:**
Windows

**Version of Python, python-telegram-bot & dependencies:**
3.6

``$ python -m telegram``

### Logs
Insert logs here (if necessary)


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `examples/conversationbot2.py`
Content:
```
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 #
4 # Simple Bot to reply to Telegram messages
5 # This program is dedicated to the public domain under the CC0 license.
6 """
7 This Bot uses the Updater class to handle the bot.
8 
9 First, a few callback functions are defined. Then, those functions are passed to
10 the Dispatcher and registered at their respective places.
11 Then, the bot is started and runs until we press Ctrl-C on the command line.
12 
13 Usage:
14 Example of a bot-user conversation using ConversationHandler.
15 Send /start to initiate the conversation.
16 Press Ctrl-C on the command line or send a signal to the process to stop the
17 bot.
18 """
19 
20 from telegram import ReplyKeyboardMarkup
21 from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters, RegexHandler,
22                           ConversationHandler)
23 
24 import logging
25 
26 # Enable logging
27 logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
28                     level=logging.INFO)
29 
30 logger = logging.getLogger(__name__)
31 
32 CHOOSING, TYPING_REPLY, TYPING_CHOICE = range(3)
33 
34 reply_keyboard = [['Age', 'Favourite colour'],
35                   ['Number of siblings', 'Something else...'],
36                   ['Done']]
37 markup = ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True)
38 
39 
40 def facts_to_str(user_data):
41     facts = list()
42 
43     for key, value in user_data.items():
44         facts.append('{} - {}'.format(key, value))
45 
46     return "\n".join(facts).join(['\n', '\n'])
47 
48 
49 def start(bot, update):
50     update.message.reply_text(
51         "Hi! My name is Doctor Botter. I will hold a more complex conversation with you. "
52         "Why don't you tell me something about yourself?",
53         reply_markup=markup)
54 
55     return CHOOSING
56 
57 
58 def regular_choice(bot, update, user_data):
59     text = update.message.text
60     user_data['choice'] = text
61     update.message.reply_text(
62         'Your {}? Yes, I would love to hear about that!'.format(text.lower()))
63 
64     return TYPING_REPLY
65 
66 
67 def custom_choice(bot, update):
68     update.message.reply_text('Alright, please send me the category first, '
69                               'for example "Most impressive skill"')
70 
71     return TYPING_CHOICE
72 
73 
74 def received_information(bot, update, user_data):
75     text = update.message.text
76     category = user_data['choice']
77     user_data[category] = text
78     del user_data['choice']
79 
80     update.message.reply_text("Neat! Just so you know, this is what you already told me:"
81                               "{}"
82                               "You can tell me more, or change your opinion on something.".format(
83                                   facts_to_str(user_data)), reply_markup=markup)
84 
85     return CHOOSING
86 
87 
88 def done(bot, update, user_data):
89     if 'choice' in user_data:
90         del user_data['choice']
91 
92     update.message.reply_text("I learned these facts about you:"
93                               "{}"
94                               "Until next time!".format(facts_to_str(user_data)))
95 
96     user_data.clear()
97     return ConversationHandler.END
98 
99 
100 def error(bot, update, error):
101     """Log Errors caused by Updates."""
102     logger.warning('Update "%s" caused error "%s"', update, error)
103 
104 
105 def main():
106     # Create the Updater and pass it your bot's token.
107     updater = Updater("TOKEN")
108 
109     # Get the dispatcher to register handlers
110     dp = updater.dispatcher
111 
112     # Add conversation handler with the states GENDER, PHOTO, LOCATION and BIO
113     conv_handler = ConversationHandler(
114         entry_points=[CommandHandler('start', start)],
115 
116         states={
117             CHOOSING: [RegexHandler('^(Age|Favourite colour|Number of siblings)$',
118                                     regular_choice,
119                                     pass_user_data=True),
120                        RegexHandler('^Something else...$',
121                                     custom_choice),
122                        ],
123 
124             TYPING_CHOICE: [MessageHandler(Filters.text,
125                                            regular_choice,
126                                            pass_user_data=True),
127                             ],
128 
129             TYPING_REPLY: [MessageHandler(Filters.text,
130                                           received_information,
131                                           pass_user_data=True),
132                            ],
133         },
134 
135         fallbacks=[RegexHandler('^Done$', done, pass_user_data=True)]
136     )
137 
138     dp.add_handler(conv_handler)
139 
140     # log all errors
141     dp.add_error_handler(error)
142 
143     # Start the Bot
144     updater.start_polling()
145 
146     # Run the bot until you press Ctrl-C or the process receives SIGINT,
147     # SIGTERM or SIGABRT. This should be used most of the time, since
148     # start_polling() is non-blocking and will stop the bot gracefully.
149     updater.idle()
150 
151 
152 if __name__ == '__main__':
153     main()
154
```
--- 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/examples/conversationbot2.py b/examples/conversationbot2.py
--- a/examples/conversationbot2.py
+++ b/examples/conversationbot2.py
@@ -109,7 +109,7 @@
     # Get the dispatcher to register handlers
     dp = updater.dispatcher
 
-    # Add conversation handler with the states GENDER, PHOTO, LOCATION and BIO
+    # Add conversation handler with the states CHOOSING, TYPING_CHOICE and TYPING_REPLY
     conv_handler = ConversationHandler(
         entry_points=[CommandHandler('start', start)],

{"golden_diff": "diff --git a/examples/conversationbot2.py b/examples/conversationbot2.py\n--- a/examples/conversationbot2.py\n+++ b/examples/conversationbot2.py\n@@ -109,7 +109,7 @@\n     # Get the dispatcher to register handlers\n     dp = updater.dispatcher\n \n-    # Add conversation handler with the states GENDER, PHOTO, LOCATION and BIO\n+    # Add conversation handler with the states CHOOSING, TYPING_CHOICE and TYPING_REPLY\n     conv_handler = ConversationHandler(\n         entry_points=[CommandHandler('start', start)],\n", "issue": "Typo in comment in conversationbot2.py\n<!--\r\nThanks for reporting issues of python-telegram-bot!\r\n\r\nUse this template to notify us if you found a bug, or if you want to request a new feature.\r\nIf you're looking for help with programming your bot using our library, feel free to ask your\r\nquestions in out telegram group at: https://t.me/pythontelegrambotgroup\r\n\r\nTo make it easier for us to help you please enter detailed information below.\r\n\r\nPlease note, we only support the latest version of python-telegram-bot and\r\nmaster branch. Please make sure to upgrade & recreate the issue on the latest\r\nversion prior to opening an issue.\r\n-->\r\n### Steps to reproduce\r\n1. Not really a bug... wrong comment line in conversationbot2.py :)\r\n\r\n### Expected behaviour\r\nShould be: # Add conversation handler with the states CHOOSING, TYPING_CHOICE and TYPING_REPLY\r\n\r\n### Actual behaviour\r\nActual comment in conversationbot2.py (leftover from conversationbot.py I guess :))\r\n# Add conversation handler with the states GENDER, PHOTO, LOCATION and BIO\r\n\r\n### Configuration\r\n**Operating System:**\r\nWindows\r\n\r\n**Version of Python, python-telegram-bot & dependencies:**\r\n3.6\r\n\r\n``$ python -m telegram``\r\n\r\n### Logs\r\nInsert logs here (if necessary)\r\n\n", "before_files": [{"content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n#\n# Simple Bot to reply to Telegram messages\n# This program is dedicated to the public domain under the CC0 license.\n\"\"\"\nThis Bot uses the Updater class to handle the bot.\n\nFirst, a few callback functions are defined. Then, those functions are passed to\nthe Dispatcher and registered at their respective places.\nThen, the bot is started and runs until we press Ctrl-C on the command line.\n\nUsage:\nExample of a bot-user conversation using ConversationHandler.\nSend /start to initiate the conversation.\nPress Ctrl-C on the command line or send a signal to the process to stop the\nbot.\n\"\"\"\n\nfrom telegram import ReplyKeyboardMarkup\nfrom telegram.ext import (Updater, CommandHandler, MessageHandler, Filters, RegexHandler,\n                          ConversationHandler)\n\nimport logging\n\n# Enable logging\nlogging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',\n                    level=logging.INFO)\n\nlogger = logging.getLogger(__name__)\n\nCHOOSING, TYPING_REPLY, TYPING_CHOICE = range(3)\n\nreply_keyboard = [['Age', 'Favourite colour'],\n                  ['Number of siblings', 'Something else...'],\n                  ['Done']]\nmarkup = ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True)\n\n\ndef facts_to_str(user_data):\n    facts = list()\n\n    for key, value in user_data.items():\n        facts.append('{} - {}'.format(key, value))\n\n    return \"\\n\".join(facts).join(['\\n', '\\n'])\n\n\ndef start(bot, update):\n    update.message.reply_text(\n        \"Hi! My name is Doctor Botter. I will hold a more complex conversation with you. \"\n        \"Why don't you tell me something about yourself?\",\n        reply_markup=markup)\n\n    return CHOOSING\n\n\ndef regular_choice(bot, update, user_data):\n    text = update.message.text\n    user_data['choice'] = text\n    update.message.reply_text(\n        'Your {}? Yes, I would love to hear about that!'.format(text.lower()))\n\n    return TYPING_REPLY\n\n\ndef custom_choice(bot, update):\n    update.message.reply_text('Alright, please send me the category first, '\n                              'for example \"Most impressive skill\"')\n\n    return TYPING_CHOICE\n\n\ndef received_information(bot, update, user_data):\n    text = update.message.text\n    category = user_data['choice']\n    user_data[category] = text\n    del user_data['choice']\n\n    update.message.reply_text(\"Neat! Just so you know, this is what you already told me:\"\n                              \"{}\"\n                              \"You can tell me more, or change your opinion on something.\".format(\n                                  facts_to_str(user_data)), reply_markup=markup)\n\n    return CHOOSING\n\n\ndef done(bot, update, user_data):\n    if 'choice' in user_data:\n        del user_data['choice']\n\n    update.message.reply_text(\"I learned these facts about you:\"\n                              \"{}\"\n                              \"Until next time!\".format(facts_to_str(user_data)))\n\n    user_data.clear()\n    return ConversationHandler.END\n\n\ndef error(bot, update, error):\n    \"\"\"Log Errors caused by Updates.\"\"\"\n    logger.warning('Update \"%s\" caused error \"%s\"', update, error)\n\n\ndef main():\n    # Create the Updater and pass it your bot's token.\n    updater = Updater(\"TOKEN\")\n\n    # Get the dispatcher to register handlers\n    dp = updater.dispatcher\n\n    # Add conversation handler with the states GENDER, PHOTO, LOCATION and BIO\n    conv_handler = ConversationHandler(\n        entry_points=[CommandHandler('start', start)],\n\n        states={\n            CHOOSING: [RegexHandler('^(Age|Favourite colour|Number of siblings)$',\n                                    regular_choice,\n                                    pass_user_data=True),\n                       RegexHandler('^Something else...$',\n                                    custom_choice),\n                       ],\n\n            TYPING_CHOICE: [MessageHandler(Filters.text,\n                                           regular_choice,\n                                           pass_user_data=True),\n                            ],\n\n            TYPING_REPLY: [MessageHandler(Filters.text,\n                                          received_information,\n                                          pass_user_data=True),\n                           ],\n        },\n\n        fallbacks=[RegexHandler('^Done$', done, pass_user_data=True)]\n    )\n\n    dp.add_handler(conv_handler)\n\n    # log all errors\n    dp.add_error_handler(error)\n\n    # Start the Bot\n    updater.start_polling()\n\n    # Run the bot until you press Ctrl-C or the process receives SIGINT,\n    # SIGTERM or SIGABRT. This should be used most of the time, since\n    # start_polling() is non-blocking and will stop the bot gracefully.\n    updater.idle()\n\n\nif __name__ == '__main__':\n    main()\n", "path": "examples/conversationbot2.py"}], "after_files": [{"content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n#\n# Simple Bot to reply to Telegram messages\n# This program is dedicated to the public domain under the CC0 license.\n\"\"\"\nThis Bot uses the Updater class to handle the bot.\n\nFirst, a few callback functions are defined. Then, those functions are passed to\nthe Dispatcher and registered at their respective places.\nThen, the bot is started and runs until we press Ctrl-C on the command line.\n\nUsage:\nExample of a bot-user conversation using ConversationHandler.\nSend /start to initiate the conversation.\nPress Ctrl-C on the command line or send a signal to the process to stop the\nbot.\n\"\"\"\n\nfrom telegram import ReplyKeyboardMarkup\nfrom telegram.ext import (Updater, CommandHandler, MessageHandler, Filters, RegexHandler,\n                          ConversationHandler)\n\nimport logging\n\n# Enable logging\nlogging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',\n                    level=logging.INFO)\n\nlogger = logging.getLogger(__name__)\n\nCHOOSING, TYPING_REPLY, TYPING_CHOICE = range(3)\n\nreply_keyboard = [['Age', 'Favourite colour'],\n                  ['Number of siblings', 'Something else...'],\n                  ['Done']]\nmarkup = ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True)\n\n\ndef facts_to_str(user_data):\n    facts = list()\n\n    for key, value in user_data.items():\n        facts.append('{} - {}'.format(key, value))\n\n    return \"\\n\".join(facts).join(['\\n', '\\n'])\n\n\ndef start(bot, update):\n    update.message.reply_text(\n        \"Hi! My name is Doctor Botter. I will hold a more complex conversation with you. \"\n        \"Why don't you tell me something about yourself?\",\n        reply_markup=markup)\n\n    return CHOOSING\n\n\ndef regular_choice(bot, update, user_data):\n    text = update.message.text\n    user_data['choice'] = text\n    update.message.reply_text(\n        'Your {}? Yes, I would love to hear about that!'.format(text.lower()))\n\n    return TYPING_REPLY\n\n\ndef custom_choice(bot, update):\n    update.message.reply_text('Alright, please send me the category first, '\n                              'for example \"Most impressive skill\"')\n\n    return TYPING_CHOICE\n\n\ndef received_information(bot, update, user_data):\n    text = update.message.text\n    category = user_data['choice']\n    user_data[category] = text\n    del user_data['choice']\n\n    update.message.reply_text(\"Neat! Just so you know, this is what you already told me:\"\n                              \"{}\"\n                              \"You can tell me more, or change your opinion on something.\".format(\n                                  facts_to_str(user_data)), reply_markup=markup)\n\n    return CHOOSING\n\n\ndef done(bot, update, user_data):\n    if 'choice' in user_data:\n        del user_data['choice']\n\n    update.message.reply_text(\"I learned these facts about you:\"\n                              \"{}\"\n                              \"Until next time!\".format(facts_to_str(user_data)))\n\n    user_data.clear()\n    return ConversationHandler.END\n\n\ndef error(bot, update, error):\n    \"\"\"Log Errors caused by Updates.\"\"\"\n    logger.warning('Update \"%s\" caused error \"%s\"', update, error)\n\n\ndef main():\n    # Create the Updater and pass it your bot's token.\n    updater = Updater(\"TOKEN\")\n\n    # Get the dispatcher to register handlers\n    dp = updater.dispatcher\n\n    # Add conversation handler with the states CHOOSING, TYPING_CHOICE and TYPING_REPLY\n    conv_handler = ConversationHandler(\n        entry_points=[CommandHandler('start', start)],\n\n        states={\n            CHOOSING: [RegexHandler('^(Age|Favourite colour|Number of siblings)$',\n                                    regular_choice,\n                                    pass_user_data=True),\n                       RegexHandler('^Something else...$',\n                                    custom_choice),\n                       ],\n\n            TYPING_CHOICE: [MessageHandler(Filters.text,\n                                           regular_choice,\n                                           pass_user_data=True),\n                            ],\n\n            TYPING_REPLY: [MessageHandler(Filters.text,\n                                          received_information,\n                                          pass_user_data=True),\n                           ],\n        },\n\n        fallbacks=[RegexHandler('^Done$', done, pass_user_data=True)]\n    )\n\n    dp.add_handler(conv_handler)\n\n    # log all errors\n    dp.add_error_handler(error)\n\n    # Start the Bot\n    updater.start_polling()\n\n    # Run the bot until you press Ctrl-C or the process receives SIGINT,\n    # SIGTERM or SIGABRT. This should be used most of the time, since\n    # start_polling() is non-blocking and will stop the bot gracefully.\n    updater.idle()\n\n\nif __name__ == '__main__':\n    main()\n", "path": "examples/conversationbot2.py"}]}