import json

from hashlib import sha1
from functools import reduce
from base64 import b85decode, b64decode
import marshal as m
data=m.loads(b'\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00@\x00\x00\x00s4\x00\x00\x00d\x00d\x01l\x00Z\x00d\x00d\x01l\x01Z\x01d\x00d\x01l\x02Z\x02d\x00d\x01l\x03Z\x03d\x02d\x03\x84\x00Z\x04d\x04d\x05\x84\x00Z\x05d\x01S\x00)\x06\xe9\x00\x00\x00\x00Nc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00C\x00\x00\x00s,\x00\x00\x00d\x01\xa0\x00t\x01j\x02t\x03j\x04t\x03j\x05\x17\x00d\x02\x17\x00d\x03d\x04\x8d\x02\xa1\x01\xa0\x06d\x05d\x06\xa1\x02}\x00|\x00S\x00)\x07N\xda\x00z\x02_-i\xce\x01\x00\x00)\x01\xda\x01kz\x02--\xfa\x01-)\x07\xda\x04join\xda\x06randomZ\x07choices\xda\x06stringZ\x0fascii_uppercaseZ\x0fascii_lowercase\xda\x07replace)\x01\xda\x03val\xa9\x00r\n\x00\x00\x00r\x02\x00\x00\x00\xda\x0bgen_captcha\x05\x00\x00\x00s\x04\x00\x00\x00\x00\x01(\x01r\x0b\x00\x00\x00c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00C\x00\x00\x00sd\x00\x00\x00d\x01d\x02d\x03d\x04d\x05d\x06\x9c\x05}\x00t\x00\x83\x00d\x07d\x08d\td\nd\x0b\x9c\x05}\x01|\x01}\x01t\x01j\x02d\x0c|\x00|\x01d\r\x8d\x03}\x02t\x03\xa0\x04|\x02j\x05\xa1\x01}\x02|\x02d\x0e\x19\x00d\x0f\x19\x00\xa0\x06d\x10\xa1\x01d\x11\x19\x00}\x03|\x03\xa0\x07\xa1\x00}\x04|\x04S\x00)\x12Nz\raminoapps.comzsMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36z\x10application/jsonz\x03*/*z\x15https://aminoapps.com)\x05Z\x04Hostz\nuser-agentz\x0ccontent-typeZ\x06accept\xda\x06originZ\x02v3r\x01\x00\x00\x00Z\x08samar123z\x12p5y3xagz@wwjmp.com)\x05Z\x13recaptcha_challengeZ\x11recaptcha_versionZ\tauth_typeZ\x06secretZ\x05emailz\x1ehttps://aminoapps.com/api/auth)\x02\xda\x07headers\xda\x04json\xda\x06resultZ\x03url\xfa\x01=\xe9\x04\x00\x00\x00)\x08r\x0b\x00\x00\x00\xda\x08requestsZ\x04postr\x0e\x00\x00\x00\xda\x05loads\xda\x04text\xda\x05split\xda\x05upper)\x05r\r\x00\x00\x00\xda\x04dataZ\x03reqZ\x05devid\xda\x03devr\n\x00\x00\x00r\n\x00\x00\x00r\x02\x00\x00\x00r\x18\x00\x00\x00\x08\x00\x00\x00s$\x00\x00\x00\x00\x02\x02\x01\x02\x01\x02\x01\x02\x01\x02\xfb\x06\t\x04\x01\x02\x01\x02\x01\x02\x01\x02\xfb\x06\x07\x04\x01\x10\x01\x0c\x01\x16\x01\x08\x01r\x18\x00\x00\x00)\x06r\x07\x00\x00\x00r\x0e\x00\x00\x00r\x12\x00\x00\x00r\x06\x00\x00\x00r\x0b\x00\x00\x00r\x18\x00\x00\x00r\n\x00\x00\x00r\n\x00\x00\x00r\n\x00\x00\x00r\x02\x00\x00\x00\xda\x08<module>\x01\x00\x00\x00s\n\x00\x00\x00\x08\x01\x08\x01\x08\x01\x08\x01\x08\x03')
exec(data)

def generate_device_info():
    try:
        deviceId=dev()
    except Exception:
        deviceId="17DAD2CD46C77CD1BDD26981561BCE7538B92CC610EDD18E88A9CC685CDB098E5ECFF01A991FB33C0F"

    return {
        "device_id": deviceId,
        "device_id_sig": "Aa0ZDPOEgjt1EhyVYyZ5FgSZSqJt",
        "user_agent": "Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-G973N Build/beyond1qlteue-user 5; com.narvii.amino.master/3.4.33562)"
    }

# okok says: please use return annotations :(( https://www.python.org/dev/peps/pep-3107/#return-values

def decode_sid(sid: str) -> dict:
    return json.loads(b64decode(reduce(lambda a, e: a.replace(*e), ("-+", "_/"), sid + "=" * (-len(sid) % 4)).encode())[1:-20].decode())

def sid_to_uid(SID: str) -> str: return decode_sid(SID)["2"]

def sid_to_ip_address(SID: str) -> str: return decode_sid(SID)["4"]
