From 180049b0e5670e5b89ba7ae5edc55d6f989e1958 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Mon, 26 Apr 2021 15:28:58 +0200 Subject: [PATCH] First working version Signed-off-by: root --- .gitignore | 1 + bot.py | 269 ++++++++++++++++++++++++ captcha_images/airplane.png | Bin 0 -> 1746 bytes captcha_images/airplane.ppm | Bin 0 -> 3085 bytes captcha_images/airplane.ppm.sum | 1 + captcha_images/airplane@2x.png | Bin 0 -> 3664 bytes captcha_images/balloons.png | Bin 0 -> 1496 bytes captcha_images/balloons.ppm | Bin 0 -> 3085 bytes captcha_images/balloons.ppm.sum | 1 + captcha_images/balloons@2x.png | Bin 0 -> 3203 bytes captcha_images/camera.png | Bin 0 -> 1417 bytes captcha_images/camera.ppm | Bin 0 -> 3085 bytes captcha_images/camera.ppm.sum | 1 + captcha_images/camera@2x.png | Bin 0 -> 2982 bytes captcha_images/car.png | Bin 0 -> 1163 bytes captcha_images/car.ppm | Bin 0 -> 3085 bytes captcha_images/car.ppm.sum | 1 + captcha_images/car@2x.png | Bin 0 -> 2370 bytes captcha_images/cat.png | Bin 0 -> 1179 bytes captcha_images/cat.ppm | Bin 0 -> 3085 bytes captcha_images/cat.ppm.sum | 1 + captcha_images/cat@2x.png | Bin 0 -> 2405 bytes captcha_images/chair.png | Bin 0 -> 936 bytes captcha_images/chair.ppm | Bin 0 -> 3085 bytes captcha_images/chair.ppm.sum | 1 + captcha_images/chair@2x.png | Bin 0 -> 1585 bytes captcha_images/clip.png | Bin 0 -> 1759 bytes captcha_images/clip.ppm | Bin 0 -> 3085 bytes captcha_images/clip.ppm.sum | 1 + captcha_images/clip@2x.png | Bin 0 -> 3923 bytes captcha_images/clock.png | Bin 0 -> 2236 bytes captcha_images/clock.ppm | Bin 0 -> 3085 bytes captcha_images/clock.ppm.sum | 1 + captcha_images/clock@2x.png | Bin 0 -> 5117 bytes captcha_images/cloud.png | Bin 0 -> 1050 bytes captcha_images/cloud.ppm | Bin 0 -> 3085 bytes captcha_images/cloud.ppm.sum | 1 + captcha_images/cloud@2x.png | Bin 0 -> 2154 bytes captcha_images/computer.png | Bin 0 -> 774 bytes captcha_images/computer.ppm | Bin 0 -> 3085 bytes captcha_images/computer.ppm.sum | 1 + captcha_images/computer@2x.png | Bin 0 -> 1394 bytes captcha_images/envelope.png | Bin 0 -> 1199 bytes captcha_images/envelope.ppm | Bin 0 -> 3085 bytes captcha_images/envelope.ppm.sum | 1 + captcha_images/envelope@2x.png | Bin 0 -> 2803 bytes captcha_images/eye.png | Bin 0 -> 1315 bytes captcha_images/eye.ppm | Bin 0 -> 3085 bytes captcha_images/eye.ppm.sum | 1 + captcha_images/eye@2x.png | Bin 0 -> 2725 bytes captcha_images/flag.png | Bin 0 -> 1046 bytes captcha_images/flag.ppm | Bin 0 -> 3085 bytes captcha_images/flag.ppm.sum | 1 + captcha_images/flag@2x.png | Bin 0 -> 1928 bytes captcha_images/folder.png | Bin 0 -> 1043 bytes captcha_images/folder.ppm | Bin 0 -> 3085 bytes captcha_images/folder.ppm.sum | 1 + captcha_images/folder@2x.png | Bin 0 -> 1987 bytes captcha_images/foot.png | Bin 0 -> 1110 bytes captcha_images/foot.ppm | Bin 0 -> 3085 bytes captcha_images/foot.ppm.sum | 1 + captcha_images/foot@2x.png | Bin 0 -> 2287 bytes captcha_images/graph.png | Bin 0 -> 1375 bytes captcha_images/graph.ppm | Bin 0 -> 3085 bytes captcha_images/graph.ppm.sum | 1 + captcha_images/graph@2x.png | Bin 0 -> 2721 bytes captcha_images/house.png | Bin 0 -> 1185 bytes captcha_images/house.ppm | Bin 0 -> 3085 bytes captcha_images/house.ppm.sum | 1 + captcha_images/house@2x.png | Bin 0 -> 2164 bytes captcha_images/key.png | Bin 0 -> 1134 bytes captcha_images/key.ppm | Bin 0 -> 3085 bytes captcha_images/key.ppm.sum | 1 + captcha_images/key@2x.png | Bin 0 -> 2229 bytes captcha_images/leaf.png | Bin 0 -> 1678 bytes captcha_images/leaf.ppm | Bin 0 -> 3085 bytes captcha_images/leaf.ppm.sum | 1 + captcha_images/leaf@2x.png | Bin 0 -> 3839 bytes captcha_images/light-bulb.png | Bin 0 -> 1268 bytes captcha_images/light-bulb.ppm | Bin 0 -> 3085 bytes captcha_images/light-bulb.ppm.sum | 1 + captcha_images/light-bulb@2x.png | Bin 0 -> 2803 bytes captcha_images/lock.png | Bin 0 -> 1342 bytes captcha_images/lock.ppm | Bin 0 -> 3085 bytes captcha_images/lock.ppm.sum | 1 + captcha_images/lock@2x.png | Bin 0 -> 2612 bytes captcha_images/magnifying-glass.png | Bin 0 -> 1469 bytes captcha_images/magnifying-glass.ppm | Bin 0 -> 3085 bytes captcha_images/magnifying-glass.ppm.sum | 1 + captcha_images/magnifying-glass@2x.png | Bin 0 -> 2981 bytes captcha_images/man.png | Bin 0 -> 966 bytes captcha_images/man.ppm | Bin 0 -> 3085 bytes captcha_images/man.ppm.sum | 1 + captcha_images/man@2x.png | Bin 0 -> 1745 bytes captcha_images/music-note.png | Bin 0 -> 1611 bytes captcha_images/music-note.ppm | Bin 0 -> 3085 bytes captcha_images/music-note.ppm.sum | 1 + captcha_images/music-note@2x.png | Bin 0 -> 3620 bytes captcha_images/pants.png | Bin 0 -> 1082 bytes captcha_images/pants.ppm | Bin 0 -> 3085 bytes captcha_images/pants.ppm.sum | 1 + captcha_images/pants@2x.png | Bin 0 -> 1928 bytes captcha_images/pencil.png | Bin 0 -> 1182 bytes captcha_images/pencil.ppm | Bin 0 -> 3085 bytes captcha_images/pencil.ppm.sum | 1 + captcha_images/pencil@2x.png | Bin 0 -> 2488 bytes captcha_images/printer.png | Bin 0 -> 1195 bytes captcha_images/printer.ppm | Bin 0 -> 3085 bytes captcha_images/printer.ppm.sum | 1 + captcha_images/printer@2x.png | Bin 0 -> 2179 bytes captcha_images/robot.png | Bin 0 -> 1519 bytes captcha_images/robot.ppm | Bin 0 -> 3085 bytes captcha_images/robot.ppm.sum | 1 + captcha_images/robot@2x.png | Bin 0 -> 3210 bytes captcha_images/scissors.png | Bin 0 -> 1707 bytes captcha_images/scissors.ppm | Bin 0 -> 3085 bytes captcha_images/scissors.ppm.sum | 1 + captcha_images/scissors@2x.png | Bin 0 -> 3780 bytes captcha_images/sunglasses.png | Bin 0 -> 965 bytes captcha_images/sunglasses.ppm | Bin 0 -> 3085 bytes captcha_images/sunglasses.ppm.sum | 1 + captcha_images/sunglasses@2x.png | Bin 0 -> 1889 bytes captcha_images/t-shirt.png | Bin 0 -> 1292 bytes captcha_images/t-shirt.ppm | Bin 0 -> 3085 bytes captcha_images/t-shirt.ppm.sum | 1 + captcha_images/t-shirt@2x.png | Bin 0 -> 2478 bytes captcha_images/tag.png | Bin 0 -> 1306 bytes captcha_images/tag.ppm | Bin 0 -> 3085 bytes captcha_images/tag.ppm.sum | 1 + captcha_images/tag@2x.png | Bin 0 -> 2352 bytes captcha_images/tree.png | Bin 0 -> 1293 bytes captcha_images/tree.ppm | Bin 0 -> 3085 bytes captcha_images/tree.ppm.sum | 1 + captcha_images/tree@2x.png | Bin 0 -> 2341 bytes captcha_images/truck.png | Bin 0 -> 1157 bytes captcha_images/truck.ppm | Bin 0 -> 3085 bytes captcha_images/truck.ppm.sum | 1 + captcha_images/truck@2x.png | Bin 0 -> 2279 bytes captcha_images/umbrella.png | Bin 0 -> 1249 bytes captcha_images/umbrella.ppm | Bin 0 -> 3085 bytes captcha_images/umbrella.ppm.sum | 1 + captcha_images/umbrella@2x.png | Bin 0 -> 2457 bytes captcha_images/woman.png | Bin 0 -> 1171 bytes captcha_images/woman.ppm | Bin 0 -> 3085 bytes captcha_images/woman.ppm.sum | 1 + captcha_images/woman@2x.png | Bin 0 -> 2402 bytes captcha_images/world.png | Bin 0 -> 2345 bytes captcha_images/world.ppm | Bin 0 -> 3085 bytes captcha_images/world.ppm.sum | 1 + captcha_images/world@2x.png | Bin 0 -> 5372 bytes 150 files changed, 307 insertions(+) create mode 100644 .gitignore create mode 100755 bot.py create mode 100644 captcha_images/airplane.png create mode 100644 captcha_images/airplane.ppm create mode 100644 captcha_images/airplane.ppm.sum create mode 100644 captcha_images/airplane@2x.png create mode 100644 captcha_images/balloons.png create mode 100644 captcha_images/balloons.ppm create mode 100644 captcha_images/balloons.ppm.sum create mode 100644 captcha_images/balloons@2x.png create mode 100644 captcha_images/camera.png create mode 100644 captcha_images/camera.ppm create mode 100644 captcha_images/camera.ppm.sum create mode 100644 captcha_images/camera@2x.png create mode 100644 captcha_images/car.png create mode 100644 captcha_images/car.ppm create mode 100644 captcha_images/car.ppm.sum create mode 100644 captcha_images/car@2x.png create mode 100644 captcha_images/cat.png create mode 100644 captcha_images/cat.ppm create mode 100644 captcha_images/cat.ppm.sum create mode 100644 captcha_images/cat@2x.png create mode 100644 captcha_images/chair.png create mode 100644 captcha_images/chair.ppm create mode 100644 captcha_images/chair.ppm.sum create mode 100644 captcha_images/chair@2x.png create mode 100644 captcha_images/clip.png create mode 100644 captcha_images/clip.ppm create mode 100644 captcha_images/clip.ppm.sum create mode 100644 captcha_images/clip@2x.png create mode 100644 captcha_images/clock.png create mode 100644 captcha_images/clock.ppm create mode 100644 captcha_images/clock.ppm.sum create mode 100644 captcha_images/clock@2x.png create mode 100644 captcha_images/cloud.png create mode 100644 captcha_images/cloud.ppm create mode 100644 captcha_images/cloud.ppm.sum create mode 100644 captcha_images/cloud@2x.png create mode 100644 captcha_images/computer.png create mode 100644 captcha_images/computer.ppm create mode 100644 captcha_images/computer.ppm.sum create mode 100644 captcha_images/computer@2x.png create mode 100644 captcha_images/envelope.png create mode 100644 captcha_images/envelope.ppm create mode 100644 captcha_images/envelope.ppm.sum create mode 100644 captcha_images/envelope@2x.png create mode 100644 captcha_images/eye.png create mode 100644 captcha_images/eye.ppm create mode 100644 captcha_images/eye.ppm.sum create mode 100644 captcha_images/eye@2x.png create mode 100644 captcha_images/flag.png create mode 100644 captcha_images/flag.ppm create mode 100644 captcha_images/flag.ppm.sum create mode 100644 captcha_images/flag@2x.png create mode 100644 captcha_images/folder.png create mode 100644 captcha_images/folder.ppm create mode 100644 captcha_images/folder.ppm.sum create mode 100644 captcha_images/folder@2x.png create mode 100644 captcha_images/foot.png create mode 100644 captcha_images/foot.ppm create mode 100644 captcha_images/foot.ppm.sum create mode 100644 captcha_images/foot@2x.png create mode 100644 captcha_images/graph.png create mode 100644 captcha_images/graph.ppm create mode 100644 captcha_images/graph.ppm.sum create mode 100644 captcha_images/graph@2x.png create mode 100644 captcha_images/house.png create mode 100644 captcha_images/house.ppm create mode 100644 captcha_images/house.ppm.sum create mode 100644 captcha_images/house@2x.png create mode 100644 captcha_images/key.png create mode 100644 captcha_images/key.ppm create mode 100644 captcha_images/key.ppm.sum create mode 100644 captcha_images/key@2x.png create mode 100644 captcha_images/leaf.png create mode 100644 captcha_images/leaf.ppm create mode 100644 captcha_images/leaf.ppm.sum create mode 100644 captcha_images/leaf@2x.png create mode 100644 captcha_images/light-bulb.png create mode 100644 captcha_images/light-bulb.ppm create mode 100644 captcha_images/light-bulb.ppm.sum create mode 100644 captcha_images/light-bulb@2x.png create mode 100644 captcha_images/lock.png create mode 100644 captcha_images/lock.ppm create mode 100644 captcha_images/lock.ppm.sum create mode 100644 captcha_images/lock@2x.png create mode 100644 captcha_images/magnifying-glass.png create mode 100644 captcha_images/magnifying-glass.ppm create mode 100644 captcha_images/magnifying-glass.ppm.sum create mode 100644 captcha_images/magnifying-glass@2x.png create mode 100644 captcha_images/man.png create mode 100644 captcha_images/man.ppm create mode 100644 captcha_images/man.ppm.sum create mode 100644 captcha_images/man@2x.png create mode 100644 captcha_images/music-note.png create mode 100644 captcha_images/music-note.ppm create mode 100644 captcha_images/music-note.ppm.sum create mode 100644 captcha_images/music-note@2x.png create mode 100644 captcha_images/pants.png create mode 100644 captcha_images/pants.ppm create mode 100644 captcha_images/pants.ppm.sum create mode 100644 captcha_images/pants@2x.png create mode 100644 captcha_images/pencil.png create mode 100644 captcha_images/pencil.ppm create mode 100644 captcha_images/pencil.ppm.sum create mode 100644 captcha_images/pencil@2x.png create mode 100644 captcha_images/printer.png create mode 100644 captcha_images/printer.ppm create mode 100644 captcha_images/printer.ppm.sum create mode 100644 captcha_images/printer@2x.png create mode 100644 captcha_images/robot.png create mode 100644 captcha_images/robot.ppm create mode 100644 captcha_images/robot.ppm.sum create mode 100644 captcha_images/robot@2x.png create mode 100644 captcha_images/scissors.png create mode 100644 captcha_images/scissors.ppm create mode 100644 captcha_images/scissors.ppm.sum create mode 100644 captcha_images/scissors@2x.png create mode 100644 captcha_images/sunglasses.png create mode 100644 captcha_images/sunglasses.ppm create mode 100644 captcha_images/sunglasses.ppm.sum create mode 100644 captcha_images/sunglasses@2x.png create mode 100644 captcha_images/t-shirt.png create mode 100644 captcha_images/t-shirt.ppm create mode 100644 captcha_images/t-shirt.ppm.sum create mode 100644 captcha_images/t-shirt@2x.png create mode 100644 captcha_images/tag.png create mode 100644 captcha_images/tag.ppm create mode 100644 captcha_images/tag.ppm.sum create mode 100644 captcha_images/tag@2x.png create mode 100644 captcha_images/tree.png create mode 100644 captcha_images/tree.ppm create mode 100644 captcha_images/tree.ppm.sum create mode 100644 captcha_images/tree@2x.png create mode 100644 captcha_images/truck.png create mode 100644 captcha_images/truck.ppm create mode 100644 captcha_images/truck.ppm.sum create mode 100644 captcha_images/truck@2x.png create mode 100644 captcha_images/umbrella.png create mode 100644 captcha_images/umbrella.ppm create mode 100644 captcha_images/umbrella.ppm.sum create mode 100644 captcha_images/umbrella@2x.png create mode 100644 captcha_images/woman.png create mode 100644 captcha_images/woman.ppm create mode 100644 captcha_images/woman.ppm.sum create mode 100644 captcha_images/woman@2x.png create mode 100644 captcha_images/world.png create mode 100644 captcha_images/world.ppm create mode 100644 captcha_images/world.ppm.sum create mode 100644 captcha_images/world@2x.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..20efa43 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.token diff --git a/bot.py b/bot.py new file mode 100755 index 0000000..f7098e2 --- /dev/null +++ b/bot.py @@ -0,0 +1,269 @@ +#!/usr/bin/env python3 + +from PIL import Image +from dataclasses import dataclass +from datetime import datetime +import hashlib +import json +from random import choice +import requests +import smtplib + + +# API_PREFIX = "https://beta.interieur.gouv.fr/candilib/api/v2/" +# API_PREFIX = "https://candilib.ynerant.fr/candilib/api/v2/" +API_PREFIX = "http://localhost/candilib/api/v2/" + +CAPTCHA_IMAGES = { + "L'avion": "airplane", + "Les ballons": "balloons", + "L'appareil photo": "camera", + "La Voiture": "car", + "Le chat": "cat", + "La chaise": "chair", + "Le trombone": "clip", + "L'horloge": "clock", + "Le nuage": "cloud", + "L'ordinateur": "computer", + "L'enveloppe": "envelope", + "L'oeil": "eye", + "Le drapeau": "flag", + "Le dossier": "folder", + "Le pied": "foot", + "Le graphique": "graph", + "La maison": "house", + "La clef": "key", + "La feuille": "leaf", + "L'ampoule": "light-bulb", + "Le cadenas": "lock", + "La loupe": "magnifying-glass", + "L'homme": "man", + "La note de musique": "music-note", + "Le pantalon": "pants", + "Le crayon": "pencil", + "L'imprimante": "printer", + "Le robot": "robot", + "Les ciseaux": "scissors", + "Les lunettes de soleil": "sunglasses", + "L'étiquette": "tag", + "L'arbre": "tree", + "Le camion": "truck", + "Le T-Shirt": "t-shirt", + "Le parapluie": "umbrella", + "La femme": "woman", + "La planète": "world" +} + + +def calculate_checksums(): + for name in CAPTCHA_IMAGES.values(): + img = Image.open(f'captcha_images/{name}.png') + img.save(f'captcha_images/{name}.ppm') + with open(f'captcha_images/{name}.ppm', 'rb') as f: + with open(f'captcha_images/{name}.ppm.sum', 'w') as f_sum: + f_sum.write(hashlib.sha512(f.read()).hexdigest()) + + +@dataclass +class Candidat: + codeNeph: str = '' + homeDepartement: str = '' + departement: str = '75' + email: str = '' + nomNaissance: str = '' + prenom: str = '' + portable: str = '' + adresse: str = '' + visibilityHour: str = '12H50' + dateETG: str = '' + isInRecentlyDept: bool = False + + +@dataclass +class Places: + _id: str = '' + centre: "Centre" = None + date: str = '' + lastDateToCancel: str = '' + canBookFrom: str = '' + timeOutToRetry: int = 0 + dayToForbidCancel: int = 7 + visibilityHour: str = '12H50' + + +@dataclass(order=True) +class Departement: + geoDepartement: str = '' + centres: list["Centre"] = None + count: int = None + + +@dataclass +class Centre: + _id: str + count: int = 0 + longitude: float = 0.0 + latitude: float = 0.0 + nom: str = "" + departement: Departement = None + + +def api(path: str, token: str, user_id: str, app: str = 'candidat', **kwargs) -> dict: + return requests.get( + API_PREFIX + app + '/' + path, + data=kwargs, + headers={ + 'Authorization': f'Bearer {token}', + 'Content-Type': 'application/json', + 'X-USER-ID': user_id, + }, + ).json() + + +def send_mail(content: str, subject: str) -> None: + print('\n') + print(subject) + print(len(subject) * '-') + print() + return print(content) + smtp = smtplib.SMTP('localhost', 25) + content = f"""From: Ÿnérant +To: Ÿnérant +Subject: {subject} + +""" + content + content = content.encode('UTF-8') + smtp.sendmail('ynerant@crans.org', ['ynerant+candilib@crans.org'], content) + + +def main(token: str) -> None: + response = requests.get(API_PREFIX + 'auth/candidat/verify-token?token=' + token) + try: + assert response.json()['auth'] + except (AssertionError, KeyError): + raise ValueError(f"Une erreur est survenue lors de la connexion : {response.content.decode('utf-8')}") + user_id = response.headers['X-USER-ID'] + + me = Candidat(**api('me', token, user_id)['candidat']) + print(f'Salut {me.prenom} {me.nomNaissance} !') + + + departements = [Departement(**dpt) for dpt in api('departements', token, user_id)['geoDepartementsInfos']] + departements.sort() + + for dpt in departements: + centres = api(f'centres?departement={dpt.geoDepartement}&end=2021-07-31T23:59:59.999', token, user_id) + dpt.centres = [] + dpt.count = 0 + for centre in centres: + centre = Centre( + _id=centre['centre']['_id'], + nom=centre['centre']['nom'], + count=centre['count'], + longitude=centre['centre']['geoloc']['coordinates'][0], + latitude=centre['centre']['geoloc']['coordinates'][1], + departement=dpt, + ) + dpt.centres.append(centre) + dpt.count += centre.count + + places = Places(**api('places', token, user_id)) + for dpt in departements: + for centre in dpt.centres: + if centre._id == places.centre['_id']: + places.centre = centre + break + else: + continue + break + + if places.date: + print(f"Vous avez déjà une date d'examen, le {places.date}.") + exit(1) + + print("\n") + for dpt in departements: + print(dpt.geoDepartement, dpt.count) + + for dpt in departements: + for centre in dpt.centres: + dates = api(f"places?begin=2021-04-26T00:00:00.000&end=2021-07-31T23:59:59.999+02:00&geoDepartement={dpt.geoDepartement}&nomCentre={centre.nom}", token, user_id) + send_mail(json.dumps(dates, indent=2), centre.nom) + centre.dates = dates + + PREFERRED_CENTRES = ["MASSY", "RUNGIS", "ETAMPES", "SAINT CLOUD", "SAINT PRIEST", "LA TRONCHE"] + + for name in PREFERRED_CENTRES: + for dpt in departements: + for centre in dpt.centres: + if centre.nom == name: + break + else: + continue + break + for date in centre.dates: + if name == "SAINT PRIEST" and ("T07:" in date or "T08:" in date): + continue + break + else: + continue + break + else: + print("Aucune date intéressante") + return + + print("Centre :", centre.nom) + print("Date :", date) + # Resolve captcha + captcha_info = api('verifyzone/start', token, user_id) + print(captcha_info) + captcha_info = captcha_info['captcha'] + field = captcha_info['imageFieldName'] + image_name = captcha_info['imageName'] + image_file = CAPTCHA_IMAGES[image_name] + captcha_images = captcha_info['values'] + + with open(f'captcha_images/{image_file}.ppm.sum') as f: + valid_checksum = f.read().strip() + + for i in range(5): + response = requests.get( + f'{API_PREFIX}candidat/verifyzone/image/{i}', + headers={ + 'Accept': 'application/json', + 'Authorization': f'Bearer {token}', + 'X-USER-ID': user_id, + }, + ) + with open(f'/tmp/image_{i}.png', 'wb') as f: + f.write(response.content) + img = Image.open(f'/tmp/image_{i}.png') + img.save(f'/tmp/image_{i}.ppm') + with open(f'/tmp/image_{i}.ppm', 'rb') as f: + checksum = hashlib.sha512(f.read()).hexdigest() + if checksum == valid_checksum: + captcha_result = captcha_images[i] + + print(requests.patch( + API_PREFIX + 'candidat/places', + headers={ + 'Content-Type': 'application/json', + 'Authorization': f'Bearer {token}', + 'X-USER-ID': user_id, + }, + json={ + 'geoDepartement': centre.departement.geoDepartement, + 'nomCentre': centre.nom, + 'date': date, + 'hasDualControlCar': True, + 'isAccompanied': True, + 'isModification': False, + field: captcha_result, + }, + ).content) + + +if __name__ == '__main__': + with open('/var/local/candibot/.token') as f: + token = f.read().strip() + main(token) diff --git a/captcha_images/airplane.png b/captcha_images/airplane.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe9aac4148a638effa0dd4dcbe59bacaa6c9766 GIT binary patch literal 1746 zcmV;@1}*uCP)AT&$rHq`Fvikb+EE zLxo>&A=l?s;*L#M95O|ly-l;kO4gf^-qYD{^5oU~CAfi^!^PbMn&*uOD zji$gb49hglf?*hcS-PeuO6!~UhC(4L8ja4xVlfem#Y8k36+#FIAsS0TC={|ZO&e2H zHMD>K{x$V$rfKE^fxxtBn#;fdV9lB}xnM9j*3{IL2#3Q6g+ho%qprWs>mSxM?PrWJ z5D|z7k|aTv<*=%%Uoysm>2$hq_3G7Y*REXy07N2@9Aj*Nh>*|c*~yb9YrcZPU|3O< z3%af!)^#1au7h(9*L9K4=O6gbkq`nz1j8^|o12?&EG#T^NRk9elE67fAP|6}D3E0t zp69`J-LGxiE_j|d#X0{C03(%36^4h0KO&+L0BCM*ZdFxvSW%R;X`0Y=9g3nr(=_+Q zi4)&$-@g4107e!82q9tsdPYV@KDc!0QtP8fkHUdKpa#G>N2OAM<2Wdn%kVr8j4?3A z;CUWOrP9~7ZI8OHTaYB_xS}XchGEpi4a0CxojNscSynfIsbvxHO$cED$lbkr_k-)# zuWxwp;KABJAOOy}9|5?oi~4=8>!MUD!Eqc^DiuhQ1VvGx>pEmvMm!!b9zTA3(z2{0 zMD(P-@RtEB0ogY*GxPKQ{{Gg9iHTS>Qnk+U@0Uh~a}HUSAxRR}uU}t0fByVXBog@} z5k0B;emg)NNDM%(P$>LjaBy(L?c29El*?sKL}2WPCaP2_s8lNOJg*iRBEq_L>x$>j zog0coBEKb~Vx7;%0qQoH0QLdcck|}W)hO&S|1h9^J)T>N(DQ1?3nE7>DgW{ zz7(M0QA|WdBKn+&_N3G4-b5lXTVD%|F>uZyNfLk`>f-+W`}$JxWquotfNvW&ZVU&5 z!7)wK(yFR167}ECbzRuD4M~#bpFe-zRxB1jwQc*b<2Waa#p0*`R|Ei{rKKh8y6%|c zIBC~)Yk9A)0sj(0U~XU$r`kE$d|wK;P1=+URQZrvJQ>X)yewaiS@3~QP;Cd+c#pNc*}DwX=ax3~9iFJ8R( zZ+Cb1$9_7A2%K{ylgZ-QvuD3eCX;_6qR&?iV47xF*Yz<)QPTcYlOzd32yETDb+)gs z?<#=LB9VxhNF;teJv|-vA%qavym|A#lgZ>>BAQ*v{~J>f3N}B}sa! zD9V?Lq69TfTO@w$*s+HP4<7u4h;Gz76GB+KcI_H37KR!Bfamuo+PyCZ_(c2JB zUAc1QoBsa(pZbT?1)@nwNIZuJ<-w8am1hLE13}D!)@EP{k2l5a3KWByLa#2@7vniM0?z_eE_~Sv;NJGv|E2-}9XFoC*0IUXRo3ad><_$M1iC{rGz; zIXO8sH8m|QEhQzzT#OAo{&=!$pM-=2{b}s<^z@vZoL`>{<4b(}e}1m{`FR5Z9SYga zi5OW~Sw%%fWo2bmRaKRhl{Gar7W|~7BvDIvMn(n#ii?X&OH0Sc$MF=9?CfmLb8~aI zx3>*G{-`J^DFNBz@%a6I_LGwnjSn*HXpjW4T`pI3b#+5SLtR}Rflj9r1P)mf6BC9p zGcz+kKc8Q51G%fKYiMZb=H|wLi>G{EUS5ukjg^;|lU-wDV@pd*M@L6%Yb$!{>+5T4 zYuVjyH+w}z1#|@k1>}f7hiz?bfk1%p$HzwvF8GqHoL^sGN2Afs&d$ERKEwp`(Utc#jH;0FZM@B~2A!3Qq-`~$Yz`}*J zx3~B7^q^#JZtng4-Ke#}*DN0&9|s2qlarI9qocuKkXo~_;UX`H*ars(QLe%5_3Lzu zjI*<|+1Xht3l}>q(6NMTZ*R{i*YYG>1IDtSpPx52Hb4^!ScHfZE{8))pb=)_wYbSA zb@cgs-QC?>3z|WbMHWT^+a6zxQZ%hQV=KQAv&I*?L=1K{Vy1ZhPK7^yGpXy7s8 z%n7RE#Aj0Re8A^9(4RCR)r>?UtE;Q@5{pmt(@VTWQrOzsk_(9kpG?uiJEF-^NRuOV zWo3m{d3t)1=AnNe<)^8ssh5`*0gp#N;LI5_RZxijwY4=Pj4V(NIE$Zlc6JQ-m-vh< z29bdCQ~~Gt9~~WOg!A)rDnij&{JOBPAk84Vks%?8iHQz}1I;o#4mhO;pAkyFG{D{6odsNy zy}G)h2SCP?kw{1=6ncAmiv=z$ySuv-2xs)HudfTT02&tYl+WemWdTS0;o+e@IDxmf zw{$)fylCxg!1bZ<&dkg}fgYlS+GZzwadDA9FA~>ovGDQX-%b22Av#>!7Z(?lj5n?i zZSeVtnR*;<>O;1%Zu0N{j$Iob}~4gW3( zH+U`~`cHuyXCTVr3IsgDAva>d>tlZAxIh3nF7$V?4bmg_!JCpnCQd>2 z(G9XEUdEIdfDa)D+zOO2w%7Fkz|aEYPW_ED4!~avB9eV&t`JFhK>dQMx|*tnx_o}a z1@JRoS)h%sP_kB>@A$Zkq+KHXxD(kc5%%A>AT$+;saIRZ^e7%PEl*8z{Gl;}j!Rai zvPZ`PII|1xug4QA*?BB;uW6em-y*T_;Ja~NxRxkW zHMYhn6b`w8Q z*VKLEshWT-_Vy*YDnXPfX|n7^W+t!lu!}XNaVj*2Y2zZ|-CR{9$Mm$c(xad6`y*(#9?L*<<+vfTt?QHqSjGP?U!Fu`!m%_w z)I^Yy!}H);a~0`XPR@hk;^InmmbD=cH=&LZai-?*fSLGOpN0MT*oJLR&dfjbCF@xF5K~r%JwZuGiz+#PPc)xo3%+}t~ z!06~74z%TSiYe6<^VBGj(bUP(2LOtG&h|s;2xN+lq00I5$GR%^Ghy+Hu2d6D6qD+K zJLLr+tb}RG&ZmeZlED+jGfHd~@UeQAGC*!=;;DbF%S=Em80ebv@^3MW2$Yj8$TcY> zC`i(*ZL2~|wRO>`Hm*mp#$*>_CG`Dy(AZv^#6kELG%a;QP)IgkSbrAVDVsS5QpOR z_4VVz!ouzkT4%p{A#}Y(J7BUmkdpil6_u1Cd;DGAmz2m@2-VPi$190LPG)AEjkS<9 zihf#({J~Qu^i* zdb_H7#LoOjaY;#d(PO*xe6*|_nAQWQRom}G;{u}mkZ@ttDu{Q;n!dn2=nRq{02 zAu+%(iJJ2;K0f|);%Pm%ZhXVoa-+LQJ0nG&IP7PUlETtW(B|V{k8Y+A2ux?d4-h<) z!5@J;E{ihP0XWS}O|_&ihSzMQ+FU#zQtR@?B8$^jNc2H;#xPGDn%%Qpw2k5aw^7k@ zY&5(=;{)c-%Z*q_ArXZTKWP7OYwS=-l3$?HvphO3E)G+Y)X&_@gT+UJ+`!5I7AJ-l zlO{bf&km1{CVr@{mNsqU;D5exP9`l@$+67mV!)jFd~G1J>-;eUH&VLf9v+u$F5isk zoim1H%xgYHpdeuJShSp)j?S?s=A4B^MJ-I1OM@v=dSF^MuPgb?4 z@p+L*jl;vkL85|3I_8sFW#2WLD3^kq4HCauF3T!vG# zUYi=66;C+Z*iiuo01r`aPNQdOgUH0oDb|p@0+q_DDz|SH_-;4!&wdZ%bx!0x81PP0 zgx7%bqbK9Jb+#^6M@Q$ptJr0vBINfsB6)n2%rm9jiazvmx4D(OmHcC&l=# zH5|6!IK!6I|&1-E9B#Y0)Cu535|`7uOB{m(A7Ho&NkL; zF8KrvAKlM<)bM-oGF8H+v(VE>LJr}MA?gsGY>)@pX9I-9qAS_K0lh+{S$t-3zg+4Xo)NxYFiB(LNjiy=o=e3sD!TLY;=N zNhO&PL~lX`5BdOer4|$eC{-7VLjyoFlQl9~)i^yLFoHpWgWGDKdDCZ@E zz2h;-!7)lAm6D0=o>CSmC7|@9ExR=NIQAnVU%h?%Yb=mD7Q}$3G_qkU*1F5nKa?oKq@P1RSIdWG_Up5H+N-A{_O|0sDrK@Xr95(!jJz9UASFW-0*ig-D6tuo!*3sM zb=KF_9i9NbdEqWYhz(m)VK%06g0h+(b^};PtmfgUGxiQ7sU-Z7vtnCmKq=>~gr!-C)7ZPLgVX1C!L%Ll$2(1m! zgu`$X(?xW5s8b}L_1ziHXl3321-2Ub2RMam=%bfQPFyz zHOV`57-0pf?#-~Uy>=eya6hv5&|q9wSC{n8!J$6^?sxHuo7|Hcm4mmB0IQ*x7#Ycv zoJIvFx`(YxHF|65zVBbZUjAvY^_?~Da-LW4OpC`Fy2@k0=Y^}lg+e1ED0?jBsON2~ zhU4hJeIfc%Hnz}v|K`I`OI>>1E`-dm!yRU1ZNPk&Yv6}6*ytM^YpE+uNxCs~vn1!+ zam&&ZFf@iw#uEy#-%Fl#f{)T}C04>^EbO8fHAd(w*&~^xNk@n*M=Vm`{$9h94|XU? zFpGZGJDf_TzAP$YzU*g)=}wvuwSI4IHg0`7uIiIFXV(+H2EefgB7sy5TKw;DFrt3AD+?!(y=&sJB)gG{ssc{RZp zVzIW^lL#vgtDzKybEV6RU3zc3VK~q(6#NHR3nhfQIm-Ter>ds5 zc9E;iNe-0xbrNZXh=Lfax@QM|4ULXrAOpwBT+{Ei%&gb0aucY4oLdB#*2Z_Lf!ae| z{NnGj;qbsAxL9Y3noIpNK~UAw)@E7;-UkHtel@WA-g*u92VFz`5=&Qgm!dMWL%6|A zQ$Cs<@QGq|kHS<5Nii|v>f&Otq`0_Z|7e4y)oplpCXaxWzO%hOOQ7B1=ET}pGwBbP zcIHy)eT+)hh4w0vm$$e0ou%TU2!3Gi0@q|r-KWaxqY+1U((3AJnYfgcb+Es^O<)zt z*u=zSu9lfoZ)IXNO1?280?eTaL0STFABKuRUZ<338vX0vv=tbVHC{*%Df&E>I3 zoTFp)ne_DuHG%@txUGpsqcz&-ueTKpbMVsl%n~JcroeZ;j*oBKymlz%)%oWW!m7q^ z76oB$m%$`9RPGCwe=I1#lZ}mApJ|9<*g+4}4f;R__s2q93x3pt-A!iJ`L7jl$bD3I zd>U>52cjFY@@+G7az$&A7m2a6+qmm_^2fv6yVu~uX{9}3fdUap^0;oAx%Qtw>f;LFN;P=3L&}$bU%#+GIi=Qj23kyfb{>bO|P0B?ELfh z;?Tnl>XB+9fHIGQZV02yu{pnr42nBv$)}q(kF>TpK^|F@2Jj+I^sgH X7HYmf*X{!U>HrH9YjhdPBj*1AUAW=) literal 0 HcmV?d00001 diff --git a/captcha_images/balloons.png b/captcha_images/balloons.png new file mode 100644 index 0000000000000000000000000000000000000000..2c77a279c97d8d264fc49aea219c6809b6cc6c66 GIT binary patch literal 1496 zcmV;}1tUt)(&KhIb~v*uK3{Ep?lg!yY)p!TL`oRV>`_3HTTcigT3)KyJ^#I zYzNLm&iUn>&+q#?zhA+*vZb8P_vd@0Mzef;+F3x!jz%C;Cj)vruqHi;$k-u{Y*qb05g_l-7-z{Og^8V zUKhZ&ZQHV5ueVNBRVa!AS(b|cmSw>(3}~8$#l=Nvng+k$|9*RW`wLgEUacphB4nXZ zI5a;$KU5CDbp|4lNRQX+tqTMKumL1V0_VI4U|AMqS%xgj@OV5RqSxEn+CCW_9eoP` zOw)v>X?XPL(O@_nMlP3gg>VIk#bU2&ng*ZGhpMWoW%2`0&eXCjaLyqJ0t7*TuItLw z)YOFE?=Pz~k{OliqnmoO4K$^t6yDLen(A zqA1{;gNPu@vOToEnwpx|0K8iffTAc8fa28KJ90C|7z9DE^BbMFMG%DIyhxIib_3vU zMO9TT2!a64d9k^hmx9#S*Z)y0%z1G>JRT3i;c(Ecmn%SZb@jZni9K{~ZqI{dSx6)j zckGxA#W{y4iV#ItvE2c-Z{PlFX_Inp=eKOxl0SFuT%8lh2~zsHt_aZF+&pZWCTuUa zd;6}Nrinx%@rxu$=~7i}(49MXW-A6rrBdJS*|TSEH2}MTEXzhT8ofL_JDVz1$M&|i zwr?s1V2sVBQmHQsg+fsUH|gzMM@Prhz`(%s&Kl0wFc=JK`}gnvykYKCAA3l8ebh$od0hS655fNHjTYIluxe}e2nApe| zLv?kvmP{t+nwpv>Gnq`1h-~gXy(C#2Orhc)L8b608eG-oEzuQpTE=I-rl!j{gwWZIBmy{9X-v>&F@K) zB;|6s-?Q25zKMwm4Zu4WFJ651+O=!Z+1XiDQ4}K{kKaFW;>7rd4IAEAI?D0{t39!f zb^FH0$3N}w?;jzeej17KV8X7`-_wF5PY;4@6>$-mZ`t?({Z{PmH3Gj~rPkBa^Y+P; zC+`CI$?x|sgHTmfC=?2{Ybv-_1(v?EFPTiv$6~R|&iIidM}FA4b?eqH--2?su&{6+zzBfLr8y#csjsi^ y9%F2-l3Hteh$=B6dK17LW9%zOY;6GlrTqmklKP0#NFw9_0000EMWe^=AD1zxGYD z?Cfld#qvFFd3kyGSy@@y^F-H7rV^8rlarsHZ?#%WN=h6KM|pWUV{vhDVPPR^=q94$ zzfJPV(`K^)tf{GKY;5#+JYKKY?RL9dE~nF3R#t`(>IhL3mYbU^b(!RsmX=mkRRQei z=;-U~8yFZE92^V;0=>Pxt*xyM4GpLuy1Kf`N(v;If`S6FGQ%$_DgsV8w2_gK$;ruJ zFc=DjrlzJQCMFQ-?(X*ad{lIKd5IQQS65eAS&0f2rIa8;deYO=Gdem7c4lVgN8E5C zkq9b?QdDPW=hoI1BSx9zQ(aw6OH)d8b#);@o}{hdN@99?S|n)N=H@2j(9jTzQKTaJ zh8dT@VkAgXl1D-}_~?$0j}H$I!)F;jeZ!&TrluxZXUq?W!*qUZYz#iMWD`EXv$Hed zQxQgD6wZt>e`#q+H6N{H1I5jg@x18Q(CR_nP=ww{M-y*Bn}P^@$vEf{k>cW@L|G7lm$3XPfuUsOBIB0 zW}xlv?&4oxUvpylAE5#tvZy>iKbwKGMv_-!ZEY==&;0y6E#jUO$ko*qlZeupjg5`Z z&rb<7BcaIR5c2x^dUSLov1*dbv!$hlyZYnfL*P70gHIHD%Ec>W87nF(mY0|5*!K1| zXI?!@k53eDM&3{f99nd9bEA^yX?lDDFD@>4ukoH$5;(ku78e)wnY8%?aya4ZUk)50 zuAsld2Z98rvtxczK?ep27&!m)4i<2Fa=kKh~zrVlJ zw9L#*nM?_1fgY~=aO`&b+uNHy$+?oxo>xCj3XSi(g6GK G9{mE8zGqwj literal 0 HcmV?d00001 diff --git a/captcha_images/balloons.ppm.sum b/captcha_images/balloons.ppm.sum new file mode 100644 index 0000000..92b27c5 --- /dev/null +++ b/captcha_images/balloons.ppm.sum @@ -0,0 +1 @@ +08761348254993f5de1b5f440d44a04a112ae5deb650f85de566cb8dd7e5d5414bb5d0a1c1abf0bef2202dfe76185b2a4fc1ba3ce4e468e8abedc3ba7b9c9cda \ No newline at end of file diff --git a/captcha_images/balloons@2x.png b/captcha_images/balloons@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f93017c5ebbedba8cdab2442cca46d0c199a3e28 GIT binary patch literal 3203 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 literal 0 HcmV?d00001 diff --git a/captcha_images/camera.png b/captcha_images/camera.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2d29290d09e2ba7df83b5c352863a7ccfddd4d GIT binary patch literal 1417 zcmV;41$O$0P)?d((sahS}K-h!oO; zAAHQrzPIoDec$){ezQwF&%;(4-O}jq0Q?^SFaRKgR4tgMX=$2vUemNLLI?;U@H`Jf zhz%*_CEK=td)uHv;*B@&6=r%#`rVT^&X*W09&a9tOXNTk`e?eyCM2paJ`4}=hv z@fW(TA2SRCmSw#UV6R~qV2ptf0wDxA=K$b5fByUd=Nzu<;!Q@`^E`N-2Px&U5aPUT z+shRIVzJn)VHiE#-Q9)7#l_vGX~Hy37={5|*8u=R2$V`C6pKYTj)PLE1R(^Zl$!<& zKfA6AA;dpxYin_!+ycw8S{P&fH*VaRee&c<{=$U|yQ9%4Ow)v}>!9>CS9k8*Y4`W{ z7pA7BT3)<(!BlV+NL{6rNG6jT9UUDTK@dwzOAWbPF6KB+v-*qyKqiyvdGzQJ4jw!> ze)HzdkE7A(XfztF$X-f`;o;#2M~@!;esy*A;>^sI2rupobQetv)vicSpljnJ7IOotb4U|&9 zJ;Co$N|Dd!PxbWloGO({@I22?3V?sD0H6X2A$(#9A^ft238jeF*w|R??(Sai?Cjil z`SK;3o13#{XJ?z#I;9j+N)SRS?l%RX4p&Yog_;y~uRt9*aG)?TF>xQjAGdGcE_8Hs zcq1btiRIO@+YMfig=1QLGu9wtriIN%sEF(OUp)kd;2%BSZqAl zYjrs1{DZr9?;grzG8e-l6-?F#5avM8!vKU3ux1;OpD}b)@(w(-pwjv?qcg}g#Fbn|I#I69))z!5!Jw1(hJbo+~tX2gS>B_1$ z@bKZo`9vZyO(~r#@A;Mx(g{>fM))jcq?}dL;Nalng@pxc`}XZiQp&xIG3dHpq1!48 zMJ&#FRYr=Gnx;Y5b%cLWIgW!JJ9gOj?%iwjD?kV-tgNg|WwY5&*VfivZQHhOSuwiS zODas#;JYFyyFnRN09@C_$&)8%D=JVXN&|o)01Z`j`tR*W0JaZcD{agF7rXu@i_0kbH4MP@80`{yat!E)a5idJs!i)H~jAo zyn79U!H}Mwo|&0xGMTcnvUp}>WTd5~z0Uf}o8GgO)VjL5{QUgF!opGw#l^*Dv$?#y zJSFYVuPOYZ8MQFK*HBwq>vTF@E?0eh{Ra(n%*)Hm&dw(7cVJisXI`Vxs9K;TCnpDy zeSLkEm6b3zHa51mw|~*l+1c6L+)OW;R8>_mh|Hy)B_$=yC@3l_LIxspb8{6x9a)LT z<5yQ#@U*nF_u3$u}(}Tt;Wa4Q}&vn*h4)(6OkkQu)&G^ z{{H^n-d?<7A{L3I9bW-4D-0#OgJw2}vnRe0>-j}L{jE8G)E}{r!TUpPTTbhp*%yLm)hIyrD`alP4!9Q&UrularxPh!v=) z5@8h5npsl#3knM0Us+jElaeVAAK<6NYPC*GOsK&LY&IL~xFP(A!CqoARoeOaIs9y~ z@Uv^=kSQR>5K17SiXRss0Q|0b(gIbo>4?GJ6n+|U;Nce&_zEGk0`hT;MM$86oS%t+ zzZU#fR(4GCq2K4--0&>{>gz~CI`Dy literal 0 HcmV?d00001 diff --git a/captcha_images/camera.ppm.sum b/captcha_images/camera.ppm.sum new file mode 100644 index 0000000..da6f6b6 --- /dev/null +++ b/captcha_images/camera.ppm.sum @@ -0,0 +1 @@ +d2fc721f7e1e6a3ff54168e62a391715342e731661ee03adec0a189ba2f5da82c16db7156d9d12cc1269cc5b7d7a221ce088087758698b6b43257cab3811ff6e \ No newline at end of file diff --git a/captcha_images/camera@2x.png b/captcha_images/camera@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c00175fbec9d8bb7f235183673c9dd3c18e9f48c GIT binary patch literal 2982 zcmV;X3t9AuP)Cm;ni zQE~dqDMGkXTaiEDqDU1|NSw+NLWzK?w53(5q#-5bM@uRtEv623EZR8Ovd@k=-|g<~ z_DAl$%$@f>13FdskydxNJ2U&f&%E<~%p7xF7hh*6Gz~fEh&*~;tn#kwLf3V>si|p^6!ZdFqbUKwwyR| zVjYcBtn!ZIz;PUG-MV#r@7}$?FQngFZ@tz1`s=T^kyV(cxvWhZ0o~o*?H_*lAZ*+9@zoa|>Y}&Nxq-mP4 zZ5xi`yly8xiA ztu18R_HUCZaZ$?4=5JXRu3fuUS1Bj^#AYw03c2L>fBNaC8`iE}+gT_9vc-8h&1F#_mv@#G$o3q#vA#Ly&~+V(qO4IA z1wNk-ob#-aqYyC0AcQbD=O0BPk$)r-i6~iAno?52Cd=)GWdz7^)JwU1f-}Za0w{`- za-N)XXquKa0%RMX2vZaVaw5hUyF=47&sinHlC(9|l z9L^{%3JPJI^JVR2^Cw?ZU0of2{PD*pwr}5l8Ne6-xms)l(0TFV#cv!xe!Tho`SXpm zjA-_=5umDS%4(86DL(vBE#@Kt=#&KPD-TL+G zx1T+GcE`bk2iKdX$#W%Ra=t>dpA7{&!OYN93S{MtrKP0{z{KR_ zQuKQkld;7uu{{HV?yLK&*tqLW`1Y}#fo?*}{y_KI86T)Pr9mj!f+t{&V z$5?M~?|xbNNF>r1i9{|$A`w>zaY_g=9*IPvkw|2C_3G8PB^A0*Q&aQA^Upv3J4I3K zZ2n4?TMo@$P%=BnpP2&{o55wqeao`Y($W%r`st?+kjY0Pkx)1sz5w8;q9}K0ng+U5 zRjp=>?G!?cH#If&B}rIpZEfv;^2sMJQIb=PT$xzr19ExzQkMWZJkvDs*kh0VnK5=k zdYrcRz&VGaC~2f6H&Bj-!{O-Ft5@G)j7_<&JMiwi?;f9?o(@o-d~$oC;EJTwnI}bT z+s3L@s}_5DdVWS@hQr~0RaHAEX_2pBFqryYSy@RTZ6q8HhkzS-{{8pg|91+7`K*9+ zD2RY;Q6O_o6{FNP#8$qMQWeGVx4DSjK-QC@Pu#0rlzL(LQ3pxBzT5FFH@1tzmzaYL=fJ5^G%^B$}+{hDnXfumX?;Z?c}AUrFbz_ zWhRPBgy^%FC?G2pjYflXfAi+eA2l>I#N+X}k?-9E#u%ELn=i}v#>U1Xfk2?7=mccR z1H6>Dl@Lg{a^=b<`py_z+^}K8WWGcNxS2s3hG9SS&_k*Hz~<)W)V@HjF|s*8Aj=ZS zrA)DAFON4fGqY75ufMio_o@6-^~Y zfl@%56S}U$w(Upi>+6Sw5dE{Wv(cnkzvQ~^p+_Hmv=hKO0E+;|gwwHIOj*b zPN;IBAPdN*WTERR7vzK{>DYEM#=cWiQ}d&_xw+H8jU@r#Z1PG&ZEbCcF*e9Ke@@r+ z)ET8$0_CNAHlz_yS66qPzBe>9gg*cL^RzSdTOk0ru~$f2S+46Mkw|p7u6wGsw)QWs z>kcu-PS4KHroFSawzd;MpQ@_6R8_5_I)VOkK$T-IM|90fa5irJJ7{;Oc z`ucs-)6-EeFIx&^E1>L7Q50B~wM7WA#c>?e*4ADDFaaRM7`ubo(ej~<&dd_H5EAkd zz!)3by?gi6$&)7=g%D3^n)bbLIQ+`O!a~|2E0q8uf%fw#GEhaATpDX!*Ih$x&A2@Cg~&t7`+Poo*REafWIkW^4-waO8)s%_jvY8~;M*U3@IhTX9_Mm3 zCWoC{ft>8PuDdJ=l6Q6GqKSSN`VPl&(An8J^X#+F{_F0$@7|3YTkqKkNOlYW*au)U zfXZ9ew*2@jfMH}P4`dMVb;Q^Hzrrg7lv{vuV}*cn3s7#X5KwLb%8eBQ$}K>-u|hz( c1t>TE2RPgRP3sqG{r~^~07*qoM6N<$f`=`j@Bjb+ literal 0 HcmV?d00001 diff --git a/captcha_images/car.png b/captcha_images/car.png new file mode 100644 index 0000000000000000000000000000000000000000..6d917c637f8fa5cbb74fc3669d29301fe86b3bec GIT binary patch literal 1163 zcmV;61a$j}P)jfgH_E6(ERK{J7(<|im>A9beY>bPlQ=5r%1th05#Ift^Euyh z-r*6>IqvgF_nN&4&;)1#0FVKI5Yn)~G|f&*>0?Uir#I<1=LmuTzVEM;%jKVLic!0J z2|%aEk^4Ge++p69`JT{w;tD;A4qcLB%^Wd;z7#Rd$+c&4gq zSkp8piULY$9R%kbzVE|zT~sO+NRqTrEEd1HD{ey$#A2}l(=?wMh7mSR6S}TLQ4~m$ z^qvd8@58bzTwY$n^Sr;a+3W|`-vYLX~Hy3XqpDmg6mq}_u)7W zE-o%mDwR+y76(sHPhZ>yP;G&(>rqPSV@Z-GMP-yy=(^rjo7^yrs{J>C3r7S<5Cog; z?d>O)Wx?~jGvD{W15h1K!Z}Ac9F8)^-cU-b!$m2DEX!bw!7vOMh5=2}z!rhp-TA^q~C=~J>$B}~|_|LXG zs^^?ncR@0lJUco%iV7G}SXWn9d)*8ehQSzPP*oMGs#g2h(a}+!n3#B*%jKvn%Su~Y zo3*~a-dQLVG(t!nh)B#i$K>SX>(-hM%I668SIX^#_)9G}N*b$LPq*4bkJUsm8 z{{H@im})`@G)?oSr>Fl|Sy>qqmno$esZ{Dj1*~{{H@dvf1pbOeXV4ykYTp zJUcTp^E#8sbV`y0*L5ACkpN(EaWS*Jy! zg+f;CPzjCWI2alldb+o__o!Bv&*wiXm&?Dqu8U|iYNb-C=XDMcLSAsrznq$ydIF&J z>e;Vzb90~P^ZB|e8DpW%&CQ?1y+WZN9~>Nn#Jk z1K|5QfGddS0IFmFu)4ZBl+9+7BABYG-q_gK9wB78CU|IMWTdA?b}~Lb{&s6?tAh{% z&N-6FSkb>jfq0F((KKU{lO4{)F7-oJ>N d08M}_5Ny+;Rco8IV9+WMa+Qky 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 Xbvpz)DPRhY00000NkvXXu0mjff#8YF literal 0 HcmV?d00001 diff --git a/captcha_images/chair.png b/captcha_images/chair.png new file mode 100644 index 0000000000000000000000000000000000000000..96b040a1c753315e528b710f2fdc4da622a6b681 GIT binary patch literal 936 zcmV;Z16TZsP)$lLr)ion45Jl*loC?PUjV{|0QkNS$8lg;78ql- z5PzN=S(f4c{{Bhbd@}*+P;kqtNvw3)yWk`|)mSxq(%nZOeM-T+yoKFQ1Lclal z_a|5(>;GY3JiUX^wt5F$ZngbegVF14GztsS399T#SeBXcOIL;f-^A3a%VR;W| z0%*HhY8Pk_1P4(Red3&d^E~f0=RDNymoYZxLZ0V((?OPH2!bFvJUslO@6GH$7>0ez zvNmnohHcw$UAMS&_tOC7_hA?&-EQ~$-rnA40O!44?}HEmQp(u?T-V)n90#uJLPMCQ zS@eFr&6ZOkrNqU>#d`qfMD%fIXD1?}`5bT@2cGA_aU7hTo%Ml-Lkbb$>gp=e+wk`G z_U-BE>6W&hh+dXld~tJg0|2u-pr4pAhTYxWSLN?cPEM}%esFwzye)*d7D8Y&8ja1d zv9a;=^768%mpWAzA!Do2xB!v~&UL&yzi&?VeGYf;xcx{e8dF=?tZmSYBQp z0`>jA+wFdh<9H~9Kpe-zIsmGoTU%RGhG9TTiNRn{oH~_K0e~KW=KuyobhN&{uJSxb znx>7h0FJ5vYEw{tEog~`lM`u|nqucpL7RU~LWtI}Rhr3xDwW&uJgRhHWo2b3rNq+G zQZj9VIF4J#R;jWG0ldRQ@%$*a*D5Kcrp7k8QwQ+hRDWRqPx=i%t~N|E55DRE0000< KMNUMnLSTY?A)q7x literal 0 HcmV?d00001 diff --git a/captcha_images/chair.ppm b/captcha_images/chair.ppm new file mode 100644 index 0000000000000000000000000000000000000000..18fd7f6e28141be964d0f1c6ca1474256b76c1ed GIT binary patch literal 3085 zcmds&*@_xL6o%*4(cmbGMnv4VxQx5F#eJKgqZ1OJLIuIs5Pb_Te21tHmVBh4kWTls zG$a=}7fp4Y|9o}obe-zg;$trB&1E06g~H>{e`^m)W-u6xMx)7O`k-RC5Fpb`Rtf)L zu~_VOyVL3XsA9MfSglrle7D;j2n3?hXgnVO^oKEt3xUh!(#Iz}m&;YF)z2zcsZ_Gr zEHZukOeO<(I2?XaF6Ywo6QD16bjLm+zfm^PB?XtjI}VZi^bw}I^nI=YWMW7*=&Z) zP384^$(#_nhP^|8#u6938RsJ>{4v9%iFa}QbKneb8wL(A$v6_4iB+1-{OQ)1@urS#gsUj2n<#LIh zC?+-e)SqN{itz1rOY<_xfoGD9u-2`BkIvB|d3sQj&uSn-ON1QZ1_l;SJb0tB7{C>xNunm`dKo8%fKHx8i; ZD_-9b$WZUU3ZQHtqGa>D3fKQM_yvomG}izC literal 0 HcmV?d00001 diff --git a/captcha_images/chair.ppm.sum b/captcha_images/chair.ppm.sum new file mode 100644 index 0000000..5cb14eb --- /dev/null +++ b/captcha_images/chair.ppm.sum @@ -0,0 +1 @@ +2f7fd3e2119875ff97a155bdac5364a7bd896ce0376931b91bea0e4ea3be6288f8fee5df6ace851aeffa10204873bb5980a1961c7708dc7fdf1b99975b51b98c \ No newline at end of file diff --git a/captcha_images/chair@2x.png b/captcha_images/chair@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c0b8dc6b8b46bef04a9e786e4e4d29f85d172489 GIT binary patch literal 1585 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 BO!oi) literal 0 HcmV?d00001 diff --git a/captcha_images/clip.ppm b/captcha_images/clip.ppm new file mode 100644 index 0000000000000000000000000000000000000000..ed371d2be1d6023b9da2a851a7c10fb1318cf61e GIT binary patch literal 3085 zcmds&xi7R)6vn?=?4NDyv2TOSFhp#T5CoZqF^LEx5gJP@714@_MngkvokF5g&=Rx~ zYK4UO8@}%sCr)ne`!Z^`m^t^p&v~A6&pG$rU?9ft%lG?YeD(D)|9;E(^EqN;V-ph- zlarJGevG7~q`0`a&yUgnzsiSr!km_tmYtoQ|2cAUaxyY9kc&?Jf%t|WlFZD^!otFe zii$`ia(H;SzP?^pS65V2gd)57iNsg@kP~ugX=zPO&C$`3!rtHC`}_OL%F1$cb5l}M zqDrWvW%zu);^Jb+kB^V}q&(P5 z~_v zP+!(tTU*c0&M-(L<)+gtm`s(>Y0xuB5H0Se@4~_Y>jdA~*}1#Bi;ZGdR#rknf(iSc zpRX@3FSH8HNs?1jQ`MJ9W@cvKZ)s`i>FE&(+L&f`N;t!o71%IdUtdWzNv0b)Xr{#C z;$m}ib6Z;*5}TWwl&PSgz~k}6$Hyy7NL(cZqY@=0B}i~`)t668OG`+w3u2g>nyRd< zWT#+E30HC!m1ksRmu%n}6czBpv z6QQdF8yOrNoS&ZuV;*f+ax?yLI81K2cG$wi#DvrW2~`11M{!aZTU%SS1RYB|$+?Tl z|NQ(+VDQs0WDz&k(0Uq$f!vhDO z7}(}d_{ED|hybO8mTD2ACY5?2c->0Ue9TKh`3&y)fW6qrx?gP4#bYZ%snWc4c#2#PR9ri6>xoc9#2Lb#?XP;zHQKTeLcLrTS`7 Mz0^>ouKW(;Kle(0QUCw| literal 0 HcmV?d00001 diff --git a/captcha_images/clip.ppm.sum b/captcha_images/clip.ppm.sum new file mode 100644 index 0000000..de28047 --- /dev/null +++ b/captcha_images/clip.ppm.sum @@ -0,0 +1 @@ +5d4d262cd0b0874711abd478dcd6524ea99844fd3698fb8c6a054ed429d831c717d93ca8c8b18de679f54674dd54bb115ef2e5e85d364378820beaeae25a6802 \ No newline at end of file diff --git a/captcha_images/clip@2x.png b/captcha_images/clip@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7ecba5b10779270e0765a2408434bfa52b713922 GIT binary patch literal 3923 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 =pBigW5(uV=fBUnuBt#l+tHC5G;|T{Lk}0F>Q( ze0~dZ8c=a?APAxH4nKJ)#Kiy~8xI=L)wH=86Bv?_E+W2CyyY9)$1r<84QNTWvQKkn zqcQiz_^*!w2l9|#xE0(~NM#)rC5A>YZ@n{3DNdD@1OM2_`Swg<(8tjIkORJL9gT{{ zc%qC_z2a&Ej^3}1{`%GQ$kMX@SwSTr*m#A;IEZHQ^z<|&aQk;FoB6euv!g<>Y_UoS z4d3_9G*=XENw~r@&eQpF>yK9v7-EwxUzbYk{p#@YEM!j@#KfCH* zpDxk>1#YpqXUqAC!BfM-sf4nUlw2&Wp1f+QjKRxn(U?&xo{O{}QON~McdyRP`SDFp zPb)pcCzQ%F3A#*r3kld&G<=Mq`W6FstF-`uQsKQZ5qAParV5!TC~}sfs+L&!ga6Du zKH98uin9u=zt!R<&2>bkK2<>()ql#5Yg*fscxr#VzP_G5d$y!tGF1A~w5e^ysSU$` z3~r&Y71J`8^hv?#yaVdwFrTCutEdV98wvSMAFc|-)avB#ZeeHcx zo~R`lkhdb+=WfVzDPPWr+V*dHadayE!J!FBqsA{jSd7E1{#RZeGMfGFKio;gKo1bN z%hc7=gB$h=dQTwHU|~m7FA3Neij9R}bY5EMPC43~tSw(|XH^>>8~+Bn?x^YS!{Y`t ztVq0vl+Wf=SrmWp*V4wuGk7SmH(erNZ+Rg90syAemgMYgE3jVK19GPl&YbZKFc>Vb z&tpmvmHrWj^ZK(rCy^rZ;M@ZEH#L%KxVomsTvk>V21Wp7CGc0Cg^TXLBY%#MkDq|( zY#1rGo;7;>_-yv;K=>pzu(7d0seIZIvvn`uNZ_sZx5|?KgoFf-J3FV3385t=CAW}9 z&&RtPokz>mN*>o$dfF`aW@b?Z9;}a7nPg^WRu@~8_kc8hUH}cY8ohu@FKugU69r(G zFW)ON_`uObKAaQ;$@!f}e)0OY`sI6K2U{~ury;@Td$|NV>n|%?TeBlWLsg_L7IiQi zyaprXN;1N>HT;5A6brBA+Z)t+!uM>a{&6QT)Vd?te-6wI+FRRq-lsg!M*PxZNaTzwsT+rNq} zw(3te8~CM}?ri(2M1+is@-mkcF-Mv2l5eLDDu`hvO?2-Cl^^**vBM9<$o8JM<=Pt+ x7Gz9o|GbNA-nY&shXBpX7Xkb+0B zAJxT_Qs|}_UG;tka0l=)01yB$#yV1V9H(Fy#vJE-jxknXjFpvAZS2ULp)bL{aoM48w=M@B5D94A<-R{r?Q$x^7trv0o?@ekY>O z^Z7h-xm*gs7(ID*zAPi9l~}@38B-e-e>n+cr$ogb)Hk2w0W{%d#MZ z01>rKnUoT793zS%luD()Pft(1v$Hc7Ko$T&5TIVKKRP-(T5E|we}DgvN-5|1N;&6g z$hEO{qVvi*N3~l0L@5Q^w$pD!l+MrR^WOt#1z?PQY1?)hY9fMR7+{R0E7mRdApo6* z?9lIYt<-9@(RMXpTb2dWG+T-+>)@udLpvS)%oqa^rS@9@N~O}UcB&n}&(KW(?{l8L z*Xc|F4i676#>dA~#Ux2O-kv)ZZC5FUp`oEbzc;R^s$*kgzV7M&bHs6sN~Q8w3jhEt zEG)c?<2Y5+{d-$O7vSLFV6eEj`13me^YimR%*@PGZyO@JKM+y8w6yeMWMt$Q?YCts zR!TitUS58@zP^6nFpP9}YnRXLHQQ?KbfuIim&?a1D=UBW_4Pdlu+tXcYQlHBySodk ztE>0-_V#+Nx8msNXfQcB>Cev29%mhGY-|)ZH#ZAgTU&)})lW}PA5Tq9`4bZp&jGA3 z#)2FFhDxac0AB(4tW5xR0K8$0y}mZ53_y>pyuQ-k$>_EMbW^&1CcFc<1L!)yKY^=} U0<4OobN~PV07*qoM6N<$g0t__A^-pY literal 0 HcmV?d00001 diff --git a/captcha_images/cloud.ppm b/captcha_images/cloud.ppm new file mode 100644 index 0000000000000000000000000000000000000000..a309c93cbb7dcd9d81f62dc09ed2069801a72bbb GIT binary patch literal 3085 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 b%z^gg3E)=qVMZ`Zu=Kq3-<>-B^&2x>O7) zLq7nFNbSTxhp5fa$mbB>bxGU=V=B@hDm9OE%h`9&@80*$@0q;!cuMh;y3YaT000yK zh^XjTTwGjY=7flLhW+ONy3?GN(HQSNoO9=Cns&$g3xILeYPAnUw8zX~=7~wBk#i2t zIRN;ars<2@&r1M75bPOa&}y~1MD$kxLxI?mPvv{yaP9CN}yX0S1G?%mJ!YN%a@S`tN35{BVf6h)ty88?I zodLrLG#ZU}{eJ(ssvfE;m>EO_RfVdSj%MX*#=dsU3{{1QKtzz|IYi`8M6j{3u>#;X zKpe*_S65ds#=sa;gv@&nW6VTFY&M&Ae}DhmILOHO`1m+Z(^QEFM1)aE-`w2nwpy)j zyWMVHUS8JM*Vk7@pb7vw%dO$8o2K+HjJWr>Cc{MWnK5jFe^B4{PoB+i4&o)a&&%5s9kC7-JgC z%gfJpcX!_a_*ei8FCIJhI?ql&0emUI=YK|Xfd3xg7t?JgK-@8;H~;_u07*qoM6N<$ Ef=z{1E&u=k literal 0 HcmV?d00001 diff --git a/captcha_images/computer.ppm b/captcha_images/computer.ppm new file mode 100644 index 0000000000000000000000000000000000000000..ca2a058fe3c33d03acbf983b374aac5d27801a07 GIT binary patch literal 3085 zcmeH{%WA?<5Qg0vwNR~My;tk~1__FY)XUx~g0JD)ZHuo{S0X6(0eq_VBZnLg5<_A) zUHC6##{B<(CUY_~?`npgGjvVwbhMv4?j87B2YePZO$!Etp-||-0dkxS!`xlGF zQmN$CR`Su}AX4?>B;nPBOuYuG+}5Almmh#vbNH&<*8j!C4bDQM%5D7_E^xEID!27# z0Kv`vs{EQiHLxWjkqG;WW#tAi;fvjp&1OY;sy}Np91gS3Xdo+sGKkq#kL~~yJ}R_a zF$dv>r#vE+O0oUY=`>$21I}j#jg)6dVHkoyNrDe;JRWzuU0z|eT1kI`!{Kl`oxZPNzu#}S+b;#A$K&yW YE@->m?tDJ0=G?fN-s5`*{!a&f0R%#nQvd(} literal 0 HcmV?d00001 diff --git a/captcha_images/computer.ppm.sum b/captcha_images/computer.ppm.sum new file mode 100644 index 0000000..c5f306d --- /dev/null +++ b/captcha_images/computer.ppm.sum @@ -0,0 +1 @@ +a4a71334299297e9d2fe7191226a89fd1a94ef1ad159acf7cfda0df6d994c2e1d181cab8ed489697e22a88946f94651fc5f81d0f404e72d85cfed0ec9c3f42bd \ No newline at end of file diff --git a/captcha_images/computer@2x.png b/captcha_images/computer@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..07dd0fcfe756357655eaec3a6acfbc388deca14d GIT binary patch literal 1394 zcmV-&1&#WNP) z7=vLLk2+R;=oBFc0)$}*A;gvEdGqyp{qN}YR@~T=-$pPoG4Yk_x<%WzVVWiwV~9FH zN{KKGJ1~XpkWwND0{FfU&-04I!^7Xy>-E(nZDR$nEb9ZyvS8abEX%s*040EK`vbQj z;QKxt#{qzklD3N#KnO8XEEZ8H6fiwKeZ9WE{%5O6zilCu6A2;M+uM72etteg2*K6W z)kxAlk~jdCWq~mU&iVDy($c4Iz`1MK-{1e9F*anHCM?TJ+%8rC!!SSyfs_)i>js37 zlQ&}8C9JKj1yV{-N*^Wac8J{vD4X3SnCuL@4A1i*gaFWfNq>k~2LS&kJ2gNrLI{y* zHHvkBn!H+Pdlg|AA_#)it5PBX!Z7TK^}ZdV9McGpDg=5RSvbZDpcL(O5u*IkI5m|6 z`bB^=NR$Jj|9cr(xTZ>iy(~iX#jK+OLAq=7%J01dAto62$HB=MlfPO*8 zb3j&Wy=`O-)!2PN)B*h@{(w>n z&N(>es8lN8oTu*No&dIO9}z;p7^|74d6LiPK`8|x1e8)R#-JuIgwP%ycU-|a2V)GB zQmB*Rsi~=>o0}Un8Vv{`kk9AgIL_-weW*zc4Gk?Y#(p&n1B@}K^L14cGYq47Fq-uM zvKvqjMwRTM6(Y~`ngR$RP^;A*9Tztpu)Mtd-qF!fQ%zL|R0UCW)~;07{qz+GAs~d@ z<0qv=E|+WO2;cY7Xf&Q|-xOeUbkw#i3%OhloO2k4(Ns5Df=W|#h`J<=W7MP+C{4Cs zyDO15ACltVu6%l}gv;a`{C|0SF=3-Q7Le-rk;nSO(7mHCZ79eBXxp<8rzD_3`oXNV`Fk3J|R*slPZxlNzNI?Hmw227lOp z^#0Y=)xYNE=Dxt~&w1{T_wXk&QpyDY3#n$?`}hIC|(uPkS}@a%skHxNKK0o@n~ zpqqeh3g=q8{W0|9gs(2aorx(VpUe>hPK^W2wW7ytkO07*qoM6N<$f|g}x AyZ`_I literal 0 HcmV?d00001 diff --git a/captcha_images/envelope.png b/captcha_images/envelope.png new file mode 100644 index 0000000000000000000000000000000000000000..8c5d59ccd0f174411058af5422338ece87f786ba GIT binary patch literal 1199 zcmV;g1W@~lP)^k69DWD)V=&4b5y z@1jR5$wlf#QN)8pMFPcxdRT%Hv5N5zF3pA}TG5A?ym|9_@ug#G-KAK(_=AD)9+~gw z_nq&|8)6s+9%VS+uBFaYSf4#pTb=f7vO+0TI+2LPa|s_Gdb1XimRvMfKC zxCp@*L!nRr=e*i{E(1VqZLKRD4j-jbsoH!#Z?{-1AcQ=q1BPLsSS+HlvhupUz5QKX zU7ahF$sEf7peRb~+}zxY-rnAgy}iAcCnqPLN|N*-5T-ci91RT(YFk^|el!|wQ52;W zz_A1XZnwKik|fN|&id?j`+J|ymz5+5lu}5N1X-5<(-7zI`Fz=$nwt01)6*@IB*E== zR{=NM(Cm~Dg3Zm%uQHj;Stt}rbIwcjW+xvz#Qz3^!Q)IObCygdUx<1o0MRbaISvjE zUd_+X%L4-g+ma+P#u#*62j~2whM9IsDeLL!*-a!8^ziWTl?f$Q3BV*WA*K&d$z1ZuUOz(vrlaiobPTM|XGkuS-iy zKgD7(zsKX*QWPcoZ_8lguJYX_%Rr@#pjTOkZE$Zn+a?=izWTozLep(P-4KX&MTJLVY9>33PRJ9hsn_ z_$>#_F3j%icKh30F87^yjHXhl*2&39ZE$dKn^MX&O@pRspp>%y{{G#?#l=6jwzgWu zu&Jv0!`a!{TZ_fQ#QDwlvIt-fkH>SqyuAD^07%l`8-;U@TrT%|baXTwi^WzGiNqJG zs>*>t;N8&BQ2piQr6Pu!5CYCQR##WQ_j(e#-%IZ3=~gRZJ`)%<%e1+0}hAdQe1)$-IPVJ@@Myz=(5A%xCCzQ0|1)5Uhi)J zWQ)aua_hxIO57=8m4CcM*UaLaqgX7$X0u(dt*yNVkT!2b>5Ywz^_7*C2J<8Gp-#lf z?{eg>;+%sqhEOQ94Io`|;D)vdz&H2K@Nl&RAX@@>%zE@&@e{xkz+aPQILzcR@G}4a N002ovPDHLkV1o3KHR}KX literal 0 HcmV?d00001 diff --git a/captcha_images/envelope.ppm b/captcha_images/envelope.ppm new file mode 100644 index 0000000000000000000000000000000000000000..10645e7705c695c474847d0fa26ec57695a7e8d2 GIT binary patch literal 3085 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 FV1hD%Dcb-5 literal 0 HcmV?d00001 diff --git a/captcha_images/eye.png b/captcha_images/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..1b8ed6b371c1a3643b717abf8798dd7b7860db5b GIT binary patch literal 1315 zcmV+;1>E|HP)V^=q=OD*%juS%it)4k?UyN{$d?*VXK z_mHM()0EP)nM@`}=~nTQBtaa<&*C_~6-CkaK@hwXX3qfGY&NfH+N`eYqnf5c*L7qv z8Bj{o7%3&!IF19`wqaQo7-MPY`Fx(A zI(2Fd0Pfwp*R{UBZZgK8Y1($stdw#Yz~FX>9To6A@3?K-%dYFfbzL})lP08;LQ08~ zCr_?TPEP&?;BGU|$mPqIKdMwJU4)Qy9QAq~wOS295MXn2^Gy&0A8c%FJl$1+d_I53 zb=^CbWu=`Ph5^PHRN_LR5KK-^&YU@OW-X56X+j7nrPGUxix1D8J2&F8eL%OaXvn=aTTU*3AZvmO2Y{r&Cj?F#@l zQUz|@xUq2i_U+#bg#uT>ty@f8D=RBU0O0)j^HtCDxaWEN!i5V}0H{{0C!#1q6h%mq zB%QMwNwHWA=I7^sotv9mn3I`CYXGHGd1D}s_7rIwn1E|=q1u3V`!i$C76*1Nt1Qp)46UcLHu zVq)UN^73-0+7(HXY%!SvQz|4$f{~Gt7Z)#HT0Q>>q$DQW=zW}xc9|qtyFV*4N`-;93V87PB|CAm8902S) Zz~5-$Y0=?GQCt83002ovPDHLkV1gNJV)Fn1 literal 0 HcmV?d00001 diff --git a/captcha_images/eye.ppm b/captcha_images/eye.ppm new file mode 100644 index 0000000000000000000000000000000000000000..2791cef36e9fc0a41caa495725cfe4e95278b283 GIT binary patch literal 3085 zcmeH{yH4U!5XNoMMNkr5?i&Shf#rTt1n;0LkZef-BowxU9vV6l9$+hMcmUpjngpS= zF!2R6KEv)WPWI#qiwU+M(uwq1@QmFquqSTU(zs#+9JaXaq2?b}_$RuixCiZwNzP`@oau*jDv`ZusbYVfO z)yg8;7Vq*yZnN1KI}(X7YBrmNHJ{HH3WajH{PWFlh}_)V(1_No6Ap(_jH$FO{^l2Q z9g_fU)*=!~Y1|(Y}3+0^Db~+sfKx(oW4%cqCE9wD5 zD4v7XJQ;7nx3RvyuG8sMi)yusEPlVA2R%DGV|Yq18nH{gUWbs>w>QJ#N)QccAxIpq zwDx+vp-`w&sQ^&?IFFBy%)n#8510>z6Q2lMK-lZ`V8HI~?zk#2!zeH-AnEh-vz8ej zJm+XMk`IzvCg4Z~M}gqbVmMq0 zk^<0bwO(FcX2=)wtL)R$Q=`#91k`|58CSlpX0r)EM5biMBt9=IV1=1XCWtl|3^*}G d3t)y;T~+M@%)4MIRH=E6mVfCl75G0D_zh0sB;Wu5 literal 0 HcmV?d00001 diff --git a/captcha_images/eye.ppm.sum b/captcha_images/eye.ppm.sum new file mode 100644 index 0000000..cf38abe --- /dev/null +++ b/captcha_images/eye.ppm.sum @@ -0,0 +1 @@ +4cd357aebbe717aff7b8f3d5c57452c7e8900fcbfb4e87971eb4465754d0154bf1f20437541f2bf16e5c148f6160151e23f7b59a2a7a35cb73a1acb338cd4b73 \ No newline at end of file diff --git a/captcha_images/eye@2x.png b/captcha_images/eye@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..749c6c2902a1d95244c138de91b2ee048f792334 GIT binary patch literal 2725 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 literal 0 HcmV?d00001 diff --git a/captcha_images/flag.png b/captcha_images/flag.png new file mode 100644 index 0000000000000000000000000000000000000000..3acb3f0d5dc178169213a3f7b350e2413851d6f9 GIT binary patch literal 1046 zcmV+x1nK*UP)6$#0=t1Xje}wB$K^}?rmWY;@M*YiT^|XfczOA zvYvCw?qLr($ppLzN&=Ha8h#WZ$5H(8plB$n>V4j~-g`weBEnOe zF+R~~G+qcHUU1HzF~$JE1MrTBpp+UAQJ07iMbW!y9NZKj8(%O#KTnor!7vPP&Wl6z zkWyj<1EtiJl(H+O97rjDjN|yP+X74|;JPkmXJ=tq7TWE0)a&&c;{Z}hD5W5!oXhk4 z+bqjqS=KO)7U>F935D3HYpQWXx=<@Qi!5D)O zqJYodiB5j8mHg$m_$LWpA6wv9Z`3joeJ zhzMz#VpLH#1B{ZZ7+IFdJkP-xgHmeZAgzpT+YmyO!NEC)loE_Fq-lCP1$3sDM_oy2 zXQpWu`!y)%99fo4s8YVI2; zXTI;h?sPgUolfW3XzC2WWu4<%fN~Q$Jv}{}#yJ3t)^$hYv-55RprZ#+`-0u4)ixsi z7Cf{~G-#cGy7Zm|Ks$a?fHKIV1KjoDxfg)Pwh4f8Cw!7C03Ij#Y5{!TPn1&deLq=S zTl@FH3C6QN48u1E2M4_{4BrsZm-l`CM3q%cHi+nZB5FKDfa7E0*X*(FBNkZIlL8q9 Q<^TWy07*qoM6N<$f^tIAga7~l literal 0 HcmV?d00001 diff --git a/captcha_images/flag.ppm b/captcha_images/flag.ppm new file mode 100644 index 0000000000000000000000000000000000000000..fb8729fb741201a4757884027fc5ed2b579411db GIT binary patch literal 3085 zcmdUw%T8KR6oxy-ORX9sL@ZJ9f(8);#0yaGidB$W5+@pUpoxGc40H?{5=@9;%7DaY z(7BJ`V>nPBq5aAZyJVA|b2_L=|G{DH&07Cj>tFkv9rc+!Zkxw#a(lg|AMc2!rl!`` z*0#2`Pc>k()6&w?+}!*@6GqDH=;$z;%~q@Ra}~Y4z1TfHJ#2P&cXxGlb#``=nT%AT zWHZ7K;qdUV)9KvY+?<%0aJgLL|Zi?RMifG&Dpyb$0YZV(C8!Xq>)>c+lNE-+Q=!REEEbSCnsB5TX24_!_LkQiP)!x#l=OO zNfZi&s0tea$*94Pw)hj6&*zVhj?jmKDIZ!1ma-8c8c&)cBUw;Do1Z!2c71()aBx5f z2Z@4(MDi)LLOLKc#K4onH~<>_XgD)7L#J0)SNr?>2t{GUQm`&K2=Hsy&-p<^^vvaQ zdwYA#k=|v6zsmhHsAPVAUYnokOifKOf^0Sm`O?yokcfc_Ac8<`>mguF6$PoI2ft_`T3bQizm)XxbD&jzx2^%YjlvY?`-@8P1o)W literal 0 HcmV?d00001 diff --git a/captcha_images/flag.ppm.sum b/captcha_images/flag.ppm.sum new file mode 100644 index 0000000..2ffc007 --- /dev/null +++ b/captcha_images/flag.ppm.sum @@ -0,0 +1 @@ +a2e58d7529ceaef1ebc931f8f3dc729d89aaae7992350aa472adfcadd6c770ce2b755ab0badb7c292045f2036409e4f94d43c9e845cbb763916f392b94ef5efd \ No newline at end of file diff --git a/captcha_images/flag@2x.png b/captcha_images/flag@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b01ece1fa35a171b40efcab2ef6f790d60c938 GIT binary patch literal 1928 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 N002ovPDHLkV1hC!*nCaE%*Ghu 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 literal 0 HcmV?d00001 diff --git a/captcha_images/foot.ppm b/captcha_images/foot.ppm new file mode 100644 index 0000000000000000000000000000000000000000..8818b18ba99b325644d3246ef595b05901ae0e3a GIT binary patch literal 3085 zcmc(hyG~+J6o#i{2$(<+Nic{AD)*aQM36fuH+ceLVM2`wCdAN4gM>%0mlvQRna~m+ zzy=Bm-ecyAJE0(EigQk8R&lcTA^Y3^`q$p;(2T0XA!|6K4n-pB-~TUu{55`lg-WH8 zEbv=AREInFE1%^E|<$@vus2#V9Vw5?d@%`SY*mZlKJ9(VGAO0n}QY!1<18ptzNG)NT<^;FE29rcupOGBe+tj zK<3yq8V$1G&3e6-!#A7FPN$R8h!0!kY{5qPeE#+IRWh7~_(S@XmD3``;|u}3R4U07 zFZeuBP9344A2NY6RJqgX$Pq92q%fIGIFsxG_U7h>C(e-3Xf)ziIa`SH1L5)U@%s9j z!y{}#JQaCohl1ZnfOHAq1oid%{q${apX3y_%Ef># zhb^>a_#{FJcw@8Kl;Y#Iu!ur)BPa(MS*=#3__Q_nSOlLe7^6M)Y$bo;$ P7h7zxJJap^e>wOAKBtD) literal 0 HcmV?d00001 diff --git a/captcha_images/foot.ppm.sum b/captcha_images/foot.ppm.sum new file mode 100644 index 0000000..adc05db --- /dev/null +++ b/captcha_images/foot.ppm.sum @@ -0,0 +1 @@ +424a1b17e9004b80cef2f7058c1348d6f9dcfb910f0672f9099bd56e9c613080a71d026083f575605fe3d15ab53d233ad53cba157d3c9b0424e59d0acf759411 \ No newline at end of file diff --git a/captcha_images/foot@2x.png b/captcha_images/foot@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d7879aa6ecd46d7d0c349f9822608be627687724 GIT binary patch literal 2287 zcmV7( zL_t(|ob6j%Y*X14UHkgJe6O$VU^`$pX@bTHQ9%&WkcSjB0V&FSghxlbf{>CT6bS(u zrcy_3p;0QeUma;?P|>LEPX;LBV@AVAkvj0v=?qoBc+;XHQc|eeL{W&bZV2Q)PCxK* zoiva~@3rUAB^^a}?qlt>_u1#1eU6DShOaY(QWGdOzV-r$UOtS7ynGyVU9TsiUI1W> zoi|PMQ%_$2fV|8BUJ4KnhpQDuxhV*OK}2vI2bN`hXJTUFyk{?g#}Tkpu+VV*&mgam34`t2vt=< zM3|nQMmC#W;q|*qo&?Lw%iA?gGs59848uSwm3kcj;_-MW6bd064kH{6L)Ufay6*Y= zi!Okws?lIDSj|6ocXy|CT?aQd9*>6rAe~N+DT;!^W*CO;HJ_piU>L@BRaO74D9Zg< zEH(%LyLRpRtE#F927^#l73p+(3;;ShIzABu0Yn5r5FiKwy1KgVdrpcm=2@E$H8nNY zlF1}XrBbZ2vXWI*RaG;_LTApLxwB=k^&fVF%b*r^)+cxXO zi4*r3W4&JTWsDV9fUd5tq1xJ7R##WYR;^maPMUhgJ9hk|r>AEF5t)V0sHv%m zx~|(UiekN@C=f+)m@)S0wQJXg{aCm7B7k8S)v_$#1Yi&m0)fDrqobqmGRD#XdI78e z@F5ZXj^A5VRaGAd1db9>PwpOwq6j_-diLzudqYD*M?E9UIr||%XJ_Z@w{PG6C=dt$ z01}DBU#?uavU;w2QmIrs5e-O^^r|R|C~Sftz;#_%mW8RQDNIgIes^SKWY9Ch@M#n{ zcI?<#EEcmhO@pRsIC${j-)3J^QBhG{QBiST6vf}Gs`_d$7|aiakw^rFVZbm9=(>(z zFbG9a5R1ir>@`gUcOxv z#SbJ&3iENFH(8cvgg$?k>$-UXGMNl+-MZze0G_V}%F4EKPQvPdR^ClrYH(@UC)O-5BG%_&i~IC!|K(mZ+giW@VOok zi9~)0Kr1v}lB5}4pAW9Pzg?)~QGX5YLI_!I%rXf!x`;|qXU{1j^1SbJ_!0r@ z)~);J>{;Dnn`K#OZf+h~zka=M-UoaVpr@zj>au0ao^r1*#&GU^%d(J8r!V>GeZVIH zh-hTv#*IVV7}s?dC4gmFFbv~qUtiy^{NPsz-^$|s{rztnhVgVM0@${V<;$0k^BRJm z@J#?B8XOoH_=9Cxa2#jBGd~_R@p$~dsz`po*Nu^;rl!OD_U*gJMVK!VT-VJDFflRl z$WLw@zAlD{=pJM2hc|BAc>m6wJMp>J{e>uu0Mj%zKe=)EzBNWfANKe6f57v>Lgxby z9z6J#&(r`EX>V}FiWLJ#jvV>ZLc0PH;nAZ<-$*8t?S6ABiU34pc64-nZ{^CB8QZq= zNpY^NHQq%8K|onq+1q||E86Zb5nb=-=(wCa=`m*%-CFM(NBn&ra8&Gz+B+{p9_#HsQw}niA4S2Q*;6NDDa{@Fjo`^ zf}lqtk+=NdQ*;6NWankWAn;s(Kp>Eh0znXtMx#;Bqu>iE0B<}BBuN5*U?P#&?KPj0 z2*Cf&7X^j+K$0YsmzVGGnomg%N){S9-_TY#FL?a;aiiB%r)Eee8w$;rvD zMh+;9fQ5i}1%BklOB7vz>gwvT#TG~bymT4;zo6&>xUT!J!UD)bjQ0~o7oee`;pS3} zOC%Ccz2;MN0oJZvdx0;97ZL%5v&P28#s^;WDY^h{ZEe>!ZQ3-#*8&SImNLfB-QE2g zulW>R03tH?@85q)k|g^@g^{_6q`PRL0`uhG{xG23R7Jk`NIGJ002ov JPDHLkV1kknI#2)r literal 0 HcmV?d00001 diff --git a/captcha_images/graph.png b/captcha_images/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfabc026afaa70af70cb2b5ec32a7b7c29c3dcf GIT binary patch literal 1375 zcmV-l1)%zgP)>K_j;G;ZO*g zd(k3A)3^4?1WKV&AABe+8c0h~>|-Sei3k>26-*%orFl?tA%C~Kv(pD}jyp^=%GvY> z%gzq-+wW&*e!t($lGYk)X>3i^{|^8H0M@Nrmt>3$04POKG`P69SbCG9)ypmbAel^_ z_I>{p07xnA#l^+5ZxW!|7y#sQxpvoe;kqtzxm^2yB@UElz_x9;t_#zyr@5}1WQ_F# z$OD*+qG$lXWDNl498yY{c0DZ?i{0d$Z)c1_Yn=tB^p{qytlcV7nJIL^;X zsSINbQp)h;$&(MZZQC~2+S>XZfEzUc!17by*w~oooSzp$fQS%9QBEm!lQGsZJ3G5# zwQOo?8Wck8wJZx-YaBUpM0*KPaU< zXjvA@(+AtOK|~0{5S()?EG&GRN~M;bK7IOQwSPlH!%olhzA|ao(a|y0+uK_tq8nJj zYIZ}$SfwaAj)Pshc9k5*ft0e+7mLMU+qUaC&PZcp<6xC|K9NX#&pCH3%R)Y%pSp12 z!qAJvpIZXP7}DwV(t!g99(8thKH0o^^Vr3U7rU=ryVg8CJ?(7Wy0z5a-d?(LUCim+$ToY&_ zg+ieRKofx90Nl;z^Pd!p#doHrrX1V0cMuVT5U?x@oO5j2wCV5Fh*toBXX&Su!sEw} zCx~d+^q1Si)lORL(UFmnFHf8}@!tLW_miA+aLz$Q&|2g6?b~myMjR-|fYusHDFi`) zAP8RSL_`xCHf;Fl>eZ{4Ez5#!+c1GgL`bL8|GYAQnSn42SLH}Vb41j?d-v`q)%{Tv z;pow$3mo9zN)6+BA*49>PYilc=J9qB)W5&4P1Y(pn=7!+n`dW}ol- z2*VIcsfwS`kx~x&zF(>Uc%HXFL|}{|48xdh+vl~`l|#gG0H$mMwHuiE5R;PCGi#Pu zN@)W)TLCB*i@)5ub?d_*2n6RGrjDEadnIFx!GN0-H0fx>tHDf=Z`rb?qw+E3LEgiM z4}ZFT{d&vn>}<`lyeuxv3Ci48I@p+ZDWy;-6fU>4v*?e?LeAs8MW9!Br)@0Tu)kB>u|pmc{nI5-Hw6B85AFgZEtcDwz4zr@ewa$ht- z=??$&^c3V^Fu1t52-58A?CR>O#Q*#FA$DP5VP$1yZEY=)NI*uhSXA+GjdaHkgwM~< zN25`|H#Rniyih1eaFk3YgLec)@?)`Bcq6OT%1S-ReWT*>cpxMei*0UhHX4oR=VujM z;D6Rc;?r#ohl64m9UUb+bV|>N%nmifvvM2eZ*Ok}GW)6v*u#MMdEfEzai`NsNIsuW zGzFF5a=B(^W{mihjW~kaySqCurHv6E8=62A7%O@>9F9aH?DG?kpvmhfHk*w)q#7ar z{QO)6=hTQ#T?rT1Z*On&UdzkNlterpCpB=!#>U`HxBwiFUauGC&(6+t;5z)n!$bHX zR34~OsXRSBVPCCQlgT9buvaRT$OXo5@m>=Yz#(mGYs(0(!#_AUfDPimxw#Q}=?vJs zzrQCPo{|RwnRJMpOgputz!59>b8~Z$aB^}Y(l@SHwpy)JDkWeshD=rxHyZ20V{DRX zAP~rAvu%yVrU(W=GNl^D)32|ux4ojqzqhwXg-lORlSo@*b(0>E`1q>TYU-)fRs7xE zUHF`un!=GZ=%jFw*|M{J`iqkzmz5G}xpB|CVLmh>GN;cjVZ zN#dhCK0cPqW%>)bzP`S?y86~ZI6|-yX6UNn<>e*A|Kj4J*=$OD-E+wOSLHu2@B@gD B>P-Lu literal 0 HcmV?d00001 diff --git a/captcha_images/graph.ppm.sum b/captcha_images/graph.ppm.sum new file mode 100644 index 0000000..e510a77 --- /dev/null +++ b/captcha_images/graph.ppm.sum @@ -0,0 +1 @@ +714d17158fc7fa575404ff69ea72de3de59e2243954bed4bc88390bcddd40bc4a9238136e4ea970d3c08578379054d2733774b232401f8890b264e4ad46dd761 \ No newline at end of file diff --git a/captcha_images/graph@2x.png b/captcha_images/graph@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4daacf35ddf11636d486e98bcdfb34d9e4e0c0cc GIT binary patch literal 2721 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 literal 0 HcmV?d00001 diff --git a/captcha_images/house.ppm b/captcha_images/house.ppm new file mode 100644 index 0000000000000000000000000000000000000000..eae583a4768e89229e84d4bd50b1f8252eee5a6d GIT binary patch literal 3085 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 literal 0 HcmV?d00001 diff --git a/captcha_images/key.ppm b/captcha_images/key.ppm new file mode 100644 index 0000000000000000000000000000000000000000..5adcc3e61ce2afdcd32f58f455a605cc12b4dfc5 GIT binary patch literal 3085 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 VIDcWH=D$1t0#m)^UFJWx_#0(`)!G06 literal 0 HcmV?d00001 diff --git a/captcha_images/leaf.ppm.sum b/captcha_images/leaf.ppm.sum new file mode 100644 index 0000000..4f3ee93 --- /dev/null +++ b/captcha_images/leaf.ppm.sum @@ -0,0 +1 @@ +db28135111aad2bccea0c1d25c147bb70d4aff9ddcb338c1ec960f092bf8b8f11a86528a6add74b34d49b1a94bda2f112f1316933a190c85c3dbe5229534517e \ No newline at end of file diff --git a/captcha_images/leaf@2x.png b/captcha_images/leaf@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1631ca405ba712b53e6511193c6ad7dc4c0675 GIT binary patch literal 3839 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 JBjA5%{{yP1GqL~x literal 0 HcmV?d00001 diff --git a/captcha_images/light-bulb.ppm.sum b/captcha_images/light-bulb.ppm.sum new file mode 100644 index 0000000..5452c38 --- /dev/null +++ b/captcha_images/light-bulb.ppm.sum @@ -0,0 +1 @@ +3ee888ecc26ea19ffa9f6312afcaac0a7900002f26db76e02eee5237a352c3db48d2341e8aba3c5cb332230da0b091b8e4168aff5b951d62e6333a3ed9314741 \ No newline at end of file diff --git a/captcha_images/light-bulb@2x.png b/captcha_images/light-bulb@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..13014bad64ceaa941dfbb9471cd1f944e1c855fb GIT binary patch literal 2803 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 FV1ip1Jj(z8 literal 0 HcmV?d00001 diff --git a/captcha_images/lock.png b/captcha_images/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..ada8d846603c7718b1db6158a7f2f906db3e85f9 GIT binary patch literal 1342 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 W)CKpLy1sn?0000y6gl$ZPwHxN4ii}Df zV{?L_!^ghp%O325*+Aw)K_3P8&<&Yvj@IeJz-FZNPuH|6`E!$dlY8$ud$6~}nl_DC zJdlTklk@xJmversK;5ZI!+lFo1v$k!Y%;)ph z-w0sSrcFs%mM^QS3Pn-i^Z7t2g(!;4b6nSjZQH0;tEf~eFijJdWqtqr`SWw@1xR(~ zp{=bg>G%6D2Lb{3{eCEl0!k_Te!tV%*=gvyZY?e@Di0q%)XL?uWZO0@%feEY&I*Ds z^YrP{)M}YnGXrgHZSg=LFr{f4G);pn%Ls)+PBNKHA3S*QUjS(U^8mI0h>eerccoIP zm|+-_X__dNN+=eKD3wa@K701;Zlesm0@$%*#~-37?g<8i@caE}Z*R9oM@N5;Mx&#I zkQ;TVF5CCIrPe(^bwBC1C1$1_Hexa%=WLbtNiby09^SgKN z9wvm$ueAsv#OUkm`zDb{%nO15pU($XRngtu{ZUhZ?(Xg$Z>KZH5R1ib5<=3A7Fj~1 zySln=GR7bX0w|@}ym@n9Q-Ha-xn4q<)1!D}H zb7-1YZVJ%T)AN@H;G83q$sB10kjZ3@czDh^5{blQQ-GsKk6vwUZM7I-q&s z>4>+18Dltn`0%~;oS;`KA?JMm;NalT>2$iqbzPLpWt2)Kn5H>ftyWX6>rQx^Occeq z&*wX-s_J&HZ-}CZSS*&ia^=crD~s2^j91efGVSts0ty{Mm-f8h})k8x=FSqF0=JO^8=UiJ@SorC{fdj?f-d?_I z*DgLbHuewa{QZ|=ZWN#vasK@I%=q~Dea`v*+ISld@DQBytL00000NkvXXu0mjfoEWyi literal 0 HcmV?d00001 diff --git a/captcha_images/magnifying-glass.ppm b/captcha_images/magnifying-glass.ppm new file mode 100644 index 0000000000000000000000000000000000000000..cb4a5712c3ea2506983e462fd47664b3e00d2d39 GIT binary patch literal 3085 zcmds(yH09R5QeSs7DWvhQBb3J=gx^2P!dcC8o}6Tp-~g5wA7GbMIgR_jhB*2-@)EQ zeFQ5CX?%opzGTI5XKnW8Bv$9_VrACMKmV*XGix9hbA&_QaL5sgMjgNZm#@wAb#-<1 z^z=BL&c43B{{DVeWHjha*l&eZKE4rcZQb47u({pt;o;%Y(b2K7vGMV7R%A5jv4SzW zh}@FDx3?DtsHUf<1A#y^8vXV4A)`T0tii!SkU}ehJwF-ncszc;KNJcrE-ogM$xJ3w zC=^Pi5-Tzq^jN`g7cL^qO0eOF92brki^Wz}Rx42D}oA`!gsl@J=OY(dV=&5_%+wY6fgXhkj|z<>mg*V58bOa9&6U8+Xf zIo19Bz2L2cySqD(%gf7nZEtT2Ob)CGs$}rvQms}6ZzWVJ6_DU*+QY*`foZg|Jvcas z$K$xr>=zdog0~XDfCNvKkB*K6CWM-BdU^_yOtKp9D~_4~hLe+j*0ZxSv1+uky}7v& zd@vXkyp;fkmf#AkwOUPJLTDD&*Vn;wexBIS(2%&81+3~Bf={Q@PzlCNt26*^Z*L*z zTUc1|`FzYw@iGeNvChxWD==P0s|`P^?I45a5BeOkw->G(35( z=1*s5r;5^&-w1nseZ9WEzWVx*-`?I}I6pt9^SK2PCnqOqClW}FV^i`U@~aS5%>T6h51=qwe*gdg literal 0 HcmV?d00001 diff --git a/captcha_images/magnifying-glass.ppm.sum b/captcha_images/magnifying-glass.ppm.sum new file mode 100644 index 0000000..2cf9655 --- /dev/null +++ b/captcha_images/magnifying-glass.ppm.sum @@ -0,0 +1 @@ +b423be22daef5b0c3d251c42f1bc94b1c8668f7800418381ee8d794fe005ef7e954867856609bc420dcc6285078c5d7605d0ef738dcc553c9da3dfe9e82c8bda \ No newline at end of file diff --git a/captcha_images/magnifying-glass@2x.png b/captcha_images/magnifying-glass@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..92c3419ebfe888b50459d5fe49675dcf3986feab GIT binary patch literal 2981 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 c9#19{TALP_&1Q@UZ zL_t(|ob6gqXcSi%|9$gjXLqx^$!^KIk~A1h@uJW|i&6INx=qsrV+;Twgn;8Xc=F`QEyr<=)$8@;sQyV1 z5UU2XL$O%=+BD7XY&MHbCIiM8JkJB?9L;7EtE;Q8ODR9A*X!fDWYVSql}hDUp-}j# zySp2?T+Sx|066DpG#apN8?{;u^?JRuxVZS77Hn$`IC${j2TMy!C=?3F<#I@;)4m1> zAz+#&hzLRm?Af#D?Zw5#?{vteEeh=0w{LGIlYu%c%R(xZf@N7qr_%^NJ9_kJzb?77 z5zyb?znDs;kV>V%7=vLv`)k86V45b>^K!Xd*Cm%W0)~f&f9a%MZ*OmNa&q$5q~%f2 zM!<;^C%!**>eOFC2uLYg9Ga98>i)#U#5E%NQfC1Q>#omGeHH<^Y#K52Cx@^4d4NQD@0_s>9<)CpF`{f6bgk4hG86IjJ-odAR;iv zz!*a&lkr2IWmzqmpyN1bHk)WRn{XTluIoYwF)M^v7D8NHSy}mc%M(y4mCjj~^|_iH zV+@J}!!TeN27;lGF$O6mq?F*Cw;VzU2qECQE?n1z<2dgAU?zYrt^cxKzd zb8wMl7zXDU>ntrh-?)Bk~D$XeSnnG_xQp4>b#K#L}h+KpO6G%)qo>M zj@(lY&$28&H8pi(JzEbWYyyW49V+Tbg=5u#^XJchQ7V=CY}+Vvhnu)FP;g?Jok=o`|ksjYwddejR=h4G6Z^g~SPn3XPq%)d4L8sBTsg~SO6FN)Of@$vC%XV0F!6}%U0qYK(Tjs}Y*QcBFt z&3)C?)s^L(zp1_w>wf#dOCUfMOoR}q*Xw?@h=_JJ0YGcM&p8JX`M)>w4Pi6T76ya1 z9$e)KA^f_3CzYePp)CribJVgpTn5t#ZF;v}obP0*oFx9=Ew1BF!f!rG8+NP-tXC!r zKaXmw16oa>(~6KzXitPTDxB_EC)nxacI0Act3z8oKwYaFFE&{rz@ucj&;tfIT)gcDMb= z@gVWd(w^t#0bB$yw6wHjK6>=X92y#$C!%v}&%XpP6zFmfz`3Z6(@AKD*4^T3WaNqH n!G9Tl%M-92vFr1IT~ENjJs_8!MCmMF00000NkvXXu0mjf$$lqf literal 0 HcmV?d00001 diff --git a/captcha_images/music-note.png b/captcha_images/music-note.png new file mode 100644 index 0000000000000000000000000000000000000000..f44d8efe5d3767e8298d3499c7663b89d5275b7c GIT binary patch literal 1611 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 literal 0 HcmV?d00001 diff --git a/captcha_images/music-note.ppm.sum b/captcha_images/music-note.ppm.sum new file mode 100644 index 0000000..4d76319 --- /dev/null +++ b/captcha_images/music-note.ppm.sum @@ -0,0 +1 @@ +e6e4f3ce5530e8514dc6b8eb09fb7bfef85504d5dfbdf70f79afb6642b1502f51675150e04148435064b6f62843a1ca2f2d48b76aa4eda429d6a5c9a161744b8 \ No newline at end of file diff --git a/captcha_images/music-note@2x.png b/captcha_images/music-note@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7f31c2a613276dc6704525f60377f98201ec64 GIT binary patch literal 3620 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 Ay#N3J literal 0 HcmV?d00001 diff --git a/captcha_images/pants.ppm b/captcha_images/pants.ppm new file mode 100644 index 0000000000000000000000000000000000000000..ce8336df66e359cd89e47c6dd2b1ed4b241cbcee GIT binary patch literal 3085 zcmdtk$x3Wj6vpv8E=5cRB8uV_!4|uUecvQD*oBy=hyy_cLBVDs&Q$D%j`RT>=-fvT ze5~Y0tymP|J*UQZ4T^R4{?>ngyE~^=dNbMXx@>o*yQe4f?@tupa*@eoN=r-2%F4>i z%YVtmuZclMTvAe!x)Q;!tE;Q1sHm!{s;Q}|t*!MK@%^jNMOIl^SzTRSB)_+}x1ph- zwY9aQqoX?)zvZImtH@@vWQ~oD{r&w#@@HmdP=|(wCMG7PrlzK+r+?4IA76#uk&zMO z&&|yh$p;%A9tK-nTwGpWUipYWzX}567@|l%^OKX4OG`_utE+$K;-4RfenXh1sv`L& zYu2jN{uum!4~_Ymvdt-m?~DXL{F_2*aDwkt)YsQ158-@{j*fD|KmK3E1tmTH@$qpg zpN5j&<`(W}Z1U03Q6z<3l;Qv6TqO%c*8eD0dgM+}zyYpPik_ zwP+6kB|iV_>+7j}n&8jQ&LW5?cb)I=@9`fWALW4BLqO@i;2SrUKR!P0eEQ{3p^%J? zjT!X){T=`5=}E37FR)z58jYCBr*S@&I}!>7t6mpzJ@FCbTC|6NlAj{^;otj2xkAC4 zcjMaH8hC_d9~>Oi9s-9aCfL-}lgx9P_U`V^@AdWd#l^+T%gZPJ>+7o*wL_Ix Ts-i?l@So82iJzeS$-4dn@_3^l literal 0 HcmV?d00001 diff --git a/captcha_images/pants.ppm.sum b/captcha_images/pants.ppm.sum new file mode 100644 index 0000000..cc7b044 --- /dev/null +++ b/captcha_images/pants.ppm.sum @@ -0,0 +1 @@ +67125b0a4bd5fff0426166dab5c706d2ce4af86e5300420b299834ec1914c3715f9167386ba2e3bd32981756166291c2dd43478ed635ac0ed8d5ae4c98a240ea \ No newline at end of file diff --git a/captcha_images/pants@2x.png b/captcha_images/pants@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..77fea8d2d73c828f09ee56e52d6059b7ce4e2a93 GIT binary patch literal 1928 zcmV;32Y2|1P)pxz>z~w zy`W0m@?W%^gH)ud1tCR(#z0fBgNzd=a=cFL+1VcOvo;$$o|%o~sPL04+4AmtZ+`ne zXKZ5IHhj+T_1b`5;|l@3HlWu~crGG@blVO900@V}2MHnLJL$xnW!pB`w*A~R&DD0- z@PLZ|H*{V9UQv`;pU)Td`Mf(3E|w6o<$XKYwhfFiuq^9ezu!MyE|;H6>*it0ZH!?U z>wdpKtg0&be7-G)OB>RV;e53NV+<&zu(`PjmSyE~xm?ouy@&@06L93nk%PLfm%`yN z1Ofq26a~8B1v`ZRV+`u`I#jDws8lLYE|>cYg~F=y8eRy8z_DY;E>tQNh(sa~3C-Db8~YL3WXpP3W2JsT}hIiazL$C z0|0C?R-pjBOJWNV(|BM_d`4$KO`$hn1EO;b_kPRujdHN8>LbyE-ORWe>XNZLe6BhA4sTHtA_0T z!UTN$_;Cc^H@Y!d-Jamot7)1hD@Qm44jecT>}Bk`;q&=mX=!OsLm=R+*}V(_w1ZL_ zkd-0q0fj;#z8@A3(79{mfiMB?@`rg~uU~E=(&_Yg*9l0c(%vjv8L?4E=W0eyXa zea_D!9)OFdl*0Av*I!(_cI`(1fKsXSaCUa~8{AkCA;IZ|uV24D$$g^(LbR={tTa0= z(Rjth*J?F5di3ZogpenMkSFnY{O4M&29#1@j7jAHLddp<(-i_t(=?o}CQ5>3S+Kde z36qnPk5R_t zV+;ld2e*_!1R*4=X&ROB0w-j)$GHip*Xt*opJgh5-|uf#0s#PEXlQ87YYvd{Q0_h; z5{dM=7tRAG5u>A{+e#oJ6bcm>V==r|bS3}*$Y!&`^8hyi#bPmzeQ)@B@ofy-(Qx^0RZB^7vds7_B;TG8`Cs9mO#Y7z(7uPhuDeb<>d&kE&xsfR#sLb zvL`UMZ9^uL=~x00mSru;CO`lX-WTK|z&!`><^b&Nc}gH6l}cr0&j-3T4DtSszZGoT zhC6rebS#00YPGuHwGxPcdl(Wm2A|^a@Gw^iL_B!#V6I(!^B@=uQjzPq2$-Ipevbzm z^?IG_MJWYURq52!6!+5y03d`szkB!YOGQyAuP)R_DTSGtnRy|7oGi}(zz-sV8>j%l zLqf=JA~)H#{ar(6SVHGd0Klz}mw^8*KKuU-ej%XO2J{+V2m>zc=&7v1EdZhl1-NXyT~F2swL@N?B0pp_lDd4<3Z#MXv^J zWW^=mp+vm3mjz|*p$ZZf5xSv8c4?6q15(KPK(LWnJd zfbaWX9~~VnRT5Atynm;19LJ%QW>r z+x8e^SxV{Hz`($ROeXWRrKKgW>pCcS^{lzMIj<-RG);r9>u7Cl%`Yx4z9@hHPN$&0zTPuUGiw+IXN*DDb*QQe zS(afK#;bHX{W6(Me!jQ2XLWaX?~jj<{}c*^MgZjRED-FRF~%*+0;LqHs)7(wI`4|2 zyh^9jFW1)A;$vfDivXUK!*4B69y{k8rfI@349Kz!Aq0xWB7EORu~>wrX+LaiZ2U+F zsW=C2+yjo|lw!9m3yd)sh5i&NrEIv5JI4#p&`G#y!;y>Wa+Z?ZZrq#>gqhx zG_#b_itwO>5NK>{%r7h~JPn0H-(Iz5)d>V}!!USoq%=({fzQs)O0kE-;Q&5D2+3cy zZdD1?)zx{7u@an83Qg0XC`zg60)cQioS&bcuL=%Skw7_|F$PL0bX`9O4|X1jME<@B z{MrO;+x94>SzXsTW9&lg0o?a}#N+Y(WHR|3fMm7sD+M^`9;Nik*gt~L6GD>Jg0B^D z9A}Xb!VSZKuIm>XE)a;vTPFd=TR_TCF#RY%m4G9o}T^L z+1XpefeMq5bM6?1@s4wzpPZcB+}YXrYj^>19)eeb&N$n^B|BLL3{A-~=gep!)^ wj>ZrG3&3ka$n#pmuKhB)kGl7d(|Z^A54W1!AX=^t$p8QV07*qoM6N<$g2`_o4gdfE literal 0 HcmV?d00001 diff --git a/captcha_images/pencil.ppm b/captcha_images/pencil.ppm new file mode 100644 index 0000000000000000000000000000000000000000..28a2e413fd56fa0926daadf2aee9e9d959274c6c GIT binary patch literal 3085 zcmeH|yH27}6h^0pC=exppaKE`bOgD1;eHViHCkAxiIp@K#;6#LjW1xLZ(u`3DXp)- z3qV366+Fbu%A90E20i>RR+Bl!$>uNC{`PnF-t0$I!GJXwPzAza)sKJWd>i+uR4TPv z%`E_*`7s`TVq#)yYHE6Vnp>;Y0{KEdK$FQdH#fJiuwb=XXJ%%|@`e1_*;&ZT%ge!F zFc1iMz25oxd20DE#Yp~Oi(apPe}CWE+1c3GNT<`ORBCN)ZE0zVaz3m=Ie&6;(qJ&a z@%encUhm}Oq*yF&ZEa<<+11rmx7)qBxj9&ZLO!13Gj4l49y~#ItJNx(%e%X~q(~$Z z1nqWvJibn+vsf$+hXc>U;V{m`<8joI;`H>C;O_2@iU#3)8LA)Uz+EmEvZK)`%7yI& zxm>Q#v86ons6cRpgv)PO-D=RCY@Byp0 zx3{^8lgZ@4!9l0f5rk3s8jVK4{eC~TUm77a(#UrCS+t&$ko-=P`I2AS&R}r^YHNS`1nW)$P_|4C2%>PCg)jk z9&<4N=;)|gt@6Yd7Z(cQa(=yDM>#zSpKTx(LZi`84wvwGS=yU5%iw?ib=X?3udgG) zC480utA@MV?eaJA_VxyORJeqHc6N4ufB*FKB(P(UflK&*i4|}q{NIWG2RQH(WqW0? literal 0 HcmV?d00001 diff --git a/captcha_images/pencil.ppm.sum b/captcha_images/pencil.ppm.sum new file mode 100644 index 0000000..7a8cde2 --- /dev/null +++ b/captcha_images/pencil.ppm.sum @@ -0,0 +1 @@ +1b426891b8b0bda6e9c9f033fadbe2351d8b1cc7f47a7351208793acb50ce142c3f80f44318e88539c3062a1f472edeaa47d7cc464a6c326ff94dc650aa6595c \ No newline at end of file diff --git a/captcha_images/pencil@2x.png b/captcha_images/pencil@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a95f9985566f2676e0ce8f45984235489c619cbf GIT binary patch literal 2488 zcmV;p2}kycP)ch#J?!;WS$xLQM z|F8*6_RL>!Sh1Za}g1!5aWd>8MvJ%j@;7@%#OM4+H|# z=kv8`nid#&&sba|FESP^A*A3SlTk1j+#*TRbx{;S2!Ul;uq>-LolZBte*HSh?sMCT z@09`Ja5$=}YPYJYkR%Bl$H6pBq|<3+GMU~tZ{9Q}lgT9D-Tj%o`+!= z5JeFj$AJ*C1VAT%MgXo%D0u^d!C($v*L8TkUU)nnNRk9X2n0c3@a!u~D5d`hg+iaa zc=6)iM89A12CQGdeo=34uSb$3XqpB^Q6NbYc%BFFcCI3XfDq#2IIc4k3N=n-Ldnhp zG)r(P(ts zYEUu;L?V&6rfFw&T}L1gfZy+j&*y`pDByWMws`U4oCyaH9_->c&NNLEwr!94dxQ|o zo;^Et>C&a&jQ8A2w;|Y!-x&UXJ4$@7}!|>FMeD;^@(%4Yq9y9QS=NTb6~TOP3~g@813O zMDRe74Hyev5QNgwwLef;?GbA*r+CA}JS!aK5k zZjv)nY+PrvS!6O9WHK2H4h{m}oABfA?r!1ndKWX ze~LsRzaWJ4kG$87rX>QL@S3K*1rNAyFuS*^sw#Ev+_{cOB(jqbGGVqKO9eN8!L#x1 z+|FW|-mO?Ntf;6+oj!ef%J4ve4G4$B!{FIQ2FG!^nVVZN`111d)R{A9I>O=bl;ME_ z8W0YL<$Sg(&vcy8gH6(Ha6K!FTk@T#f~3wyWO-YEuOR#uied-iNz!rrO88xRVG z;vSDD2d^l~uw9(VhJ9OGTi)S;JR1-Sh2pBJ=E9zh`F9O_U^sj}vi(@fn*mOEmhePT zoDzIRMMdiT`SS&X2lBKbG8+8IG4DpsiOz}@D-ySE-TG}I;ek9vfOE`yJf644Jm4+2IIPMkQ$7B+>{lne+4gKL)Fc|lEJh_B7Rd~}h zv1-+-#L1H+7c-9+-pye!suX8TPU)4?C)w%nYx-zCLm4 z)TwEQ2PRPk+S}VR3l=O$Ns@$-M^%9PH#3|)Uo3dw9rgn}9?x7!lGY@X$#0%Ldv<8+ z)~!E%_UxILg}&Qz$KY+-MtyyKqP4ZPAn)APCoI&Yam)US7Vly}i9- z_3G6L7RDn_X~ybx%d%jaCRVOoSupr_k?RPUH*emz>2!LoD2k9I>DT@J{Vf1m_U_%g z=l1Q}m24P{wy6mqXOL-{h{a<4J9g}7FC=_kH$?-1KtNHHmy#sqGCjv}J%S*t>Fev; zar5TQ*u{$%YuQj3X`XX?d)KaA51X2r4iZAXnmpdb%IlU`Bog@3|9!3p2e((g#nRBWQ}Q>GCP6gc^-lw zKorHC2>@VO*4dhxngh$0Eo;7f`Eo~PWo2q`aImD|0T(%7U|=A*ZQHg)S65dh@c-oK zTZM@LvG^01^Na&g$^K!vo_aK>+V{ z?@oC&_@Ss|-V`mCJ{nN$1{7N#4JdX4imeacfd2u`#6QEZVWYqR0000<@d5En7qiQbbT1gb<315K)|no{q*5%}KNriJP$3kLBg%s^@uAuIujmzMmb$-@pWX-$yQ&Lq4BJKA%S}m&4lH+UolH`ah22 zOnRQTpUGqfB4PHQ^1(dMLpq&?ZQB5VcDoHC+EPlr1F*5OvNB0T`vAVbyu5r=ItGe> zWm#|>2exg4a}L|KF*`fELPUQqEiF~%=jY#X&L_vl#=d#1&w(Pq7=vLLFwL7~Q53;6 z&6hJXGcSw9B7z`*ZQCf7N+U-{M^8@x_@G|krgBWvgi;EOF)(%$P)+d32`Hsv0z?GE zFu*y7X_^Sb5JCt@DPtl}PC$bgh5^GcI>_kWFsM<|Nk3Ccy?vzL3K2ahf*AKc0>1BW zF~(k4mIcl^JkLWam4fTKuq>-9&r(VVA<%3#aeaM_Mx%jdvxy)GUSC~Z{d6CJo+-#? zvn!nQ7aB;DAR$-1U*M)7{ zuq-RixgJE+GiCa0&{_$C0IgOFjYb2lR_p7Fi;JV=+^z^@v)R#9D)q*39C)4w$8lg; zR)@$m@LdAhp;9W2nkIj{ZeL3IMXgrr=#U)*(&_Xcob$BjdGI_BwrzLR_aLUDrPoR+ zeE@H2wc2+*2^0#2J;vCC>$-3pC$8_0Ew3bTot7{ROZj~M)!EruEXr5|BO@cq_kE<( z=~(F>3$9ITLI{CIqk($8j(WY0lamwb(tti(G_ZE?6jwG~8Ju%)&QT~7<^b$<5YU22 z-gc70y8Hb;ApMyXtUkoFFw5ogS6u{j&hCOsDY3AyP_0xd)j@W>v9U3_ySqE8qp2%N zSB18YD$qG&jKw6vFhr$NSuGZeP)cnkcY4X9T2_@o-)DmxF_YUN@ud+iP4WfrrX%Vq)S{2r-;& zF1xUk75@@}^~9*;+(5l)_-p2Wp$Hj751c;A&>D23WvM7~GxR}r9NAiib*XzNb zPN!4}UzAI{@Z5{V;z&LaXv5)fGMVrM@NxJ0`bwex3SWJu-<}VRpTS{58P!lIluRab zxg6DQHk&VswA<}ktyU-$n2vBb?D2SZ$4w2!jN$b3)bICSUS2Y@!0+$x=|G;~`T3b= zH3hhIQ6`f?jd8<@s7wxrUH;kG88Nd5z!Em)rTGaSEY&6jRk#r^WPul~*c%W`7aE_) z$&_FoA0LTLn5|ZeQt-ZrQl1yN;S&mIqK_4}glA@<@qx3%P$OUrp~+78<1d{V4CKHbg`5f#d)ktqsXk{7~36Z0N5b4G|? z_}lGP<-fhXQGb~x$n0Ls=>b{7l$5WUaEYMCJ+9Hj5CVg_TCG(0zB6gw-QCf&*=&|A zp$S;{G$aA<614u5iO_x_(`>ka1C78;G2s-JFjx+ntsVYuR2Daf^4W*7F^G^9sDmb4 g@`;5Y|5fX6P)Q7fC-AQ_5v>jgvg{sYST6}492mr% zy$nbWCWk$Qz06^dH5Wb1VObVDtl%Dmk+7h*b$1rrl_*(=GK$d-cG8vVs(O2v{@Sv; zy3^@YrQ_%i3Q55i>pE0bZ6JWI$;rvZ8#itYEiNwF zj^m7T&KDSC9~X$>6brEE64<0K?TK-kkq-3x*Mp69*xdzgg%`}dbpsT2&u7*C~A z3+Z$^5fXNUfMyo}96EI9SK;S~g!%dTYx#V>RP`6*`F#GPB;-sq5^S|_#uyl5=YQv0Ct?sw#pY zfDi(l^F(Azlz?VI2xAP2qCnF$Se6AL1X8I~jR4XP&N+PFN2OAUEkLVBq9#E9MiHSX z3OMI545OwEG?o&moha5Mt^v&m08q;k!;2?Spyd00k|K7O001phW#H9mkrWamfWq9( z2xx_<<1=m~MgTc4RaH9{p62j8FEIiVONXVD-^DV~EBuZzcDDmLTHa5LfZc*bDnhnx z&v4GC6h(P2Oqil5P*oK|h}VLd%^Y1bRBMH(R4Ulm*r=I<@B0XX08+~T`M&>ksZ{#9 zqZgn94aj6NSA`Ih6rP5?GzBP)jaT475B z^!N8q8HRDiG)?Hb9$D}NUL9?59bt5$gin^RW|Yfil*{Fb7cXAis(&^%0{Z&;KJ4x7 z{kyK~Ry9wrX+Wnt+$l%{h=8@VH8_q_dinC@c(GVq3XhG&2c*;KjBVT3HBGaqrl)CI zg9+>u$TY%9l9bYxQeH0>iyv%duC@s1>FN1a)3jW*OjX6H7k3MkIck~)&-3V-?Cx*Wur!ov#NqVQDi*Mn*mYaHD=)lnK;!{!QF{Lil)8 zRTYO1ACBxS{p3HAqHwuc?9wt4YRY-H)>2%C)iF1N<~Z0^AIjstExH|uHAJCdPlWs`c*EM8vy{u z*j=g-(mR^TC#6Jxf4_6|=+S>fy`zD?iHV6H?%cUE)UM$4kt1PfXlTlDoI#2rx7*ex zf?d}&ZQGs$@EL$wk+d1YUl%hwOK@bGkyLWHt{Q2{X zCr+HW0N`&?^EVIxzy@#*z|XfLC}V6Qm&;8FA+As^5l7i9T>Nw#2fD8R`QE*IpS9U} zdH~=X08I-cv37o1?Y_XWtR*4Dd-R_p!uB6G!rkI(Qxu-( zjXI9A)ajhtmUPdaJz1(BQ1B6IQp9>uWJkF^=NxCwocY;yowfaX{Dv|1 zL$jNknLtz^^j6^~UlH02?+EC&0Nutr0=g|gxAE2!@PBs}TR!NbMP>j1002ovPDHLk FV1ke33hV#? literal 0 HcmV?d00001 diff --git a/captcha_images/robot.png b/captcha_images/robot.png new file mode 100644 index 0000000000000000000000000000000000000000..96b4df1793cf6078fd6b1dac2cfa245f1a0139a4 GIT binary patch literal 1519 zcmVSg9P;5LHbg0!kq{RJ}y9dO&T2IONn* z4ppn9xkt^Rr>K|YgmS8qL&AZk2RJ|=ahe~>PXw|oYD`QQV(h`*o#~-5qOcBjMcYr> z%Y1LYdGqFdpN0q_@PCHQYLO6P33j{PHz}nFLdYJB5CTF7aL#`z6bjdN=V}G9O4cIa z_xnXMnVhJV7eZioc=%*KpC`N5YlWo(wZi3c;n}linj}degdi9UrjHysk{%x)KP7~K zVHj{aoyh0&b=Rbg5Kt5a>+9>W?U&N<5EGD@Wq-oAZ{!-o%l z+1lFr$(=iQKL1CP(B*Pnv)OFjp-{-@@puXw8yg=voleNIyxj#mLkNLNrGj#~jAF3} zm&-M_wYB9-r_-yIN@dS@u13u(xPSkCVRd!&jU-8LMn*-5PuP^r_q9@fasgoS3Owf#&9B!|8N>s3-~)McL@=?3~!SL9Hv`oNqr& za=9EkckbLt#+a8ehGMa3EH5wb`Ny(SC=?n}Rn_R|=+HUm-drvhuAZ!(PY8jPm6fn* zn%?&IcD<>oiN)jbPp$T{Byj%x`Aq;Ql}eiqhr_sd@#1f$X~Hm!_kLB3X`1Nk>swS5 z#bAtW777LF*s)`l_h#9K0QyHpMy`&Ij*_9Fq0LAnay6AoeLp%n+VnmXR^{*Q?R}F- zB)*-Rn)>?g-MeyUXQwThOnw94VO<0WArL|&03-lBB!pzUy1FLH<#Jan78@TP9{$ma zKr)#eoSmKhSeE6<$;ru+LWl@}QvenKjMc4x)d`OtJt}OrzdZZu)hkO0IyyQ802qdW zxw*M*%z->e48s6`nk@(b<#HL6QkbS$Z`t|@R2}}l;?-Ou1nPc2#p7|EbB>;#o@^~l zPft&lbB=gCt{*6YKp@Z^jYek&1_qWWr7r`4K(_@ZK`DJXFfgzbjYek!fxu_=)UL~f zp-^aC)dYSFT*iWwY6(Dkc~Vvdfn*?_0Yr1%wc%07P~yEf7M+_Q7NcArIf>8YA#u#-EeA V(9ifB%uE0P002ovPDHLkV1lZG#3%p& literal 0 HcmV?d00001 diff --git a/captcha_images/robot.ppm b/captcha_images/robot.ppm new file mode 100644 index 0000000000000000000000000000000000000000..7f85087b50830be7bfa8cfada181a5c73657c45e GIT binary patch literal 3085 zcmchZO-tfY6vk&=Q3FXL^kQ!!y{l>VX60ngP}Bs8v`DC_AR5quHi;1}%0!rzmVlb)WQ&d$!t_0jQoJU2Hto12^A za5x%`ZftC%QYp9F4OF@Qz`y{dpe9pOQr5B^Noy*09CHV zu#s2lS65ea{kyxnyU0+|* z=bWHi{I~y&-vWXF4KgVtmeptFX0y4arNwTyb5DndhtWZJ#$W`2*yG~jB4koXB)#-c zJUu-n5(&f^Ye33NG!Vr&Wo0ys+?UY6r#@DreH8A9v^ii z2n1niX$dkZB=-0BmtH^U{r!C|mwSGG=BZ?PbPG#GO*4W(5THT6y}c!|thmKuX>V_* zd0Z|R2S>Vi5Dev?k*@?a$fS@+dg-4KuOgLU%L@w&ylhl}b)u#jK_Ce8^Yc7(REhfn zr?ft2%Bwp!H%DV+G8sk`cr9h;OGk)9xVX4rB!w;P?Cg}*2hHd6dwYA2kB|5d4-coO zr)Otpe+)(t2m-W1p+HJDn=LD@UUPiDEbN`niZPKO5Ck>FNYf&aRpaAG<6&x0_#zHL zLYh?3sU!=ht*s3OE`=6nN)U*ikx)@VEhx#t;mV-X+S;ncnGytoAR$ev=v0!0GdnxW z7Wk@Yai#=;AV{dFpca&5oQ8%5zEFpUhuk214I&5xK|-2T(WxrZ*x1NFS5$xzUxj!r mCG>9nbUMwG$c*> literal 0 HcmV?d00001 diff --git a/captcha_images/robot.ppm.sum b/captcha_images/robot.ppm.sum new file mode 100644 index 0000000..fbf03f5 --- /dev/null +++ b/captcha_images/robot.ppm.sum @@ -0,0 +1 @@ +cdb563b400699e83feed8ed41ec7309b03338dfaec2e38b7bc35d1afae89a33c7470ad35f38125a116fb0653037ad9195d443d6ac750fb360eef06fd89517eb3 \ No newline at end of file diff --git a/captcha_images/robot@2x.png b/captcha_images/robot@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2df1de45835ea5a59747069c3d686c7681fa77 GIT binary patch literal 3210 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 w_;Ww#-@Pnp0{&a=fBv__|0m!5d!m=!C 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 literal 0 HcmV?d00001 diff --git a/captcha_images/scissors.ppm.sum b/captcha_images/scissors.ppm.sum new file mode 100644 index 0000000..4de2006 --- /dev/null +++ b/captcha_images/scissors.ppm.sum @@ -0,0 +1 @@ +f8822cb6027ef01ea677b80686266d0defe28794ca9ef94cc5eb2e0994b8c6dad7345ff2aa54fd4e4c24e88210c7081a164ae53f4a8634b30a3add600e2ba166 \ No newline at end of file diff --git a/captcha_images/scissors@2x.png b/captcha_images/scissors@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6701869d545995c002fd9dc0912fc18c2765c083 GIT binary patch literal 3780 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 bzyW`Z-laR@Hr$;cS^}1)m(Vm5&*c9BXV(r6 literal 0 HcmV?d00001 diff --git a/captcha_images/sunglasses.png b/captcha_images/sunglasses.png new file mode 100644 index 0000000000000000000000000000000000000000..6d70113da06aae4015b5b2df85ff9ab9c06e417f GIT binary patch literal 965 zcmV;$13LVPP)g=z8%a;=wd}3qgWjf~Q^Z z7FjRL-a=sTBJ9CiE5uBlWvVG1Pq}!Rf(KRI_1^zi zuU=I*2_bNwO}kh1K0qI!56}kypvw*s!FAmyMAS1WilR6FC%ET%Ph@NW=-#@I@;ndQ z?RE$NB(LJ(;o*=m_E^_-s1QO32qC~Z|D5Of8_xL&=lrDIZeOcnuImml#sbFJ3S+FI zY1*KsX}Ar*IY*XdNYiw<)oNWA0ORB1Vr^~h9Tu{H*|(nwm;WrPAMdo{wf( zW=Q%x&kIY_6mc9QO;aRE0?zqo0AP#_nx+Y95`u^z;|L+Z7)uSqxV*Z$@@uu)41lnx zfyKqe4`*j*UptNi*L6WekXcYuXWKTCBtaa<;G7Q%A)xE}4RKx93jj4nk|ai})p`&F z!8-sUpqzq(gM$~ErWL8vb^V5!rU}ckU|AMy+lK49SXx@DZ*6V8cN_3k#nByaw=^h$8v?P5>pC2VnA+MxBW2w}tNjsiDc zs3;1pR;$%+w>zBBTEZ{ZlqeRV!GLEwEDyp>-BoK+wJ%J zgTa8a*XxmDgb1(ZIqYz~UaP7~N|6=>XmW&@vN9HZGaMy|xqrY4(@kNJ09e5XCWHcIysr`P>!uei08Y$z5OePZqwHBn; z>vcFB(#4%Sz!V@xjpFfmga#O#&1O2LxHd&Z?)ST(Nehua9*^mCn#p9KN$_39)^?%YNtzCLaZh)oO)^U`la0C@RnA^G$=xB@i@Dc?VtP b-?|{^l(nf;kg~F?Z5gq#0b>K7aRa{rS;`m& literal 0 HcmV?d00001 diff --git a/captcha_images/sunglasses.ppm.sum b/captcha_images/sunglasses.ppm.sum new file mode 100644 index 0000000..0c9906a --- /dev/null +++ b/captcha_images/sunglasses.ppm.sum @@ -0,0 +1 @@ +51849e3bb087328076b626f551122df5ffa6c3b88159aa51bbe1eaba4486fc681a0eeeb20045b06c5a8aad91ba8d141932593f8c679635a56e2ca3fbe0954770 \ No newline at end of file diff --git a/captcha_images/sunglasses@2x.png b/captcha_images/sunglasses@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..df2ca66d3dd54007271df8e2db4786c228c2b750 GIT binary patch literal 1889 zcmah~dpy%^8~-h0Ib26*dgZPo$+ zK-UN3iB)B{UjS>U_WKcWBdVm%K>Ogps+9r`yP!I+i^crG003?MUjX$Er~Oo2LgT%H z1#m(l zoE#C`oh&&okpQ6a+{e=$mst9>gmwxy^sm=tjBk4wCkuQ~x9>zn-|WwA$Uz_1ak{>C z>)J#4kK2PCJ@2Du`8Hmd+>htA{Myid>V8gka9<(q&mwGO#FZ?q$#cJpG4M3lUzwH{b zFeAbX@HcU+24_U5RT_XCsV%h@K&9@r!|E-ypuRtWYyTxrHEO!?Nf0yu6c!d9D59JW zF2Ywd^%YNlNi>r0=$?TUZdg+V#U{FmiWDi$WPERy;cSbSO?~xo*|w z2p*5;8^7Qii=srRXwmNrqhCzL3Ip&$lb%?yz3H24uaGdB@h$(?fzEm#e*I>&;pFkS8(hbroTbIty))Afbhb=yGYmH1Z9cp(e&v2<&3_p!9J zmGh5C%?=CJo7Y@=5@>5{dj(?&$!T|kXHi8tYphT0RfkhXty$JP1Tt)?%>C^m?8LN& z^ye5B78x12p8=I>oOrm`Fvr08Ze_us%V!81(df%%&pPX|AUjYfl$y03>_)*b88`>{9Odv4Zjz7t{ zESb*jkYFtJW1*UtoE%@@&aN1d-LJxrC3h`1<&~G0|8?L7YQk#UwlVKKQz`?hSzTT2 zpGVxG9zrBOr;6g0OL7vgW*`3O(WAuz=@|nhmf_xDafc1g1hBrbZ(r>>KgEkZYV`cb z`o$E}Thdf3R)ZQ)L`i*Z?AI=dYm>y`a5y(z_rjEhaeV92Aq9-(W^rYK9upIDpTptA zgojtYSER!-y7hZj0*SW>cQ+|ZznpFyYh8z!*g8$XTX1o63WeVJM~F4C z3$vpnDgAj-)ccy$hgKD)wNNG9ZEgZ5Z(!>KTKUE&vINOU+bcXPXZS6bGxKF8yJCLg z7nV5kT*!~RRaMf5$f^Q8M3ODlW<#UJW#}Gc+T@!O+SRT*x7mgzp;TwN9sIXj&Pnuh zkOEyP5eL%t5xXSLlGD=C_J>BkCgt|44-5}0$Hu#^ssX*|3*CG^KbMv7^>`4i6=qYo z#Jne?h}T9&MV;&yHW?b+M&xNrRu!!LDOUcAo}M03aM5qOrBV9c3Ola)34iFmgy|^* z5Qd9YNhNE`a0p1HvzjSReZ3;jW>6)tRpHRkBI5n&^5ZpLcF%Nnp-`3U%s(4|K7IbY zcrJwRM~xG6@7YHXiNx!WADDIvR#;%!er1kOD4Y&?Eh+T?pPiqdZ)SHtwac(4)_sVi z(E=ZAxw$eXb2uQ^l0si3d|e9KZE8LqP9llL^76;m6SWdOJowQ}rh-P$$$%8NFlRm- zRE>M6d+-6lgD1`Dt1DgfY?U5lGD$~Xx+E#ITyeNhR!7azHgfnd_@LTaFnh^FczBz) zw>NEGE>~iFeFn5UeeX11o*8M}mpbvELJ+!>R@AW4(%IShao_>LHT+WH2e7?SAT>op zQ`4-rw)Ur|*{au~!&>racJ_Havy~V!ncUIek3;?pZ(wiunBE;qAiPgZPhW+YkN+TA z#*w3=r*mXd0ZkBw{7&E3ihYtI_6`c_o8$TwH-*;63`<%0M%fC>6wSFdBwg@FqI9so5qFYV1zq3DFaCha#(?az4Om%E4uy)*q` zo{^n(*f#<|v`*A-w#OaYnBh2Q&>mvgvRtWHIr;tne)Ips6IQf;Xz$#f8FYrPvN^!V LE5Ne`P0suWb6bUg literal 0 HcmV?d00001 diff --git a/captcha_images/t-shirt.png b/captcha_images/t-shirt.png new file mode 100644 index 0000000000000000000000000000000000000000..3f60be5fedacce78b704cc9cd02992b31d4c7784 GIT binary patch literal 1292 zcmV+n1@roeP)mp&Agp)cAV^P)k1KEdawvm!Bg0@DZK^ipL25w#8bc;!AlFa z^-$v`VSj^lWZ08|nw zWy21fJ9lo9G4_RF7%rt0nx-L+V*uclO6AQ`sZ_4lXEGVj^Smt~1k-gLQc46tfG`Xz zzVClrE|(V?4f+*;_V)HmjIjmASl+TMq*5uErU^m_;y6aFRs-j}Sglq++}_?U13)g9 z^IX@x$r$^{vMf+aA%s8>1lZr-2j?7|^GCk#e_p9nerX8cI8KjY7?)D1)OWUR!?G-> zt6>-bfGCPktJSc#w}-vGJ@~%=2mlykgSKtEj^n_#Z5W1;bbxb?TCJ8O=luOJ44+o3 z)iUtXgpT9%Fvk8K8ylNjSy_oRO{1!~X_}yvCIGswL(??qx{e?S-U9&BG-2B|+S=N{ z7)yXn(}Zc7Fbo5fQgn25@S&lh-rKit{|KNRc)1LBcXxSTUte{3dHKrZ5uIn%i1B@{^jsw?q;dvfB&x7l_NpaIOq3b#*rC^L9l}aUWH*VZmdGO%D?BL*F zsHQ*z07A&t^z`&&AwU>ZV50@2pi2G@0wPNxryT=_{oqiGr_ zrReYPFBgl&$ChQ~=H}*pIsgCwBO@c94i67MUs_taa{c=C--HlIr_=o6#f#75IED}c z$}g1Cq`hj?s<@OALI}ihj6$LCJe^MSD2gyPHumtzlPA|kM@KgX1_nM+b!p;8LY{7J zZho`8y!_d%Tetq2n3#Cu^5x6V78e&^1VJ#N=3b3Z)3gJfQKObpB93Fkag3>{sjmPO z?%liBfA{X)Kho*+2QxD>Ujo>A1polLySu-gpPzqsXJ=>q!i5Xp6GDo!v$NNNAV`eV z=$lc$tW@zJ2tWwA3E-xbvY=_&TlswcJ|SeGUVi|95K@&=jw@dPfbaX@oF^JhJ9_(2 z#p|CTgcPNe>j3T_*3-i`RACii7$OYAWF@o;Aq1i*g75oBzPBmB;fSILVHm@Dq5Zg1_lQHsfSP|YnJueQvtYo_3H2S#p}1y zMtSN0gpe)u;==_Rr2;u_wDbUgq_uGzw>&-7PsOPLoTRnKEqo$?!)3WVR4lcNLPB}#UgizU?B*%$ZY31tP#PtO10x*SJpVutO$!GNw1$oP z0S$tt{gQJYT(H>ey-&zKgTsNofqZ*?@B6NIed}U2W(tRf!y!{B8a4g;j(^>OAAb&0 zJG#2Mw2!6mFmiUCoysVvtn9XK61>$tFP$&e0K`bpUF2dU0-rjEqNh+0! z$K#k}Ap{AZ3~p_02@DCdBoYY}D4n05(?F?DLTP$>`tI%y@r{j*ot>S7gM*`^qr=0) zY&I+Cl;9F1LYxu+V1S|E3Z47=dprP;`n2ou@sSQ(TwLUGxy{W@TtR_LknqVW(&;o) zBSIpaD=~X}dl1jg&Wgq2+}zyT+nZ9K{POaWp1-`jK+os%^?Dsy9Eu>{-QC3`L82;M zUtgb|o-+0G^E0cf)oN0lM4XDx&(F2Bwd3RCR;$HeqtU<*Y8XRJ1i9*yb!9Rcq1J3R z@efNWF7-)1K0aPwU&YAP)fGL2D-7dV8+3`quCA^MhY+8hp5EWzwdYd;B&0>nHz2LIX zJ|Aa~7U7diqzVSbKMOEp{vRG5cu`MIPB{EXse(aD0B&w>jOn*8cSk>8>vtsa4f;Pj F@Ea&_=z#zL literal 0 HcmV?d00001 diff --git a/captcha_images/t-shirt.ppm.sum b/captcha_images/t-shirt.ppm.sum new file mode 100644 index 0000000..30eef77 --- /dev/null +++ b/captcha_images/t-shirt.ppm.sum @@ -0,0 +1 @@ +b0ee9eb2872d642e5d13c15496c0c9ce4c8fb7a63984ecb8d259b2c46412242da4155119d7dd61b893584226be61e75bb98a4df4a35df9dedfb8892954fc0760 \ No newline at end of file diff --git a/captcha_images/t-shirt@2x.png b/captcha_images/t-shirt@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..49077f3babc7886dc2f271f806b4d58e4ed750db GIT binary patch literal 2478 zcmV;f2~qZmP)6ALF5i;*4G*bh}g z5)xF9i-^XD`y~Y_1Y(LHif~;~g_(1% zc;E>T!Y4!&iP3mGo(7QgeILH>qgX6nS&to6RXd3&@XIvKb=hI4*7ONgu3Iy7UGL#} zzK7@ePLAWYa@-wZd7g)Ixr}15xMpSz!{`(Q;j$nIVD?m1MY&vt=Xn=h*S#<|H+S}4 zeZMCH48v#=Me%|timj3)K@bG+JP)4d;rl+yUSKcC!f#HtalFUB0$&mq$r9f6h(PmQ549s3|W>TNzx($ zY}>~C{5+m|>ZzBmT)DC)0wyOXf0ali5R1hiNfLlN5_TL1wr#_f*_pE z<#H$1GZzZS#cFauDwXP26y-x%mW@~}231u9Cq+>N$8q2|4xZ=1wrvy&1(>E;oSvS3 zd}?ZHRV($_V~-`bY}xYPSS+T*ZTHX2%v@Q@?mgvz zL?Y2CNzxfbQCiug!;_aJ2^`0P=XnqjJkNt52=F`)rBX>X4CCXesi}Rd8B5pok9nR~ z!uE*>zV8PlNRkvNPnKmA3WcqfWnC5o;i7HZZ{+j&iPem?q5^bXZ;~YGge=Q1tEvh` zQJ`rW*moBDf*=I zD2igJsv4|#EEa<-%fZB%?89J5kcB}$pGQ8QN1;%FWm*4lUH5FcT%G_hLqthI5PDQq z{jH{HhG7^m3&2 z?6bf4=9_N}P16vM$AgKBq8P*_tJ784C4wLbP!t88=LP4oEO*$p-Ql_}0D$8-h@u#T zm8NNsWjU~4&3PgM$8o^|@H`**#Z<|0Tw`Zv=g&X=^wSHfswM&4m4oh5fUfITL{aRJ zB&qq@wQIjVc<|tdJkJZ7ra@7ZpwxvMl%-HjuJiNrD3waEZ5!os8NTm>=lOuBSS+?E zwAM3@Wmzyy6AcXw<`-Xl@ta2;dE|y|+uysc`{CT&+#BJ07wOh8jI=Dv9g3nLkw|>f z+}u2J=+L2mvm_Uue0boc4hFV5u~-bct|O61AeBlXl}e$Zp#iB>3dv*=x~>OFkJbLw zj>FW&6d=noUVZh|e-hE9haZ0U{RL8AuOx3#2+YpTnjIY-=B-<|;zYD3ola*)M@Qej zeEIT6mSrhnht>ij3W#H}^*j%r=LP>~GOo-gYZ)ti?T#HgX1cn%{?O9W(pf5%dKE>% z(W6HvD(_jO03sScdGh3!vMggk1*eGUv%bE*uU*#-oL*@~mRhB7tV)suMNz;SDNz)I zcwVi-svWFM_V@Syjfh4QiNq;MlJLY6PgqBe9Qj~b0sx@By?wB+uWy3mIGConJCn(D z?%%(EsHv%GhLNxy$13H@RyuryS8}}*cN_UirGY zxp`zo0*Gilo6Uak&_fSd03Zm$Cq(qs3opFzciXm6Ndi;Fy%Mw5$yOVaCBfd_-Vq`i zS5@_t@B7GPGSk^?b_jsEA^`x<)YLTc)?05~_kACwQt8pQwzmGRuC702GMOpYbx|&t zgO*g+b!+e5y*KX{32dCbd-vYdb=_kAu*vV+w{PN^XP!BoPNzHb`TTB0QQX&Fd+j_C zeN}C)RS6&>^SS4qd$X&n>!#;NpM- zLgucnFe-%O{J?<&eSW&!0cvn#<+9#>U2xmX?-&%d#GAY-}`#hlk%I zqN$~9F1s0e^2sOvGB`NcH8?o*pGw&A{wtug0(mp zHe?mJU!7poh&&0h@3q2)EQ7$}MyOWX;aVsxvX(8pBdir_F-D}DA%k&n^Xe}tN;K207*qoM6N<$f}d@nQ2+n{ literal 0 HcmV?d00001 diff --git a/captcha_images/tag.png b/captcha_images/tag.png new file mode 100644 index 0000000000000000000000000000000000000000..da35359da674f3211a374cdb2d540aaa7682dfaa GIT binary patch literal 1306 zcmV+#1?BpQP)000W>0fLJSS^xk57IZ~ebVG7wVRUJ4ZXi@?ZDjy4GA}VO zFEcSDqP#Ky0010xMObuGZ)S9NVRB^vL1b@YWgtdra%FdKa%*!SLsK<9PdoO8dw&-wki=UifDJWmtP)%$+|z_ERRh$=Kqdqq`MjfesOJVa#Y=QmRJyKUQ9 z(=_KS%eq^P!|f^G0npOYax$4r#sFxFqQJ5&D2f6p<)(mb+gMv$gJoHNo2L0gB9Vv! zNEZXLC&23JsvZag)Y8&Y=(>*j`ugGY#w0Cp6i!{LB!+hFF&a5(${5ls`(xRmlk(=<1CZ`gwZuzyGe= z?QVM}03rerVS0MHOxJZ^etdX%xIUN5ZKfa(!pu-r6@I@T)z#JIKA-Q$%F4>u3kBGb z0%l&_h(s_D2#lvvsXi%Xou+9Y=cBW$ki!A5*9#$p6heF}ga{^+$^N1Na=Dxj0CZi) zkt0W5R8@6QN(qn011aU6005vU3d+mNA%uVsq7Q&CnM{6K6hKW)%}a)1KuQU(*9*7X z4I+ZWvA%Ra000m|z~yp*h#-XcLrKP1`_5_GVqcivJ-81Ls=e3fOl0$)zQo`r+0YE)7 zPXN&JbF@9DM1+Zni8qIah6bmmretYp>7hUn5mr`KkjZ55;K2jRkMDXMx3#r>6^%wO zHa0e9^9A|z7qHlenX$IE1|mXxd;3pYz;=s3-kv;p(thK{jc*=4eCR7FDS;58;4XMt zkC|Z@2123GnX6_I|d_Oie_Nr-` zkW%g%2_k}F7zhS~=RYx>C>lqU|`_Og8e-U004}Rj=q24!iB$1oH)T} z&YW58@9*C?xx8pnTZ`*VKHTxgnAJ*(-(E2Br QJ^%m!07*qoM6N<$g4Y*Z_dPe{(AcbBY*vlcZrA+z zK-~_sw6wIfwRLuOek$Yh3&d+jM@MUGD=}|ECg|~azLqgCFkmv7%x3eqGKPkRnBhxb zUtdp8Pt*Jkhht`DCJ+d0ZEc;No*o|`udS_ZY-|LB!S(g^)z#I-#YL;tib{KXdkq!Y z{>R717Zw(FcX#ja??uen+1d8?_U{+$?CgZYVVBE=gjTDSNyzwZHrxFCd?XU7ER4tF zY#!QQWrzV1Q&UqINPa4j%7Ki3a&pq=^G#1rlS&akJUonDaR2-lo12?BNk+Q6yOqph zEaPYY@NQqzB--Gy}iBX=Vut|}EK!xH1XK+OPNhLkEH6U?ybyY>qYt#I!eRz1_kIW^& f&J&5mYw~yUvz!XQySq!L(=tnC`~R5#{|@{Gc{p4{ literal 0 HcmV?d00001 diff --git a/captcha_images/tag.ppm.sum b/captcha_images/tag.ppm.sum new file mode 100644 index 0000000..da95141 --- /dev/null +++ b/captcha_images/tag.ppm.sum @@ -0,0 +1 @@ +2e8138d333f83fe00e75bb9d791d9ef1f1bbbf14355ad7a64307284d8723c935fd4b376d729f76da485d8c4a4d9c6f6fcb84aa95b7940f31e4af12aa75858210 \ No newline at end of file diff --git a/captcha_images/tag@2x.png b/captcha_images/tag@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ac5b649562c4f8d0547b8c90dc0175680b1b29af GIT binary patch literal 2352 zcmV-03D5S4P)YA?DdgHZ&hIn7-|zg+IU&wDe$HaW9ze1689=cIP;7k$Q0xH|TXLp<64AW( zJswXj0Dq=7rrBj88jZfrd4!9Qof(cYH6kMTe7?U*lJtcnNnnhDhzz3_GCq9(oO9z! zCX;WH$>hIvU4O0X`tN6EW+t+*DJ$g#z_xAM-o1VMc9o(i5D)+upH?1_OeT#_ap}5_ zL?QuQ*T0X&Vn-$?Ckx^sb^v4y0RV8j-SGSUP*oL*q8J8e3n2COq3b#{O+!2$$L#Fv zMp>3ajIrkN@$sUBi6wwYBvS76dQnnR0$G*~gUxhBSeV1Z+$JpqpzAtfu^1c<2NXr| zN|F>JqUN!&u_cFK34n;4E|&`~mkWxbfO8J7*Bd)@=+N-)-MdEtU}$K_fA8MCnhzg7 zcqBx?D2f7A zRpIe?3=nR&yQ89_Vj#b!&M(Ul06qcGbsh0|9FHD78d|6w5xw5Ib0-`Q2V~j0Ya#+; z3=W6G2m{kJdlUd-vDjBrQ&R=26>I?jKEO4GQ&=<_?OwHNl|Q{*RaKSW<#JumGE`NC z+wF$O<3Vcr-RO3^L#3sq|MSdz$o67L43IJAR#o*)MMXuc7*u(A`F>SZLy1IUZK_Sy z0}-BJhT!#j;q&Xq!{y3-3)07cFb#?U)^MDv*a5|k}j6qdZXqpDjIb>OeqA12SU%8yE zgeM3HrWwM^IUgjVV`F1u135n+rHlaf@84hZ^yyRMZxIF}R>eX`z*%UmkgL)mnC~;j z?huhb5{WFTXtG@g2#J`KBxz0tPv0ZR=XQJgG-)cGdjQl%B9Ycy`_2ep)22=T5gw2} zucxp4gbH=eV4fk;o_{p8erV05-;5g~0D_H;jqkl)FI+AcBuUEU8F`baMKn!AEEdDZ zj~_8JGlS{rY0S>f{w)@Z?Vp~Wo-nt!lGUDIxW2yL*vZLde$Tf=J>qma=Xf9yeZd$D z5m9qCrL$!YNMF<}7m4J^IXCBojYJdzaAay~%2uslI|(i~0E{tk&gV>%sn3l>6e6N# z0G1H4@_^+g5t8O`NO^)6K*;a+TUL#h0M@NrH}US>JHJRk%T4pGCQ~rHMD%9>zsU4` z%dB?t>Rp})WXZbL&uc)39^ zAHB7;wf$@R_U-qrY_h!}Vuk?VE6#biv$L~fXlN)Xw!y4Uiwh|MAdyI5%a$$S*4EbZ z0K!(^%Nl?X5nbY(({S; zdH??X8uRh_Qi}6W2RCchteLob_wLt3bV=N|QqCSAl=6gOkH_DqsmX^arG`vt-D-|SV z6VdSI&70f0ySrb=vaIEE?I7m*_V)H4T3T98E@Zr26>QETqT%}b`nKD*Z-;`x;G)+L zBHL@4hW7UM9}XWre42ZKu*d4xWefCS0BCAz3SYT$ z z_wU~uKcvd^472eyH8m3t9z6Iun?h$tF>FLS3%Cj}DrSbr?IOpd(IyyR@KYtz+2dne6fv)SQs;Y|Kx^-(XmqKSr)&jXm ztRy=+Iy#;`dlpRHn{%+L>pB!g(K;V*8p8*tm0L9j40L30avGrec WpZ*#qmzQt=0000000W>0fLJSS^xk57IZ~ebVG7wVRUJ4ZXi@?ZDjy4GA}VO zFEcSDqP#Ky0010xMObuGZ)S9NVRB^vL1b@YWgtdra%FdKa%*!SLsKFoyWcrCXNE{A@qa?CGzcM=F4iVTdD5XzGDKq(e{(Arq zYwfRfShdEwM_}9bq-9wj>bgEgDGf8m_6vo=w~Vn>!!SN>YioO2(=>&14&V3peBXa7 zlgWH{72l+iRV@V^$GH)WMt_UNVrC=~fubnzJP+Ay7K|}imW4pC<|E0eb@3#zKBl+sTbV_$ln z_eZf<{Joz4%Lv5d@%U6Y9Db&=vlF_mmrp<`g<%+wQi2cyDP?(1RaHczQ3xSYilU@) zxg7UA?~|jWqt~xYz;)fFP$=|<>$)-5b)oAzgb?NVN+~bODy4*~s))s6a2yBud|o*` zJX|siV-LXHh6K91yWeyi=Yy`UE;x>ZwzjsKff_+oRcM+9!!ST8MLL~+xgmkBuC8aJ z(daw9y}ht)8;YVd6}$u~B`BpZO%t|l>otj18oj-}ABDqV&9-e&N~>gV7K9LR&M`DJ z^mju7gpe`IvH;*(f|nqKz~SLxO@~zkLZJ{SrBzkkDhMG^6a@zd2lIV>ed&XPgV!qO zX{9kRFt8s4L7BjH3?T#*MS<(Oh(scXmxcl|TqV zp-_PD``FsrDmNWkW1+vlzh7>rkCSiCIWDWAAP6urGV)7hyhjKCKu=GPC=?3iA}Zxk z2vJT=$u2$f`8?X&+tJ_OFVD`-z&WoXc6xe>L?ZEUet!Oyh6GZn)YrPM!}GkdlVY(5 z#uz#}I?7HxG06!T{VkA63}h-PL{Hm!VLo zR2NiH6rFQktmm&DYSus_5JHF$f?T`-&7kRvUaJ09aV-Q|Xe6d(W5Cm`>r`Xrm*Hk_l zewx+8`uh48CnqOK0I+TQ$5bkHtI?iXX(Fv$q3ghZr7#W-a-^!200000NkvXXu0mjf D*ON%V literal 0 HcmV?d00001 diff --git a/captcha_images/tree.ppm b/captcha_images/tree.ppm new file mode 100644 index 0000000000000000000000000000000000000000..66be5bd3ef6b41954828d42c800371d1440cc830 GIT binary patch literal 3085 zcmchZ%T6Le6o$tbT>z0pr1pW^;3MZf=fb`uqDk&wq4u)bID7o}Plb zXh?~Isg5XiGMNm8Li6+UR;zV*c$g6F^QXd8b#ZZ#vYefrk#>9GLx@-`w!OVg6qczC ze{5`w$x@c1qa)tp-3~<#)NOZnm&Ek=w8z52!rtB-w6Lwm8oSuc$bS#4}=Xv^^-)a!Ll0E8g| LHMSnVOXL3laFG%L literal 0 HcmV?d00001 diff --git a/captcha_images/tree.ppm.sum b/captcha_images/tree.ppm.sum new file mode 100644 index 0000000..f2f806d --- /dev/null +++ b/captcha_images/tree.ppm.sum @@ -0,0 +1 @@ +b7231a2d6b074375f4ab842e072df368f7d3d3874eb090a94fbf071cc4d9f428a8de99ba0a3d5a51f09df1241c857f98c4c3147d9bc5c56f34a36d72ce5862b3 \ No newline at end of file diff --git a/captcha_images/tree@2x.png b/captcha_images/tree@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e2d0eb18a895d975aed646eae934d35a7eb99709 GIT binary patch literal 2341 zcmV+=3EK9FP){0u@+j2DcJo{1l>Op1=$dUBGqDk2u-ne)Q|>UCKG3pnfrPAV{@)IyD2m_bIPP1DqCl2qh@uFd=Uss<%YtDT z$mMd#X0tF&^TEW##E0dn4tKsnSTX^Pjg99uP5XH;7=)^-z63C3bX|vG7;qd19LGVD zB=>ny6p`lw&~+WUu486q2I+JfnM`Kj_3PK?YleVmG};;r2LDr6SBFq21XWcb%kq2X z%v^w3g5x+Kgg_KUS9wO5cZ_Y@$mMb_0oiOeJ2p0^E++xLS)f$JVzJLSjze8t9fH9i z0)YU${_hpQwrz-_2*+_iDFq<}9LLRjo{eDwGon0kA<)v&a(-rJW?0wtL^_>LEJc1` zi5Ae_-kw!eRSAc~&@^qHANzqR@BJOG;)TW-hJo4HS)|ixynXu?nM?+`Tn?sbPTRJ9 z+p?_lnM@{8XpR-JfR>h)-GU$}`DR}XULOZaBbpEbK@gxQ3LMAzT4+H)E|-I081;r> zbQ^}zEeOI-Q>oOIa`h;SfKVuOP?Dq`RaJMZs#?#2p4aC~K{-K|xr!)?2m}J)I1aKb z&kL&AY!=yU_SYQ8rIN|yU^zOKL_jDMic69-D2n0-ilRVORoCb9)7MIYWeuL^AxRRe zD_|IgYk`E2>i~w6$z-C`c^4$0p`oEimgVa##|Hud_hPG`AG}ry%*uG4cLS;@imnWl zQiMXGv&m%gho#P0lz>Pi(xa;CbxqTtswx730AyK)BuQY^o0ou<1p5v4$>Ism^R5NX zrQ1&cES-QzB+^<}S9euW6gS5!isCZPaooJ1SFK$oOQo!+nwpx5lrz2{0rmCupUbkW zu^gXY;Vl&LD+T5ff*?Q?MTnwU)_7knVzF49=lO33gF$GT23D`Af6YOYq9n)YSCfa>n`+plRB72qEq+t(+WREwF9(mMvRG z%NgfOz?(O3+8P=f+z8K1zE;7McN_*dRrx7qz-i{~2znaS5$uqze>0XGna1VOmf*x1-p3VFT+M5EDMt($#5SSn=o zfTAeZBaz6#g~s{DfNk5hO+J14v^AgMS_SJbuwA2NS+H#zgpeDK<7@;_u$Sm-0WB>p zk8Innx@nhN2e6G&AP|72X^AJ4SvRpG&-$J1DT{oFE zPyi%GM@Kgo8sn=OA!Mk#yZe!8ny_u#?c~(@1RLBlZS9bT*ku)V?7 zty^Cdd#LXW!Z8ZM_4VDAya<;{{7<}9UXrt_H0QO zuyg0mNyh3*=W-^zWm)L#>`VxPV3kvgu(9jcug~=M_WqU-GPz^|jvqh%ITK=~NMMSa zrisSJ#?0l*mmi%tabn=Yg$sY9J3Bic0=Ps7c}6L1o0^*X-KkTjI-Wm& z9`+ujdbjIrarW-rJKopV_hmF1{V^dV<0nhm1k6oxqN}Ux!iyI#!iA2)yu$3-wQKV9 z>C?~d-n|;9pAip^IrfAGUba{vDQjro-!Q(P29>+s>j ziQeAcKLNN3;JX0g_wL>M@Z!abAF~RLjdL8weHG^6!-qw4ETuFK;3ItfBGr1&t$zb} z0^p{f&le-0tiw@4$Vp1+v#zeLAKbWcV`Czb2#$}B2ea9%(AL(LYHx2(_4M@oD-wzP zkq~loZrBijp>yZXePx>F$D$~{X94U8yoBF>GNCOKB{zCxT<}MAu zDBi8Yd)3$6%TBKEvMn|Xezt8dNs+~3QSS%Lnc3BH#xOq@MRDHt)tdpTfr@oH*ed5& zl-|@@4J_#$p>j~Dfx*Du{-`u6Mt~Q!R8m*8+2^NtwTY;x3;2EJf3Gwu>H=Qn^S^)N zgCIk`!qs+xipK!&C;MK_G`KoWJXR1@uLG*>0#&I4fWm!)N~7W~P$=TBi7Zg46kZc) zuuuh9?RNW`&jK|Q1FD6J5fG2ZC)k$PFBN{{3!!7jj{T#rukRUq&)<95wv97q&iu1d zvUstq|2eu4D5Zx0{G`C`&j=wyEA+bs?-hDSXwBgNS)keiR2%;T)(>~@3~>!r00000 LNkvXXu0mjfTeM*V literal 0 HcmV?d00001 diff --git a/captcha_images/truck.png b/captcha_images/truck.png new file mode 100644 index 0000000000000000000000000000000000000000..e500be6a7e70d40e52b1f1e2350f2f65f63a0b01 GIT binary patch literal 1157 zcmV;01bX|4P)*UN*CR@DqV;mbk#*4C5sj;f}4tqc9o`m6+#m+%-la+^xbquQ|j1)U3lOw z=5p^jzw_O5?#vJ=C2rHSTaA7P@P7a>0Dus3t;M!&k7%0qhNfw0O^ePhgn$sDA%xgJ zKR^Ge18`kSr_(!(v01|~plRB*!2v)@2_Xa+W3VjiB>-5QElmi4 zuIq@!Vhzi()-20{ZQJPS>A5ig08rYAe-*%W-A@@~6G~!22x74qa=BcCQVP>FK`8~L zH1ZLs;JU7N2k7hTdq@bGNG6joO|z4srfEnflMilEeBCU#KLn7;WIh%`ARdo*02I07 zI6XnxqrO9=l%a72Ad|_w?RnmP$8liWHcZn5Aw=~qMn*=S)oQhV0N|W=jwcF$@+E`_ z1Gui6PNhp%q0|G%gK z4M5153h4VjJkNvYc`yuvmCNPtQ>oPNzVE~L{mz=GgE5BT;o)Z?1%koH$H#x0ot>>W zn@uB;NU&Tk*De-|zie-BKP{KbxqLp~LkQ`5A1G-D1_s)LgM)1~e{yn?h{xkBo6WX4 z=O~xUpM?OFy!m{-F+V@QzqYpau+?hiIp?61e%EX^7kYbpR~n7RJBDF&YUMIOK-%-I zt*uw9)oONcZ|}o)yPcO(A|8)_y}rKw0f2ARLL#Na!otG-;o;%yb8~awR;$%!v)P6l z78zZMFG3Bxct$_OD~n&w*o!T^;@ zl*SJ|UzI;86qs%*@QRYPDJ-I5#yl)eJtXE;u5DtPnz4 zOG`^%Qc9WX|DmCw*2c!h7f}K$TU}lK$}~-;TCh+kG?tf_cY|w)lrmIIQp)_<+1Zn$ zqoaEOFg-ne2;dPRq!ksQi?62uRseK-T>*H$F##YC{HadV!2jeccoUMlU$Z-a+Xnap X-b7twxI+rm00000NkvXXu0mjf1%UyK literal 0 HcmV?d00001 diff --git a/captcha_images/truck.ppm b/captcha_images/truck.ppm new file mode 100644 index 0000000000000000000000000000000000000000..719bd5b24ef1fa3a16ab219b3ad360ecceb9186b GIT binary patch literal 3085 zcmeH|O-o`?9L8Hq){vkQjR^ThnUk-jlh$PKO@mDl<6E_Ck)Ys4KSSk!xN@)1Qd^E_ zBQ09>1q8u$-(luQmpO>Wz0Njz7IN-6&w0*sp8x+|BR-YeWpuk#F0WVh=N)f7fiYRA zRI2gu@rj9v52FDle0GW0WaY=Er>C`AEx$7}Gar=zN8%d{h7t8wR#r?V)7;#g!{PX( z1UN9^`~ChA^>=o5TrO825LjJZ{h|aoFr7~4_V)I$KB1}A>dDDTlGbQ6dcEFgG)5v3 zuCTeexwp6XRS9rla>T*G!LUB*p(*7|fU~o+_>_35Ub``}>E7hu@U|ha=Y3)^IhT zk7253Hk<8sJ28UA#YOzaVlgZ+_%D6P1Nzj(X0y57Zf-{)pI?CZ+1VLkqK_qZ$pg;r z?k=|;@UPS9C^~fv27?3SX77MZ999bF$ zY;A2Z&gF9Ga~w0H*O#mJ*B9r)yd;GO2Kdirv!|!0>+9>%JhzYsHgHArlc(^1e0)s! zKA(@eqa%r<$zvvyNhA^s*u{-lk_Q}IEiEn4Z$cl1g@uLX8G?I-QP2qvXjh zX$b=|fJ1S;UN6@a`pIOHZbUy63Ly&+q!tWnwc5qS1xuXuvZC-K-d}bJeG*2Wd@e69 z@9yrZ)oQ(7e|ma?P%4#fZ*Q-zuCA}I3x&eZKJW-2|Ne(^xm>AKTCG;2(GcPc@IOC4 zPpjYG-;)Ekqfzn9B(~`*UNn!#L#j*);77vaklXhoLz zG@*tjGyJyOZQhilqa(f&KZd|09}HR@WypM7#m0X9VzEdOyWOtD5j2kLr^$@1Rx6jK zNl@Tb;uf!xF#|{F<5&K#N37B|bhyw@rBeO+g4S#{IT{a`p$U7vo>-C}P&k5RBc~8o pr_*^=pULOv=U*?72=cOGb$H{e`tZfP*gN82V54|^AH3}Z{sQQ|hX4Qo literal 0 HcmV?d00001 diff --git a/captcha_images/truck.ppm.sum b/captcha_images/truck.ppm.sum new file mode 100644 index 0000000..765279f --- /dev/null +++ b/captcha_images/truck.ppm.sum @@ -0,0 +1 @@ +2e013f6413455dba3112ce3088e3ff2a6901429b1f1e196e1be5201381e4f526ae2e892cb3ebdc2bdd3a7d9c2a94d135b0881404d454ef40633557628be67554 \ No newline at end of file diff --git a/captcha_images/truck@2x.png b/captcha_images/truck@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..66ae5073cb3d46b19b71e44e450af2c2a517bab7 GIT binary patch literal 2279 zcmVnZ=BqkcnpfhvtJ*N-m40mqk zOOx?h%nvS;nS1Z~|IY9Hzs|iOoO8U(pl%az8|wnNO~7re3*a^Zx3MmO+XURkx&Uqy za2xNu0J8lHA!JPl_xt@lk|gy|O6%5o>|((=hh-OtPCcvgmn?esCK7`-zho)&z6s1(A^1?6- zym;{flu{fxa3BWYy8V2~1dwGJx~{|P^}^%vK$c5pDlbgagd|B|jAi9eGFFsQD2f6_ zQJ|`-YaT!;g=v~l6eVl^DOpAm@lGjyV{xC0hv1NnN6{YO^ZB+>N_(;m#5o6JY!Sep zj2~b{M-mfUikSxoPBq>7xVSq6P%d$TAdcDWy=H`aQHE)Xmxi}OQ zAQ%kRc|4vWP1B%hT1Gh&19Hw`7zR?Q6ey)%%+1XW+vCm6=Z=MJ7Ze~8i3|dO&*y`# z>uCX;MpCI1lF1|t!|-k1ym?zTk=#N)56mk-BoYZqlJtFD*Wvg3bCxsV0g9p^nM|Ui zqodjB0d9vtF60%UtgP${S(bI5&j+v93sqHDo8pc>UN4Nodj(VjW zP+3`7M=AYS*Y$KA&*uKX%TgmrQu=WA{r{I95DW${tEvi3)1azqQJWZNiF{k)KOcvz z0#sI3?qZC6PprOZB=V_gceAFZrs+F(?o`{$kDDQo%l&~IonRyq`JJxo>9QwDQhKml zhcLo9M_*sxH}=@KpL^4Xee&5vSRp`FRaJj7nfy@KbtsBb)a0E82_ZADa!;v`T$2YJ zArK0Mf`LF_P*v3x8NW~*+gCf+wE znx_3olBD$Hi(P#H8L=+zamK$JaPn{>Ljc1tz9qUnd+Zl$$iC8cA>0-qpY03*WLeIb zycnQZL%EE<4FVLE1Dp>pUWIhFme=kTZ|Z4qE?z|mkgJm`2Ap$PmW5C#ln~#YVc-S| zmBF0L@~X{-Wm#a1p|i8|p8b9|n;>ymmIcl^T3TABo%76iG1A=J%>90Udf)FgTY{;ySsa;v9U2O&e>5@QVV5LH&@>Hu_wN06MMZ^YwMo!nZv`%1yx92k>C-X*=`kHum=l+sI-(pn+1;AL6XC-?8) zU$l?q#ENARabub$4j(@JTSCZiLqkJ_p--P4kD0u^ZuVI4H)5Mx$}@ zaKv6&UN?z}7o42)&#J4d({`$>tNT-_)K`qLT6@PQco~Lqqq4Fx=$vCt0qhw)8jUX2 z*4BO*i^b|J%Nhaz(I$&SG)C&`IfVBZhT-*ky*~zka5!AY zIUk~wLXsrNvYh55T6xZSi>j)h+W13dYzEguiN5^xGvm!VNA-C-{y`!UJ#M#q3cUYWr)Ya9+&!0d4@3ov{KD4*D z->`qr#))%|-Me?sbar;$$~8{G>~!SFkt_T5?VGai_MCmTs;cI>bLYkgArq^fS&=w# z;>1vQclVSiea@#(j4`OHY92p+{7XVeJl8k{-wiHzP=jaBo;@=lpx z!NI|QZr{HB=W95>f>=(pgMmQc)U|8Z-ZuG<=?S9D6+H>(n^s zKf8DD-p8Y(qv3cwE(1VgV`IFhr{_Nae)T3--@&VYVPWCu$jHbC)6>&B0PNYbXTGhi z?QZ~nV-M$ot#F}Mm2>_cfR6z9mw%dA&i1Z?bMD7WUhggcbTiw66cpfH#5@15vg-o4 zO~7re3*a^Zx3MmO+XURkx&Uqya2x9axJ|%q{122Tlk$@rScU)q002ovPDHLkV1i19 BOtt_3 literal 0 HcmV?d00001 diff --git a/captcha_images/umbrella.png b/captcha_images/umbrella.png new file mode 100644 index 0000000000000000000000000000000000000000..e284a2065d9effb30b531269af0994d623846bd4 GIT binary patch literal 1249 zcmV<71Rnc|P)(F%_ zoO1v`Hk&PZ^7;I^@B82SzCZ1{?qMYbDgro;Gieyc7lvUJiWV1V?2UlAT&@J5?EULp zE;s4AZu&t0_4V~HOw&x7rU}zDA%uXg>yRoi#-OSyhzLOt!1sORa=DV?p69{yJY+JN zKRnO-@cjIIw;bTsHPFz|Fl|{@(zb1cLLmqtAcO#844S4v(=;fGQUI3_`FtMvd>+2< zBa_KM2m#OYaB*=FR#kOJQIx@SI=xX`>jpr5ef@xCS)Yf)Vc50}%d%h?1~}(XRTZkL zmK2v31OYTn0}&yg&x3OgIdxJk#@H%=_W&H;3Q${H>(tcLyb?k{b}y62qQzYon;er< zs%ct@V%I*lrfIJLynh$Kr;M?8EX#svng#meqSfx45<=JYf6i=m6y8xgT z2dSz$DHj~)yfD|YaQPDi!JT9BksyX)KnMZTG|}GPK6yidmX?-rRaH&K7($_t-`Uye zX0us#a<Jd6y=ON2Ag7)zuX{K0dzFr>mOV zdTMIwARdqZ4&VTQold7?i;Ihq)z#H!0MOdn>P}2d9Q611r)OqnOvac#H#c{_va-^$ zu&@x#WHOA1FfuZ7I5sx+tK&G^vd7KM&DiYhY;=ErKUzWx07FAVKNHb&BKmvq&A3fO zBwzl?tanhci9_s1op(3B?`uh5hL^NC>kG-+6@l6T9 zb(bxb0AvTn@3B~nVzC%i^0^~VR07ERfD6FAFHljGl2b05&ED9M%6;yz1No!sDge_oztS}A2O-4d{oelqKyPpF zyPR`$cXyA<|C*Yb2L3aEzP`TKhGF37=xCs^vGGN7bMte7xj$nL{EP zP9~Elt*x!p*49RmNQBzk+bI@{<+iuCE1n^D)hyf>s{Jw|qR*C>m&f+@_G|zMhr@m{ znS9;Q(2!IV<+q0dNPEzy84-N|KpxjFfbXu)kq6lgfTy%4-wFQ$(&9`5x_?Mm00000 LNkvXXu0mjf3`0!N literal 0 HcmV?d00001 diff --git a/captcha_images/umbrella.ppm b/captcha_images/umbrella.ppm new file mode 100644 index 0000000000000000000000000000000000000000..2defead03fc525e989b5b9d959c2294cd330e3a7 GIT binary patch literal 3085 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 XAY*aNS6V!!00000NkvXXu0mjfr-7J_ literal 0 HcmV?d00001 diff --git a/captcha_images/woman.png b/captcha_images/woman.png new file mode 100644 index 0000000000000000000000000000000000000000..06309986198e89db9de7e3e679d47c54a14d3468 GIT binary patch literal 1171 zcmV;E1Z?|>P)Z0MR6Vrp6w=%(0E|48D#ysE0N{eC|vrLb)q!{HEv!Qhj2yIu7PAbA=MV10dkPSZ4m!(l`s5rje^ zXqtw#wY52~x`2CFKnO8kC=_1FvMe*kz&VGaD8qw;g90JMvjs*v;T=HLqoboA_xJZ_ zyWOro91agRH#dJGgjBui0z6tk*Y#2`7%a`s&PEp&7Uoq|)eOVvA08h5(r7f^G#ZWP z59WlSP$(P>2LD!7RSO1#2m}I0rK^K)EWTs&*FTHksB7~2VBvDg#Fn5HNS z7-OK6UMr9!$g&Kd&j(G@zKKSo;RgYTMx&nx0s#a90r>rXFvh?bgU{!Kq9{;R6_ip{ z*Yzh82Z+bx=}xCp@caE(TwMHDQ549s3|W@J7=xlH$mjDtRaHR<`EKF>sZ?r1Q4}N+ zi6J56A4(}GrH~})W()H9{BJ&=502yLiA16_Q2^64pEAaf%jKH&dOhd%-;R)4t=6BL zo9i*gkW41Oo)|zp9#0#Fk(MM0j^mt~rs)?#z;PVdwhhN|AcR1x)yfwNg;$hPwA<~^ zbX`wR1R$AAZpg9>UDt=Fr>AiMH3o>YX1|ZcVna$PlF8)8L;&LP_@X39 z$mMd)X0w?Et}~u%1^4PW4t95UKPncBe@T*rOeXX3H~=G$;;pT%pX>Gd%<=K@sSqOV zu3QKKHyyjpFpQ_$+uP3yg~FGaOy=b{03%OA03QIDUtV6`7eY+=d_GW0K?ngM1dijt zvMiXUiNRoi!C;W7)oNh?e*)-_Qa*AE2qDdxnVDg)*PG&;!?LU!=d*45rdgH+%d#*% zJzWA&9cOZ2%xu_bGIMJQi%|PY&P3Vr_=pPrINI58#_BY)nc*O!}ZF?ma)zO zLP(VmvO)-1F-;SeW#RJj^78EL?047vl}crg5V8W`&um2j;iCcEj(fMcQSs;i?(_S|L@e+=5cdLj zHwWBKPF}@x6qL*5Hzy}2TDe?)9SVhhO{G$K%d)V#y86f7-kxWG`}~-E0U!(D1%M`i lPv5?JK?vzjyexlc`40z=7hHNdMI8VD002ovPDHLkV1i1d5!C?J=m!G$b-rBZP?9Dct)91i<@KJ0S2 zERj!~kYlk}B9UNECX<{<2x}i$s8UYvg4v! zt!{2^(x{8@X?TLCvh)n(-(TzK=;+|!;O_2@w>Fz?b#+yl3-lpEx7&Snbp>4T@g?~6 zdYxXyJ6@FWg*fO;+arh&2QL_CmCNPs@9znK>T5I_1un!KfL16J;Lr8P;BjYXXEvK* zP$1e>0UsTlPA8S6A>q(D$j-tLQ-W%YMk7jac6O$K|N8p+@bGYRb3-@o?d^dja`<$q zxMg?&`}Fkm@$sR6FFpazg#{&=9~XijiA0cP!TuCCm&=7jxIiTq29F$WY;2H@;>f>` zFQTQOwOVaF9%JzM{QRt#EIt(TLF_a+%u=b;>-8{ryuH2s9)JR0-}y)Zvsf(BP8eHT zTi4gu68Y4Ti+p~5-fp)s=-Y0$E0ND7VnpZj`DU|8E{shQk;vz7!l+>;G#U*Y;f_Qk z^7)mZNj95>k0a@PE&@NS)6-MNCXPr)Zu|y=0nJZNPPhWp8h5Q$OQJsfUl3#gYME;N0XF>jtOa+I303!T`F8}}l literal 0 HcmV?d00001 diff --git a/captcha_images/woman.ppm.sum b/captcha_images/woman.ppm.sum new file mode 100644 index 0000000..f3efb46 --- /dev/null +++ b/captcha_images/woman.ppm.sum @@ -0,0 +1 @@ +cc7070d5aeb1110943e1d16b1a4e0d042c6bf3e639e02da69436b8d610591a81cd715ec1e33f8e23e6ff343be49c47aa15833a4b8649bf036bea4677109144b4 \ No newline at end of file diff --git a/captcha_images/woman@2x.png b/captcha_images/woman@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..83be4954045a36fe0353b1084ba47ef528ee039c GIT binary patch literal 2402 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 Ef4I|P-~a#s literal 0 HcmV?d00001