2014 Quito Challenger – Singles
Víctor Estrella Burgos was the defending champion, but lost to Gonzalo Escobar in the second round.
Singles | |
---|---|
2014 Quito Challenger | |
Champion | ![]() |
Runner-up | ![]() |
Final score | 6–4, 7–6(11–9) |
Horacio Zeballos won the title by defeating Nicolás Jarry 6–4, 7–6(11–9) in the final.
Seeds
Víctor Estrella Burgos (Second round) João Souza (Semifinals) Horacio Zeballos (Champion) Guido Pella (Second round) Austin Krajicek (First round) Chase Buchanan (Quarterfinals) Juan Ignacio Londero (Quarterfinals) Nikola Mektić (First round)
Draw
Key
- Q = Qualifier
- WC = Wild Card
- LL = Lucky Loser
- Alt = Alternate
- SE = Special Exempt
- PR = Protected Ranking
- ITF = ITF entry
- JE = Junior Exempt
- w/o = Walkover
- r = Retired
- d = Defaulted
Finals
Semifinals | Final | ||||||||||||
![]() | 7 | 4 | 5 | ||||||||||
3 | ![]() | 5 | 6 | 7 | |||||||||
3 | ![]() | 6 | 711 | ||||||||||
![]() | 4 | 69 | |||||||||||
![]() | 64 | 6 | 6 | ||||||||||
2 | ![]() | 77 | 3 | 3 | |||||||||
Top Half
First Round | Second Round | Quarterfinals | Semifinals | ||||||||||||||||||||||||
1 | ![]() | 6 | 6 | ||||||||||||||||||||||||
![]() | 2 | 4 | 1 | ![]() | 6 | 3 | 64 | ||||||||||||||||||||
WC | ![]() | 2 | 6 | 6 | WC | ![]() | 4 | 6 | 77 | ||||||||||||||||||
![]() | 6 | 3 | 4 | WC | ![]() | 4 | 0 | ||||||||||||||||||||
Q | ![]() | 5 | 4 | ![]() | 6 | 6 | |||||||||||||||||||||
![]() | 7 | 6 | ![]() | 4 | 77 | 6 | |||||||||||||||||||||
Q | ![]() | 6 | 77 | Q | ![]() | 6 | 65 | 2 | |||||||||||||||||||
5 | ![]() | 4 | 64 | ![]() | 7 | 3 | 5 | ||||||||||||||||||||
3 | ![]() | 6 | 6 | 3 | ![]() | 5 | 6 | 7 | |||||||||||||||||||
![]() | 4 | 4 | 3 | ![]() | 710 | 5 | 6 | ||||||||||||||||||||
WC | ![]() | 3 | 4 | ![]() | 68 | 7 | 3 | ||||||||||||||||||||
![]() | 6 | 6 | 3 | ![]() | 7 | 77 | |||||||||||||||||||||
![]() | 6 | 7 | ![]() | 5 | 65 | ||||||||||||||||||||||
![]() | 2 | 5 | ![]() | 77 | 6 | ||||||||||||||||||||||
![]() | 6 | 6 | ![]() | 64 | 4 | ||||||||||||||||||||||
8 | ![]() | 3 | 4 |
Bottom Half
First Round | Second Round | Quarterfinals | Semifinals | ||||||||||||||||||||||||
7 | ![]() | 7 | 66 | 77 | |||||||||||||||||||||||
Q | ![]() | 5 | 78 | 62 | 7 | ![]() | 64 | 77 | 6 | ||||||||||||||||||
![]() | 4 | 6 | 6 | ![]() | 77 | 61 | 3 | ||||||||||||||||||||
![]() | 6 | 2 | 2 | 7 | ![]() | 2 | 5 | ||||||||||||||||||||
![]() | 6 | 6 | ![]() | 6 | 7 | ||||||||||||||||||||||
![]() | 3 | 4 | ![]() | 77 | 6 | ||||||||||||||||||||||
![]() | 4 | 2 | 4 | ![]() | 61 | 2 | |||||||||||||||||||||
4 | ![]() | 6 | 6 | ![]() | 64 | 6 | 6 | ||||||||||||||||||||
6/WC | ![]() | 6 | 6 | 2 | ![]() | 77 | 3 | 3 | |||||||||||||||||||
![]() | 3 | 4 | 6/WC | ![]() | 6 | 63 | 6 | ||||||||||||||||||||
![]() | 6 | 2 | 4 | Q | ![]() | 2 | 77 | 1 | |||||||||||||||||||
Q | ![]() | 3 | 6 | 6 | 6/WC | ![]() | 61 | 3 | |||||||||||||||||||
WC | ![]() | 3 | 0 | 2 | ![]() | 77 | 6 | ||||||||||||||||||||
![]() | 6 | 6 | ![]() | 2 | 3 | ||||||||||||||||||||||
LL | ![]() | 3 | 2 | 2 | ![]() | 6 | 6 | ||||||||||||||||||||
2 | ![]() | 6 | 6 |
gollark: I doubt the second part is true.
gollark: People that have iPhones: buy sensible phones.
gollark: Yes; it's *very hard* to go around editing the FS API such that other stuff isn't affected.
gollark: ```pythonfrom requests_futures.sessions import FuturesSessionimport concurrent.futures as futuresimport randomtry: import cPickle as pickleexcept ImportError: import pickletry: words_to_synonyms = pickle.load(open(".wtscache")) synonyms_to_words = pickle.load(open(".stwcache"))except: words_to_synonyms = {} synonyms_to_words = {}def add_to_key(d, k, v): d[k] = d.get(k, set()).union(set(v))def add_synonyms(syns, word): for syn in syns: add_to_key(synonyms_to_words, syn, [word]) add_to_key(words_to_synonyms, word, syns)def concat(list_of_lists): return sum(list_of_lists, [])def add_words(words): s = FuturesSession(max_workers=100) future_to_word = {s.get("https://api.datamuse.com/words", params={"ml": word}): word for word in words} future_to_word.update({s.get("https://api.datamuse.com/words", params={"ml": word, "v": "enwiki"}): word for word in words}) for future in futures.as_completed(future_to_word): word = future_to_word[future] try: data = future.result().json() except Exception as exc: print(f"{exc} fetching {word}") else: add_synonyms([w["word"] for w in data], word)def getattr_hook(obj, key): results = list(synonyms_to_words.get(key, set()).union(words_to_synonyms.get(key, set()))) if len(results) > 0: return obj.__getattribute__(random.choice(results)) else: raise AttributeError(f"Attribute {key} not found.")def wrap(obj): add_words(dir(obj)) obj.__getattr__ = lambda key: getattr_hook(obj, key)wrap(__builtins__)raise __builtins__.quibble()```
gollark: table.deepcopy, table.shallowcopy, table.slice, table.filter, table.map
References
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.