#!/usr/bin/env perl # KryptZilla by virii/Perforin - adamas.ai - virii@tormail.org =pod KryptZilla - Feeding Filezilla with Twofish KryptZilla encrypts your Filezilla files with Twofish. It gives you back what Filezilla missed to impliment... privacy! KryptZilla by virii/Perforin - adamas.ai - C3L.lu - cypherpunk.lu =cut =installation Copy kryptzilla.pl to /usr/bin/ Change the properties of Filezilla so that kryptzilla.pl gets executed OR Execute this command: alias filezilla='perl /usr/bin/kryptzilla.pl' =cut =greetings crypto.is cryptoparty.org =cut ##############################[ Modules ]############################### use File::Copy; use File::Basename; use Crypt::CBC; use MIME::Base64; use Digest::Whirlpool; use Tk; use Tk::PNG; use strict; use warnings; #####################[ Variables and Arrays ]########################### my ($password,$user_pass,$txt_bar,$path_to_xml,$buffer,$cipher,$file); my ($crypted_content,$decrypted_content,$main,$pid,$modus,$label_Image); my ($version,$filezilla_path,$keylogo,$iv,$whp,$digest,$inside_filezilla); my (@filezilla); $version = 0.2; $filezilla_path = '/usr/bin/filezilla'; @filezilla = qw(bookmarks.xml filters.xml layout.xml filezilla.xml recentservers.xml trustedcerts.xml queue.sqlite3); $keylogo =<<"KEY"; iVBORw0KGgoAAAANSUhEUgAAARgAAAD6CAIAAAD1F8/mAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL EwAACxMBAJqcGAAAAAd0SU1FB9wMEhYeB8RGcV8AAABEdEVYdENvbW1lbnQAQ1JFQVRPUjogZ2Qt anBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2ODApLCBkZWZhdWx0IHF1YWxpdHkKCUd1bAAAIABJ REFUeNrsvWd4lHX2Pv5M7zWZSSaZtEnPpEAaSWhJIJQFITQpEXFViqysuKtiuVZd9auo7K66K4uu gCAgCglCgAQIhJJeSEghvffJZHqvvxfnz+c/i8Kqq7vqPueFF06SKc98znPOuc997kNwuVzYNxmB QMBwww23b2dE/BLghhvuSLjhhjsSbrjhjoQbbrjhjoQbbrgj4YYb7ki44fbLM4Lb7cavAm644REJ N9xwR8INN9yRcMMNN9yRcMMNdyTccMMdCTfccEfCDTfc7jbyT+0N3auvda/5qO/6+7jhhkck3HDD HQk33HBHwg033HBHwg033JFwww13JNxwwx0JN9xw+1aGzyPhhhsekXDDDXck3HDDHQk33HDDHQk3 3HBHwg033JFwww13JNxwww13JNxwwx0JN9xwR8INN9yRcMMNN9yRcMMNdyTccMMdCTfccEfCDTfc vq2RfygduXvZd9WX+7F16n5s3TxcZ+/bmNPpJBKJbrfb5XIRiUT4NzxIJBLhMsKP3G43PGK1Wkkk 0v93aslkdLVdLhf8JvzU5XLBpYYfYRhGIpG+fvHR1/RDfS9k/EvF7T9pVqvV5XJRKBQCgUAgEMBJ 4EC7XC673U6j0TAMs9lsJBKJRCKZTCYSiUQkEuFxt9tttVqRIxEIBPg18EPwCvTfu3zyR/1cBPBa PCLhEek/Zij4YBjmcDgghiA/8bxQer2ew+Hc9efgFQ6Hw2KxOJ1OGo1Gp9NRoIO4ZLVaHQ4HkUik UCjI677xO/qhvhfckXBH+m96FLosFosF/MFoNFIoFAqF0tfX19jY2NDQsGDBgtTUVDKZbDKZHA4H i8WiUqmez2M0Gu12O51Op9Pp4D93xR+bzUalUr/xq8EdCXekn2tqR6VSURnjdDpRhma32yFJ6+jo qKmp0Wg0QqFwaGjI4XAYjUYSieTv7x8QEODn5+fj4+Pt7e12u0kkEpVKRSmc1Wql0Whut9vzW4DU jkwmf+NXgNdIuP0sDVI4DMPsdrvL5UIVDuR4TU1NVVVVBAIhICDAZrNdunQJnCczMzMoKGh4eLi4 uLivr8/Ly4vH41GpVLFYHBMTExcXx+fzwSWgUiIQCOBOBAIBUjuXy/WDAwx4RMIj0n/ZHA4HRCH4 X51OV1tb29/fb7FYOByOTqcbHx/38/NLTU0lEolGo9FsNhMIBI1G09HRodFoBAKBj48Ph8Oh0+km k2lqaspsNjMYDB6PFx0dLRAIxGIxFFfgohC7PL8I9HXgEQm3n6U5nU4IFHCyx8bG6urqGhsb+Xy+ yWSy2+1EInHatGlyuVwgEEDiRyKRHA6HyWRiMBhut1upVKpUqsnJyaGhoc7OTqvVKhQKAwMDhUIh jUbr6uoC/3G73XQ6XSwWh4SE+Pr6/tif6ztHpP/Bghi/Pvd3DHSzR6ia0+mkUChOp9PpdAIw4Ha7 wUmsViuDwcAwbHBwsKqqqq2tjUajSaXSkZGR6Ojo+Ph4X19fMpkMfSHI0DwvtfuOEQgEm80GiLlS qezv7x8dHTWZTBqNhsFgkMnkyMhIoVDI5/NbW1t7enpSUlJ0Ol1AQIBcLscwTKvV8ni8e33jDoeD QqHgjoQ70n/B7HY7oAVQBWk0Gj6fjzAAQOQcDgeZTO7u7m5oaBgaGjIYDG63m8lkcjic7OxsLy8v oVAIzoOu8L0ciUgk3vUVOBwOu91uNBq1Wm1nZ+fY2FhLSwuRSBQKhREREX5+fq2trcPDw7m5udOn T4c/UalUPB4P8Hf0hN/vm8UdCXekH+ASeZISsDutHgzDIFvjcDhEIlGv1/f19TU0NExMTKjVagqF 4ufnFxYWFhMT4+fn5xnQPEuaezkS4j3APwBRgKBHIpEgTsKrd3Z2DgwMVFZWQuwKCwv71a9+lZiY SKVSAeUDR4JXuat4wx0Jd6T/3PWBs44uCEQGqG0gr7NYLLdv325vb1cqlXw+32w2U6lUmUwWGRkp FosxDLPZbJ7VP0B593ckBJ0jMB2qL+RRNpvN7Xaz2Wz4UXFx8R//+Mdf//rXLperpaVl06ZN4eHh Xl5e2B1W0defBHck3JH+o/gbwpetViuGYVACgQ0PD1dUVAwPD7PZbCqVajAYKBRKZGRkfHy8UCh0 u91ms5lOpxOJRICtv07kuZcjkUgkyAwBnbPb7VCPmUwm8B/4K4PBQKPRKBSKxWI5fPhwUVHRvHnz iERiY2Njbm5uZmYmk8mEGIh86ft9s6RXXnkFPyjfJyfGrw+GYRhGJBKh4ieTycBIcLvdRqPRYDCc Pn26vLwcwGilUkkkEpOSkhYuXOjn5wftURKJBEfcaDQymUx0ST0btfe61EQi0W63A4+BQCBAG4pI JNLpdBqNZrFYhoeHiUQil8slkUgqlYrJZPL5fI1Gc/HiRaFQ6O/vX15eTiAQgoODUUvXbrd/ozPj EQmPSP+hoORyuSCLM5vNg4ODo6OjTU1N/v7+FApFqVQyGIy4uLiQkBCAIuCkOp1Oq9UKRx89D6qO oMiBKuheEQn+xOFwkEgkMplstVoNBgOBQOByuQQCobm52eVycblcmUwG7uF0Ok0m0xdffHH+/PnU 1FR/f/8rV66sXbtWLpcHBARAhgls2u9BcsX7SLj9W2Y0GlksFvyjq6trYGDAZDIRiUQOhwMcn/T0 dJlMhrzFbDaTyWSogphMpmd+6MkH/5fn2GQyMZlMu90+ODio1Wrtdvvw8HBnZyekizExMTKZjMlk 1tbWqlSqGTNmAJePSqWuWbPG5XJVV1d7e3tnZWV9/vnnS5cuZbPZfD4fAXffY9fRfy0i/Vzu9HhE +sYLgi6LzWaz2+11dXWDg4NGo3FwcDAhIcFoNCYkJERFRUFPRigUYhim0+ngKCN+KoBm8DzoQcyj NwX/gPig0+m4XC6KQhQKZXh4uLCwsLCwkMPh0Gg0Hx8fJpMZGho6ODhIpVJv3bplNBq9vb1jY2Oj o6Pnzp1Lp9OB26pQKKqrq4uKipYtW0Ymk0+ePJmWlrZu3Tq32+1Z4H3d7hOpcEfCHenfciQikdjW 1lZcXJyenq5SqcbGxiIjIxMSEshkssPhACQAMi4IXKgLBAN5ZDIZ6N6ehG7o3iLsDo4vMLhtNhu0 awcGBnbs2BEeHg4cCH9//8jISJ1Op1KpJiYmYmJi2Gz20NBQUVFRa2vr5OTkqlWrHnnkEZvNBqNN TqezrKzs0KFDS5YssdvtFRUVoaGh27dvN5vNyF3hM6Iwdf8g+ZMDG34uBxSvkVBq5+Pj097e7ufn NzY29sADD0RGRoJjoIYMutNPTk4SiUSLxWI2m/V6vcPhmJqaGh8fh5kiBBjAHyJaA1RB8FQWiwXc 4PPPPx8ZGXnkkUeCg4OlUimTyVQqlQ6HQyQS0el0l8ul0WiYTGZ0dHRiYqLJZCooKBAKhdHR0dA+ IpFIISEhXC731q1bmZmZ4+PjVVVVDocjJSVlamqKyWSCqwPnFaqm+3/peI2E279lbDYbuqIhISEK hYLD4UDQsNvtVCrVaDSSyWQajWa1WoeHh10ul0qlEgqFRqNxaGjI19fXy8tLpVL19/crFAqJRAK0 HQRGAygHhxgehMDV1tZ25syZxYsXJycn19bWQnljNBr5fL7NZgNnEwgEVqtVpVKFhYWtWrWKQCCc P38+JSVFJBJB0mg2m7OysohE4sWLF3NycjAMKykpwTDsoYcegjzT020IBAIAifeKS7j4CW7/rqlU KpPJxOPxmEymTqcDsAG4dsA50Gg0N2/e7O/vh2gzNTV1+vTp11577eTJk2w2Oz4+XiaT6XS6qakp o9HocrkcDgeaSEdlCeRaFArFarWWlpYmJiYGBwfb7XaxWAzOI5PJlEollUqlUqnwJKg1RKfTly5d 6nQ6h4aG9Ho9dJa0Wq3L5Zo1a9a0adOuXbs2b968wMDA8+fPHz58GF7LE3hAQRKPSLj9WKkdl8vl crkKhWJwcDAtLQ2SNKiRGAyGwWBoaWlhMpkCgaCurs5sNre1tXV3d0ul0uTkZMAe7HZ7TExMT0/P 6OhoQEBAUFAQBA0AG1A3CTAGq9Xa0NAQFhYWGRnJYrECAgLq6+srKyspFMqlS5fUajWfz/fx8REI BHFxcTKZzGKxQF0UGRnZ2NgYGRkJ79zLywvg9ZkzZ9rt9hs3bixdurS4uLisrMxgMKxdu5bP50Ov +dvwhnBHwu3fMhaLZbFYDAYDm8222WxWqxUEGCwWC6RhCoXCZrMlJibS6fTa2lpfX9/S0lICgZCS kkKlUgsKCpxOZ3p6ukgk8vLyMhqNCoWCyWSKRCLgLrDZbKfTSSaTyWSyzWbDMAxmaYVCIZvNPnDg QHt7u9Fo1Ov1ERERixcvttvtQ0NDdrtdoVBcvnz5yy+/TEpKWrdunZ+fX3h4+MmTJ1etWoXdISUB r8JgMMyfP5/D4Vy7dm3JkiUtLS2FhYVMJjM1NTUmJgbzYFd8neqOOxJuP4whSI1Op9tsNiaT6XA4 IJuCeGW1Wn19fQGpW7t2bUtLS3BwsNlsNhqNx48fr6qqEggESqVy+fLlUqlUKpU2Nja2traGh4f7 +/uzWCxI8xD5zeFw0Ol0gUBgMBiuX79+/vz52NjYRYsW2Wy2yclJyC0hgPD5/KCgoNHR0ebm5nff fXf79u3QtIV3S6FQ7HY7QCDwVuVyeW9vb3V1dVJSktvt3r9/v8lkEolEIpHo23S3yD+1Cdb/LqqL X4dvCVeij4n4qXBNDAYDDORBOQRAts1m02q1UPDExMTweLwTJ060trYyGIw333yTx+PFxsYCV4hO p0+bNq2ioqKjo8Pb29tisVitViC2WiwWiEtqtToqKqqnpyc5OXn37t0DAwMKhcJoNEql0qGhIRqN xmQyAWpzOp10On3WrFlOp3Pfvn10Oh1eCN4/YjBAL8tsNq9fv37Pnj2nT59etmwZj8e7du3a4sWL wZFg/Ok+Q0p4RMLt3zKg3gDjG/VeUD3DZrMlEsn4+Pjk5KTdbudyuQKBwOFwZGdny+XykJAQb29v KpWq0+n0er3T6WSz2SQSKSMjo729/cyZM/PnzweeHp1OZ7PZEJ0EAkF8fPzg4CC8rkQiGRoa8vHx GR8fp1KpMGLE5/MFAgGZTPb19YUhDl9f3z179rz44ouePSsikQgz6i6XSyQSuVwuJpMpkUgUCoXF YuFyueDDkNFRqVQ8tcPtR3QkoBoAxQH1WxBNTiQSORyO0dHRqakpoHhHRkZardbBwcHDhw9Pnz5d o9Ho9fr29natVvv000+npKSYTKaoqCgfH5/S0tLZs2ezWCzIvuA5MQyLj4/v6uoqLS2dOXOml5fX ihUrmpubAY6z2WyAtnM4HC8vL6lUajAYJicnKysrWSzW/PnzGQwGOA9kd+BUIEypVqvJZPKiRYuu XLkSEhKC5mRRILoP3oA7Em4/QFaMpIMRUYZEIkFBT6FQfHx8MAxTqVQ6nc5isRAIBAgaDz74IIvF unXrVl1dXWtr6+7du6Ojo00mE4AKNBotNja2vLw8IyODyWTCpBDEBy6Xa7fb29raOjo6Hn30URaL NXv27NraWsjWOBwOg8EIDQ0lEAhGo7G4uLiqqur27du7du3i8XioI4QEjSGlBMUVAoHg5eU1PDw8 d+7choYGvV7P4/EAgQQxStyRcPuxvAjJX0FoQp0fMpkMhxUyKyKRODk5yWaz1Wq1zWbz9vYWiURj Y2PNzc0jIyNvv/12ZGTk1NRUVVUVj8cjkUjZ2dnBwcFOp7OhoSE0NDQsLMzpdNpsNgaDYbfbt2zZ Eh8ff+DAgc8//7yiomLOnDmRkZFkMlkgEEBcslgs1dXVzc3NdXV1er3+oYceWrNmzfj4uI+PD0z7 gZNgGAaT8DQabXBwUCKRNDQ09Pb2xsbGRkREkMlkwAwBwLjPdcAdCbd/F3tAQ9rA/QGkAc1BIGfj crlOp7Ovry8gIGByclIgEGi1Wg6HExUVNXPmTLPZ3NfXp1QqX3/99f/7v/9TKBTXrl3Lzs6GGDU0 NIRhWGhoKJPJhHjlcrlSUlLYbPaZM2f6+vpeeuml+Ph4o9EIdZTBYLDb7dBTmjZtWkZGxoIFC6hU qo+PD5IXB+1VRAIkEAjDw8Pz5s0rLS0NDg4eGxtLTEzk8XjwuWB0Cnck3H5ER4LSBY4vHGXPM+d0 OoGjQKPRAAPQ6XQ8Hq+trU0mkzEYjJycnMnJyfz8/Dlz5lCpVDqdzuFwtFrtxMTEyMgIm81OSEjo 7+9vb2+nUqmBgYGAgAPgDszu/Px8mUw2Ojrq7+8PqRpgA76+vhKJJC4uLigoyGq1Au0VUjsSicRg MOARMplssVgmJibAqYaGhjIyMjo7OyMiIiCuoilgHGzA7cc1l8tls9lMJpPFYkG1B0zOwr0fEjwq lRodHd3W1jY0NOTn59fT0xMbGwuzDwsWLOjp6bl48WJ0dLRIJEpISAChhaioqIiIiLCwMJ1O19jY SCaTJRIJ8AxAYl+v1y9btsxut/f29gI2iGEYn893u92BgYEMBsPLy8vlckEUMplMVCoV6jdwNvAl Op0+Pj7u7+8/OTk5PDxss9nYbDaPx4PZDTqd/i+7I+TvcQf6oe5kP7U7K+4P3wZUgGwN4QqIcwDU NZfLBeEC5redTieIIqD0j0gkSiQSJpNpsVhAKV8gEAiFQrlcHhQUFBERIRQKvb29KRRKVVVVb2/v 2bNnn3rqKalUmpiYKBKJrl69OnfuXIFAADme2+0G0S+73R4dHQ3ud9fb9nwEjRIiBByIeSqV6vbt 24sWLfrHP/4hl8vb29tzcnIAr0eQCYZhUKF9M3qJnw/cvo2BaDBq7QMblUwma7VayHy4XK5er9fr 9Ug8CIQcoKyHQAE6J1wuFwg+TqdTo9GMj4+PjIzQaDQajTZt2jS3211SUvL6668fOnRoYmJi48aN 5eXlAFT4+fllZGSUlZWNj49jGMZisSBPA1If9HkI97D7xFKQf1AqlWNjYzqdDpgWgYGB8FPQonA6 nYgJgad2uH1/Q2fIbDZD2IFmP4/Hg+lus9ms0WhUKhWGYTqdjs1moy16PB7PbrejZUckEgk0SQBT BlVHs9nMZDKB5vPpp58uWrRo48aN3t7eEBAGBgZsNltycnJQUBCXy71y5QqVShUIBCwWi0QioXF3 FDC/vdlsNqfTOTg4GBkZ2dnZOTIyMm3atGXLlgkEAuwOXfXbPA/uSLh9h0LI4XAg9RLszmoJYH9O TEy43W61Wg3dmMbGRpC0V6vVdDqdx+NRKBSz2UyhUIDQzWAwhEIhMFMtFktFRcXMmTMBj/7www8F AgGBQOjt7R0cHGxqamptbQUfnjZtGp/Pz83NrampMRgMMMIE6RlaPHGvvPQbH6fRaDAq73Q6z549 m56ertPpRkZGFAqFWCwGeh44Pxp6xx0Jt3/XkUBkB7sDdkPFLxaLWSzWwMCAr68vnU4vLy/v6emB u/uuXbsyMzNtNptSqfT29oZMCQ0LMZlMiGZqtTo5ObmsrCw9PR3DMOgFnT59+saNG0ql0mw2x8bG LlmypK2trbW1NScnx2AwBAYGGgyGsbExKJOAWoFKoO9U+I2Ojur1+qmpqaampuXLlxOJRJFI1NjY GBMT4+vri0B8tKwWr5Fw+7cMNYUsFovJZKLRaAwGQywW19TUtLS0jI+PWyyWQ4cO3bhxIy8vb8+e PUFBQdu2bfv1r389OTnp7e2t0WggAcPusArIZDKPxwOp+2vXrqWkpBQVFZlMJjqdrlKpYAnSihUr 3nrrLQzDWltbo6KiuFzu1atX7XY7UMVtNltnZye8t/snde57mM1mq6+v9/f3t1qtiYmJVqs1ODh4 5syZvb29AwMDer0e+K8wIXKfiEd69dVX8SOC2780GECAyh54AJCVNTY2lpaWFhYW3rx5UyaT/e53 v1u3bp1YLHa73UuWLNHr9UeOHMEwLDs7G5RQ0QZyJCrCZDKZTCaPx6uvr58zZ05ra6tWq4VdLGFh YefPnx8aGsrKygoPD9fr9XV1dX/5y19IJFJAQIBQKHS5XK2trdHR0did7eXflcXvdDqvXLmCYdjp 06ezs7MlEklISEhFRYVerw8ICPD19QXgBICW+41R4EcEt29jUCTAXhYoVy5cuJCfn19dXU2j0das WbN48WJgmoJOKrQ+586dW1lZWVVVNTw8LJVKkZQpnHi0upzFYhGJxOjo6Bs3biQkJDQ3N/N4PKlU KpFIXnjhherq6srKyvb29rKysuDg4LVr1zY3NxMIhI0bN0okErPZDE6OKqXv9Lk0Gk1DQwMA7ikp KW1tbcDPYDAYfn5+bDbbbre73W5A8z31w+52pO+hhfeD2A+1EfDnYv+tPtW9rieM30F7xOVywbQP nEU0CoFyOSArWCwWi8WCYdilS5d27949OTm5Zs2aV199lcFgAE8UTSWhPJBOp8tkMoVCcfPmTR8f H3g58LS7EDYGg+Hr6+twOPr7+2UyGWzmi4iIsNlsUVFRxcXFHA7ngQceKC0tvXLlitlsjoiIgLE/ oVCoUqnEYjEqYKApDPUS6gIBKxyQesTZUyqVwAr/8ssvZ82aNTo66ufnNz4+rlAoMjIyEMaIOlE4 aRW3uw3ONFIbhmMHjXy0nQFUvJlMJkwcjIyMfPzxxydOnAgMDFy/fn1WVlZERAQcTeQh8IRw5hQK hb+//6ZNm86dO2c2m0EgBZVbyIvsdjvgFkBx4HA4+fn5c+fOhViRkZFBp9N/85vf6PX6Rx99dMGC BevXr9doNPHx8S6XS6/XNzY2/upXvwIUm0qlAowOOZvFYgFJcYPBgB6EDFClUtXX1xcUFEil0ldf fTU8PPzYsWMsFisvL+/atWs+Pj6+vr6A+Hvuj7mPMjjuSP+jZjabaTQa3J4RKZPL5SLdEhAlZbPZ Go2mv7//ww8/1Ov1IpHowIEDmZmZDodDo9GAar5n1AUZbgi/AoGgq6vrk08+odFoQqEQUa2R7D1I eKMnMRgMDAaDwWD85je/2b9/f3h4OIfD2bdvn0wmi4qKotFocrl806ZNoaGhEGo6OzsvXbq0Y8cO gAThCZlMJsgY0el0FosFLwd0b1Ah1+v1+/fvr6ury83N/etf/woXISoqSq1WNzc3nzhxgkqlslgs iUQCq5OQrPn9m1S4I/2PGoPBAMIOVCl2u12n0yFSAjiDxWIZHR0tLi4+f/58RETEtm3bkpKSsDv6 3d7e3tidliWaP/c8ahUVFbAfFqQbQZARJrexOxsysTsUHhKJBPIpPB7PbDZv2rTp8OHDUVFR69at 6+joKC0tHR0dXbVqVWhoqEajIZPJTU1NN27cWLduHZBcoXqBrBI0wTUaDZ1Oh4lAlUpFp9O9vb33 799fXFy8fPnyxx9/nMlkQszRaDSjo6MTExNZWVkCgSAoKCg0NBT4dZ4N2a/vCPyn1P1eksV4jfTL rpHQ+wF2NuqWwM1eoVDU19dfvHhRoVDk5OTk5eUBcm2xWJBsql6v1+l0nsv20LPBJEVvb++TTz7Z 3t4+a9YsmUxWXV0tkUhCQ0Plcvn06dOlUimUHABDW61WiBtGoxF2lXM4nHPnzikUCjabnZ6ezmAw oM/b19en1WqlUumDDz44MTHh4+NjMBhYLBaMu3rqhoNj6/V6pVL56aefajSa2NjYhQsXBgYGQv/K 6XRevXr1woULZDLZYDD4+PgAaPHYY4+JxWLQpoQsFAks446EO9I/mcViAX8wmUwAM2AYNjk52dfX V15e3t3dLZPJMjMzo6KioECCMAVHH0BwyOI8971id2S7AclgMpnl5eWffPLJ1q1b09LSMAxrbGyc mpoaHBzs7e0lEAhxcXHp6elSqRT+Fio0u90OmR5QipxOZ1tbW3Nzs0qlMpvN/v7+SUlJ/v7+kMXB oLvZbOZwOFNTU15eXrC7BaY2+vr6bty40dPTQyQS8/Ly6HS6v78/3C+6urpKSkqGh4ejoqJaW1sz MzPLysoAMnE4HDt27EBlJJJNxidkcfvm1A5CBxydnp6e2tralpYWtVqdnZ398MMPe3l5oZWsaIMl 0LpJJJLZbAbXQhvBIPMBiAworTabDbKmqKgoAJSDg4NDQkLmzZvndrs7Ojra2tpu3LgBklcMBiMi IkKv14NKKwItLBZLbGysXC5Hc0TwVBiGTUxMUCgUoVAIwxReXl6wWtNkMnV0dHR1dbnd7vDw8Ace eEAoFMK9QKfTlZaWVlVVKRQKl8sVGhoqFovPnTunUqlCQ0MnJiba29s3b94MbwDBm0BrQks+8YiE R6R/ehwSsNHR0a+++urq1auhoaG5ubnp6elwiCHgoMMEPgNZE9C6oYiCWgKNlGN3FFKNRiOJRGps bDQYDKmpqSKRCDYawW+imSWz2Qx8Ir1eD9NKEomEz+dD3wYOLoQamG4CBX3A6MG9HQ6HWq2G5x8c HKysrNTr9T4+PhkZGQEBAS6XC/ZtWq3W7u7uDz/8UKPRbN269datW6dPn965c+f58+c3bNjQ3t4u EAhcLtfU1NSmTZsAF/EEytFFu9f3+F+LSL9Uh/netcp3Ms+D6/kS6NlsNhuaZoMHAb+CdAX+XVRU dPHiRVBHOHDgAI/Hs1gsaD85CInA3wJT2xM6hzblXfI6IJDvcDi0Wm1+fn5ZWRkIBXd3d2dnZ/v5 +aEVFbAPAjLDmJiYqKgoeMOdnZ2fffYZCKxmZWWFhoaSSCSIjUDzQwA9zOSBoiqBQGhra+vq6goM DFy2bBmJROLz+dAco9PpIFH0ySefTJ8+fceOHd7e3vn5+RUVFXl5ef7+/gKBQCAQaDQaAoEwPj6e kZEBOB76XJ6jEz9FsAG37+dId9UknlU+dmcpN1r0jXqp6NcMBkNTU1NDQ0NTU1NCQkJGRoZMJgPH gL2UntM7X1/harfbkZYVdqdXw2Kx1Go1zB3AT4eHh7/88kuJRDIwMPD3v/+HVF6QAAAgAElEQVRd r9e7XC5/f/+cnJy0tDSpVBodHQ3QAo1GgyEIiDMEAsFut2u1WqvVCj3ZqakpkUgklUo5HE5ISAig 2xQKZXBw8Nq1aw0NDSQSaeHChUlJSeBy8E7gg2s0moKCgsbGRh8fn3nz5nG53Pj4+I8++ghAvGXL lu3du3fp0qXd3d02my0oKKi2tvaRRx4BuXC09ezbfo+4I/28HAmJmN7H06xWK7RowKxWq9PpVKvV wNahUqkxMTEzZsyAaWq0v+TrWx89XwVVJpBiQRWEYZharYaFfKOjo0KhkE6nDwwMdHV1HTlypKKi wmKxrF69WiwWazSaS5cuuVwuGPaWy+WpqalpaWkhISESiUStVgP2jbZoAheBxWKBKEpnZyeSBff2 9q6urm5ra4uKikpKSoqIiAgPD+dyuUaj0W63w8BsQ0NDSUlJR0eHXC6fOXPm2NjY0aNHn3/++atX r0ZFRZ0+fXrXrl3j4+MFBQWbN2/+6quv5syZMzU1NTEx8dBDD4EIkefiM9yRfpkRCf0JYLJolZDD 4QApDxSayGSy2Wzu7e2tqKhob2/38fGZO3cuaHqAwpvnq9tsNtAquE8+6XQ6UXwDMgGDwRgbGxMI BLCEorW19eWXX+7o6IAnf/nll2Gqp66uLiQk5Pbt28HBwQ0NDUNDQzCul5WVlZGRAaqrWq2Wy+WC NArUYwCFwxCURqMBDcc//OEPFRUVhw4dCgkJgYkmaCJB+ldVVXXkyBGn07l06dLp06fz+fzKyso/ //nPy5cvnzlzJpFILCsrEwgEWVlZf/7zn/Py8pqbm4VCYWJi4ueffz537lwQKvoe3yOO2v1cHQ8K bgSX2e12uJ1rtVoMw7hc7ujoaH19/dmzZ0FLZOvWrSKRCFTaOBwOgA1QZsACL1jwep+XhtrJarUC 9gAFmNFolEgkVqu1r6/v+eefLy0tZTAYUqk0NTV1xowZPj4+NTU1MpmMRCLpdLrg4ODQ0FCFQvHb 3/62srLS19d3ZGRkeHj4888/dzqdCxYsmDVrFiIuMBgM4JgDvZXP51utVhaLtXPnzvHxcZVKlZiY iFpGOp0uPz//7NmzPj4+Tz/9NI1Gy8/PBzmu8vLyhISE+Ph4g8Fgs9mKiooOHjz41VdfRUdH8/l8 vV6fm5vb3NxMJBLDw8Phtb5rOMId6eeKW0Ag8pSGYrFYQE3g8XgKheLgwYN9fX3e3t6LFi1KSUkJ CAgwGo0wS4daNEQikcFgoBswDBp51taead7k5CQIYQMgDl5kMBioVGp5efm5c+eqqqooFMqf/vQn q9Xa2toaHBwsEomqq6vlcjmFQpFIJN3d3StWrCgrK5PL5SQSyWQyTU1NDQwMPPnkkzwer66urre3 9+LFi9C0nTVrlp+fn0AggPEkMpms0+lg6fLY2JhEIvH394cVZhqN5sKFC+3t7V5eXrt37/bx8aFS qR988EFNTQ0sjXU4HLm5uTKZjMfjPfXUU88995zBYOjt7d20aVNra2taWhqNRrt69eqcOXNAhQK7 r+wWntr9cmBxNKqJ4GYYbTCZTECc0ev106ZNmzFjhp+fnycVCPRHyWQyk8nU6/WwtQF6/C6XC7RE PF0IORJUXOBpQFHVaDSNjY3Nzc2HDh2iUqm/+tWv+vr64uPjfX19GxoaZDKZWCymUqlisXh8fJzB YPT19SUlJRmNRp1Ol5WVdfLkydmzZ+fn5ycnJ2MYVlJSkpiYqNfr6XR6V1eXQCBQKBRdXV1hYWHR 0dGRkZE0Gi0mJgbep9vt3rZt25NPPhkYGHj8+HGtVgvidTabDfaLVVRUXLlyJTMzMygoCNQec3Nz IUYNDg5u37796tWrNBptxowZsK6iu7v71KlTO3fuJBAIgDGgpjAekf5XwHSn02kwGAwGw8mTJ4eH h7lc7rx58yDncTgcEG3gLgv7v1BvHnZ3Q3IIvwYoBcpqPH0J8kCg2On1+kuXLh07dgwinlgsXrZs WUJCQnl5eWZm5s2bN728vNxuN5fLnZychAwTZBWg9ZmTk3PlyhV/f/+hoSEul5uUlHT69On09HQ6 nd7a2rp8+fLOzs6lS5eWl5eTSKS0tLR33nkHGrV8Ph9mhLy8vLq6uvLz8/v7+3t7e//6179GRkZ+ 9tlnAwMD77zzTn9/P5vNDgoKSkhIGBkZsdlsc+bMcblcSqWyoqLi8ccfh9Q3OTkZCKwWi6WzszMm JgaUkPV6PZvN/q5ehP2Ao+bfVQbpp/b8PwXfAM41nF3oq8CPQIYXOQ+gcMAiq6ys3L9//+7du/38 /B566KHf/e53s2bNotPpFAoFYhGqo74RLkeL6GDTHuDmgFuASBWaOyCRSD09Pfv27Vu5cuVzzz03 f/783/72twKBYPv27dnZ2eXl5Rs2bNBqtWazmcvlBgYGTk1NhYWFXb9+PT09Xa1Wp6Sk9PT0BAYG arVaCJiVlZURERFtbW1EInH69Ok1NTWbNm0aHx+fNWtWT0/PpUuXli5d2tLSkpWV9cQTT7hcrvnz 5ysUirNnz9bX17e3t5eUlIyNjc2YMSM6Orqurq67u/uNN96wWCw8Hu/LL79cuXJlRETEqVOncnNz RSIRmUyur6+PiooCz4+Li4P7BYPBaGtru3jxokwmg64Rh8P5focKj0j/ZUPTBAhQBl0RQM9gJzGD wYAf2Ww2gBYmJycbGhpqampsNltGRsbmzZtNJpNQKESDemgm717MfzSEBwM8aCkDhmEWi4XD4QDe 7XA4CgoKKBRKQ0PDl19+mZycDLtfZTLZoUOH5s2bJxQKDxw4ALSa+vp6EGqUSqWtra2Tk5NpaWl2 u53JZHK53Pz8/J07d545cyY5ObmmpgZWSJw8eTIkJKS4uNjPz8/pdA4PD6enp7e2tk6fPn1gYKC7 u3v58uXHjx+PjY0Vi8UUCgUguy1btkgkks7OztzcXIAKly5dajQaxWJxYWFhcnIyh8P57LPPMjIy goKCYB7k6tWrDz/8sEgkgs1ler0eVlTcunWLxWJBzxe+CFjaiad2PzNDpY7b7TaZTG63m8Visdls nU7HYrEA1YV5IeCD1tbWtrW1jY2NBQUF5eXlAdAEpBhPz0T7IDwjnid0Dk/L5XKZTCbMJqHxUjhD DAajq6vrz3/+85kzZ1JTU+12e0pKyrZt2woKCrZs2dLb2xsZGRkfH3/69OklS5YwmcyjR4+SSKTg 4GBAnIOCgjo7O2fMmHHq1KmVK1e2tLQsWrSopKQEJE26uroWL15cWloKALfdbp8/f/7169dDQ0P5 fH5dXd2OHTs+//zzjIyMyMhIWJM8MTGRlpYWFBRUWFg4Z84cnU5HoVASExNra2t1Ot2iRYu0Wm13 d3d+fv6hQ4fYbHZLS8uaNWu4XK7FYvn0008TEhKio6PHxsZu3rypVqt7e3t9fX1TU1NnzZoVGBjI 5XKBwQSwDR6RfpaOBGRqMpmMvkKr1crlcsFzYO6tv7+/urq6paUFVqPCyhOYGgDiJiRj92L7e/Ih 4L9UKpVKpQJKAUgdlUqFm7fRaPzyyy8BOufz+fv377fb7WVlZQ888MD169fXr19Po9FOnTq1bt26 zs7OZcuWzZw5s6CggM1m8/l8NpsNLNLe3t6enp7e3t6cnJygoCCAHMxmc3p6en19PZfLDQ0NLSoq yszMbGho8PX1dblcExMTq1evvnbtGiAHDAZj1apV+fn5QEqoqqrasGHDmTNnwsLCgoODS0pKYmNj eTze6dOnn3rqKYfDwWaz33vvvZ07d9Lp9H379s2cOTMhIQHBjAKB4NNPP+3t7Q0ICIiJiZk+fXpg YCAMkwNOgxJpTzo87kg/M+AO0DOUkgE1E4bturu76+rqFApFeHh4Xl4eTG5CDga/g+j9X5e58dRh uyv1h+IH1n5Bo1On07nd7uLi4tOnTwPoHB4evn379vT09GPHjuXl5QF4EBcX98Ybb2zevNlgMCiV yg0bNty8eXN8fFwmk/n6+qpUqo8//lgsFoeGhu7cuVOlUtFotMrKypiYmPr6+tTU1MnJSRiha2lp CQsLAyXkOXPmnDhxIisra3x8vKmp6Zlnnvnggw/S0tK6urpUKlVubm5paalUKnW5XJOTkw8++GBL S4u3t3dWVlZJSUlGRkZYWJjD4bhx4wabzQbpBbPZnJqa6nK5hoaG+vv7b9++DbL927ZtE4lEUMjB dYBoD4PucMXwhuzPFWPwPP12u91qtdrtdpVKVVpa2tDQIBKJMjIyHnzwQZFIhPqPMA4ElEoUuL4e f0CN8S5UBgFxWq0WaM6jo6OVlZWVlZUnTpyIj4/fvHnz7Nmzn3vuuYSEhAULFnz++edisZhGoxUU FLz22muFhYUQAC9fvrxz587m5uZz586lp6cbDIb8/Hw/P7/Vq1dHR0d7e3tPTEzEx8c3NDQ4nc5T p04pFApQsUtISAgODlar1f7+/l1dXdnZ2RMTE+C3p0+fjo2NvXnzJoPBCAoKOnDgwIYNG5xO58jI yKZNm44ePSqXy4VCYU1NzYIFC3Q63fXr11955RW9Xo9hWF1dHUg7TE5OLliwQK/Xl5WVlZWVMZnM lStXBgcHC4VCuGFBtJmamiIQCMBvAkru2NgYh8MB5SC8RvqZGZCUoY1DJBKhF9Te3l5TU5Oenr5r 1y5Qcwfvgl9Aej3wh4DRYXemU++jwAYoNhi0kkCn9+DBgzCRmpOT89RTT8XFxd24cSM0NDQvL6+v r6+9vX3jxo179+596KGHbDZbZWXlxo0br127lpub63a7T5w4MTw8rNPpAgMDH3/8cQKB4OPjAxFS JBIRicSUlJTx8XGIRbdu3SoqKuLz+ZcvX4a57pCQEDabffXq1dmzZw8NDTkcjrS0tPfff3/dunWD g4O+vr7+/v7l5eUSicThcIyPj69YsaKhoSEkJEQqlRYUFKSmplqtVqFQeO7cOUC0gSReUlJSXV09 d+7cp556SiKRwNwrLF13Op1w+/Dy8kItI0iGxWLxd+3D4o70UzHE1Gxvb6+qqhoZGeHz+VKp9M03 3xQIBKAJTCAQAMRDPCCIKoihjNaoAO7kSf32PBmgFQwTrJ988snw8HBTU9OtW7feeeedmTNnfvjh h8uWLYuMjARixDPPPMNisfbu3btixQq1Wu3n5xcdHf3GG2+sWLFCq9UKhcLW1taTJ08Cmrx8+XJ4 IXh7BoMBoiXAGL6+voATyuXyrKwsLpfb3Nzc29sL65N1Op1cLmexWIODg5DsyeVyMpnc0tKyZMmS yclJpVI5d+7cxsZG6I9dvHhxy5YtIMyQlJQErSqXyxUTE1NUVFRTUyORSNhs9vvvvy8SiUZHR4Gt Bw4DlxHGpQBg8GRywOVCTPbvlp//3OeCvsecD9IlxDymD6hUKlrM5jlX/C+fH6Fh6BGLxQK3QLSs zvMow8wciF3BXFBNTU15eblWq5XJZElJSaGhoTBx7YkNeH4ceFqkV4oeB/wajbXCx0FZilarhdbT 4cOHr1271tnZOX/+fLFY7Ofnt3z58rNnzzqdzieeeEKv1x86dIhCoWzduvXgwYM8Hm/GjBmfffbZ 9u3bq6urQYDhb3/7m0Qi8fHxWbhwYUhIyL3e532CMHaHkTQ+Pt7X1zc+Pj4xMcFmsyMjI6Ojo91u 98jICJVKDQoKUigUSqUyIyPj2LFj8+bNUyqVMOygVCrVarVYLGaz2f39/eXl5YODg8DxEwgEXl5e MLAEF+F7cOdwR/r/iw1PxXc4vmjA01ONDd28MY9F8GCg6vaNz4+0Ne46OuAAiLIFQ52wrwFufnDb s9ls7e3tt27dunXrlp+fn1wul8vlUqkUxungRv6Nc0GeNRU8FfoTiAbIf4BdCvddl8t1+fLl48eP G41GqVSqVCofe+yxgICA8+fPb9my5fr16x0dHc8++6xare7o6Ni/f/9777137ty5vr6+rVu39vb2 KhQKPz+/jz/+2Ol0CgSC3NxcLpcbFRVlNBrv8z7vhVJ+/b5msVisVuvIyMjAwIBSqbRarXw+PzY2 NiYmxmAw8Pn83t5ek8kUHBxcWlq6YMECGo1mNpvtdvv4+HhFRYXJZEpISAgICOByuUQi0ZPAca/x rR/cfrGpHQoIniPT2J0RfAqFAkMBEJE8G3DgUfAn3+lOBqEJxv0hKCHuFox8wn5IlUpVV1dXV1dH IBBCQkJ27NjB5/NhqAEKIdBVQ2jsXcfUs1MEbxLgPhaLpdfr4VPA9AQAUy6X68CBA8ePHzebzatW rZo7d25XV9fIyIi/v//hw4fz8vKGh4dv3Ljx8ssvKxQKOp3+8ccfP/fccxiGKZXKdevWgcBiY2Nj QUEBVE0cDofH401NTWEeS5O+/j7v5UhwzdFti0KhABDvcDhEItG0adPMZrNKpVIoFL29vWVlZXQ6 PSwszNvbOzY2FsMw0B4aGRnR6/Wtra0kEik5OTk0NBQthEXfhadX32eLBB6R/nVq9/Wky+12w7gL 5rFPDpwNpUCwUBGO6X1E2b9+XIBPiWgK4E6ICWowGKampm7dunXz5k2n05mQkJCSkuLn5wdrHb7T PKbdbkdj5EiSF+ZGKRSKWq0GwdGWlpbu7u7i4mKtVpubm1tYWLhv3z6Hw7Fnz54XX3yxurp6YmJi 69atzz///OLFizMyMohE4oULF7q6unbs2FFaWophWHR0dGFhYVtb27Rp02bNmhUQEADqPBBd4ULd S1jnX143tDwTrXOGiwbawvDV2O32oaEhuOkAg0kikaA81tvbOyoqCp4Q+svQF4JbJNCa4BuErxh3 pO/jSJ4TATB1Azc/dOjRmnjY2AH3RUQtQyXH/Q8E0rBG7IS7BrOdTicIUF28eBG2m2RnZ8fFxcEz wDgnhmGQqICmAoSye0moeb4EZETID4FUqlAoqqurP/roI51Ol5yc3NnZuWPHDi8vr+7u7ry8vJdf fjkxMdHLy+v48eNvvfXWgQMHyGTy9u3b4Q28+uqrb7311vj4+LFjx+CUp6enx8TESKVStBUPbvxw 17irAvw238v9Ey306WAuCAIXvC4Mn8MCzKCgIJRyw9pMUKuETYH/FRLmLzkiwZfteSuC6ggk0dBB 94wGgGuBv3mKd37j80OWAofeU28RhudsNtvo6Ghvb29ra2tbW1t6enpcXFx4eDg8ObqRG43Gb8ns gncC1DjPogjSMDqd3tfX19DQUFFRcfTo0aysrNdffx0akY8//vgzzzyzdevW8vLymzdvfvLJJ6+8 8srGjRthbue5556Dja4ffvihRCKZmppSq9UKhWL9+vVhYWE2m00kEsH8EsRYCAX/8n3e6yhDDemZ B8I9CG52MCIFvwYNH7i1qdVqGo0GbCZImOGdoDsRkHrpdPpdo0SQut9/OB93pH/hSGhQh0gk2mw2 tVqt0WjGxsYgs5JKpXBHZzAYJpOps7Nz2rRpVCoVAAYgQSMBxG98XXBUgMigKwrw9NjYWHNzM+gK eHl5zZs3LyUlBdQMYZwOggmERM+0HkR8QA77Lpoc9s9bHqDMAI5PR0dHc3PzxYsXKysro6Kipk+f Pjw8/MQTT9BotFdeeeXNN9+Eclwul1dVVT344IO3bt1Sq9U5OTnHjh2bPXv2tGnTKBTKkSNHLly4 EBoaGhERkZ6eHhUVhVa+eoI38G9AjZFc/X3e53c1pEiBQpNnzgYGBSfySaTNbTabwbU8s0fk1T92 aveLBRvgHDCZzKmpqebm5p6eHsjfQkNDOzs72Wy2j4+Pw+GYnJzs6uq6du1aR0fH7373u9mzZ4N0 +r+87p77vQEAMJlMZrP58OHDPT09RqMxMDBww4YNcrlcIpHA+lGIQmazGSTe4faJQAV0M/7GOwX6 LySlgPuVl5efPn365s2bJpMpLy9PJpOlpqaOjIz4+PgEBwfv379/8+bNAoGgqqpq3bp1hw4deuGF F0gkUlNT065du86cOUOhUGD1w+3bt0Ui0dNPPw3rvYxGI4ZhHA4HCjCIt7DZG24coJfCZDJRw+Dr 7/P+kIznBYSSBl4FLhS8CsoOIMGDjTJOpxNgG2guQzYBpHgymYz6P0g375ef2t0HtvZMluB6oSBD IpHGx8ehwYd5yEajIwj4DHSKRkdHy8rKOjo6bDbb6tWr4+Li4JmbmpoGBwddLldXVxfs7Zk3b155 eXltbe3Ro0e5XC50YzwTNk9mgGcRBRggYNmXL1+ura2NjIycPn16SkqKRCJBsliQtNyr34LmF0Cy 3bPwQKA5ah/BLfn48eMFBQVAr3a73evXr8/Ozn777bdXrlz5t7/97d13321qaqqsrHz22WePHDli NpvdbndQUFBiYuL169djYmK8vb1ffPFFkK2CAdLQ0FD06b5rYYPbT9GR4AuDVBj1KOAAoeoFKlEk dwhZB5B2yWQykUhsa2urrq4uLy9ftmyZTCaLiYlBbmmxWGg0WldXF8xgwkCy2+3u7e3dtWvX/Pnz 169fz2KxQGXTYDBAOw/ulOjuC5pSZDJZqVRev379ypUrWq0WgDi5XA6MBHhjnqt879O1tFqtADN4 MhWQM8NicAaDUVdXV1lZeeDAAZPJJJVKX3jhBT8/v8OHD7/00kvl5eUGg6G+vj4nJychIWH37t3L ly+XSqWvvfZaXl7erVu3NmzYABN7XV1dhw4dEovFixYtSkhI4HK5kKfZ7XagnOOO9EtwJK1Wy2az 7xLLRT9VKpWAwCKEANEI4H9h1OTtt9+ePn36tm3b4HQCfYZIJMLyArQRCD0JZOSVlZWvvfbaqlWr cnNzUT2NuhMmk8npdAKcbTKZGhsbr127Vl1dLRQKly5dOn/+fB6Ph5ADiJOYB4vnXiU42qYIQ85K pVIkEkH8sdlscIMAdY59+/ZVV1eDLmlTU1N4ePjvf//7P/3pT5s3b54xY8auXbsgHXr22WdLS0sJ BEJOTs6+fftiYmJA8jc1NbWioqKoqEgikWzYsEEgEMCmV5vNBm8SLgLuSL+QGglwGLvdDscIuIaA hLJYLG9vb51OB188kJfRQAEEAQ6HExQURKfTOzs7oSYGei9I3UJdRCQSEd4FOB6MVaenp2/fvv2j jz7KyckBX7XZbIC/Ac3e7XZDZ+batWtWq3XOnDlvvfVWVFQUwq9ZLBZ0V1ArFmKRZ/J5l6FUCngY MKoJj09OThqNxt27d9fU1KhUqscee0wqla5ataqtrY3H4yUkJAwODmZmZqalpRUWFprNZm9v72ee ecZoNHZ3d2/ZsqWmpmZgYGDdunVHjhxRKpUFBQULFy585plnZDIZNI7vGteH+PmfrCt+SUb8qb0h g8EAhQeLxUILpWk0GovFmpqagvlNk8mEeWyqgkNgMBhA48bb2zshISEwMHDfvn08Hs9qtWo0Gmjz j42NQQQD3Fmr1ZLJZNBPo9PpVqv1gQceSEtL27Nnj9lshvcAzux0OktKSn7zm9888cQTt2/fXrZs 2ZEjR7Zs2RIYGAiFDZPJBHU1VBdhHgrd9/IizGOIFT4XkUgE+fni4uLHH388IyODy+U+8sgjc+bM iYmJiY+PDwkJaWxsdLlcUVFRZ8+eXbBggUaj6ejoUCqVwOlsbm5etGiR0WhsbGxMT09/5ZVXBAJB dnb2p59+umLFCn9/f+jbGgwGCD5oU8svTAPjfz21Q1rVQBVDxcbIyIhCoQAyYmFh4RNPPAGKAjAi ioZDXS6X0Wjcu3fvwoULT506lZWVNXfuXMADYOIA+2cSEPCCgXcHa0vsdvvOnTuzs7NXr14NjfbC wsILFy44HI74+PgZM2bExsZKpVLPcQZPciqUVQiouEt4xFPgCoF1aC7IaDS2t7efPXu2tra2v79f KpVGRES8+uqre/bsiYiIuHLlyrvvvnvmzBmQvGIymcHBwatXr+7q6vrjH/8YGRm5efNmX1/fqqoq b2/vgoKChoaGsLCwDRs2iMViaP5qtVrAtRC0DZM8MMGBO8MvKrWD0WskXa1QKGB9Io/Hy8jICA8P h9rjxIkTDz74IBQ/0HxA7AQCgZCenm61Wp944on29naTyQTBDbR4oEUDGxMoFApouwHSijYlPvvs s4899hiFQunp6cnPz5fL5YsWLZo9e7ZUKkV4BrQy4A8RXIse9/QcEP2BoPR1vTiATCYmJqqqqgoL C/Pz8+fPn08mk19//fWDBw8+8MADk5OTarVaIpEkJCQQCIRLly6tXr16+vTply5d2rx5s0qlKigo cDqdjzzyiNlsHh0dbW5ubm1tJZPJTz/9dGpqKirDQI7YbrcbjUY+nw9AIurPQG58n7UluP384G8q lTo5OVlWVtbQ0ECn01NTU+Pj42H3KDQTiETi888/v27duvj4eBqNBmwg2FxNJBJB7XpiYqK/v5/P 50dGRsrlctRPvAvXBmI4dCGMRiOZTNZqtTU1NX//+995PF54ePiyZcugp87hcPh8PrBdTSYTOIzn yUOrH8C7AKz37JZ8Y79lZGTkiy++KCkpsdlsSUlJLS0tr7zySklJSXh4eEtLy5tvvjlv3rw//vGP hYWFO3bs+Oijj9asWQMLg5csWRITE1NVVVVUVBQREZGamnrp0iWr1Tpjxgxvb28fHx8fHx9gP3E4 HFCpB0ItUFpBxg3eIZqi/Q+QO/GI9C8c4J6eSiAgZVBE20EDCPCNApkA/EGhUBw/ftxut4eGhv76 17+WSqUAgsHxRYP1L7300ptvvgnStcBCgD7dwMAA7Fzg8/kzZ85MT09ns9meRCFUCQDvAdIzAOJg a2pDQ4NEItm1a1daWppWqwVYAsgpkEaC0I/np4MME/JDgAqggwkIB4L+4K4PidzAwMDHH39cX1+v UqkMBkNwcPCuXbtGRkZCQkKAfnrp0qUPPvhg3759a9euJZPJbDZ7cHBQIBDw+Xy1Wh0VFZWQkNDf 319WVqbX6wcHB8lk8uzZs2FdCrTXILBDzEGdSkhoITyibtVdzWXcfsc010wAACAASURBVIqpHcqm 7gKpAKqG7QNIicJqtT700EOLFy9es2ZNWFgYupEDI5jD4cCpdblcbDZbLpdfvnx51apV8Hh3dzd0 +sVi8e9///vw8HDsDsEESDeopIZKhslkQm8eNOJOnz7d2trq4+OzdevWzMxMkKcCJBpmexBgAMOV gEZAmuc5beHJo4HPpVAoxGKxwWAgEolMJlOhUFy8ePG9994bGhoKDAxcvnw5yOomJiaeOHHimWee +fTTT9lsNox5NjY2PvXUU/v27cvNzb1+/fqaNWtqa2tFIhHoLZ49e3ZkZCQwMHDlypUgcwWejABP HIL75TgSmjP1pMMA/R5uk1wuF4Y34d4pk8l6enrCwsIMBgNIQ4F0OkriARAnEAgLFy48d+7cxMTE yMhIUVHRzZs3Z86c+e677/J4PNh9wGQyAaFyOBywcgdOvFKp9Pb2ttvtnZ2dVVVVFy5cIBAIc+fO Xbt2rUQiAbVEIApptVoOhwOLEzUaDeB44B6o5oF4675jIPcuFApBJhekPTEMg0HOEydO/P3vfwdl jzVr1kCplpiYyGazr1y5IpPJYGDJarW+9tprVVVVsbGxsA3Sy8uLTqf7+PjY7fbR0dHz589jGBYe Hv7444+TSCRPKTZ482hCBA8yP9Ea6Xukdp5LsFFpCyvd4cyhVF6pVF64cGHPnj3vvfdecnIyNDeB QeMJtWF32AwdHR179uyxWCxz585dvXo1n89HjEbPosuTV2oymXg83rlz5y5cuNDR0eHr67t27Vqh UGgymZKTk3k83l2yZp4AF9IfnZychGAFz4/982gtOr7wI5VKVVJS8sEHHwwNDfF4vN///ve1tbU+ Pj5MJnP58uV/+ctf5s2b53K5qqqqXnrppYMHD/b29s6fP3/BggUHDx7My8s7d+6c2WwWCARMJnNi YqKioiI1NXXDhg3Q4BIIBGazGdjQXw9BqNuL288+IsGJ9/yCgY0PgC/UPGazGf6XwWA4nc6kpKSv vvpq1qxZ8FfgPEDSgZSJyWTCEtLw8PC3336bTCZDlAB1UkgaQeYXwiBED61WOzQ0dP369cOHD4tE ohUrVmzbtm18fPzatWsSiQTWx1utVvSWYO8VjA+ggAmZoUgkQt4CbE5PEhNsOOZwOCDzW1BQEB8f /8orr1RWVnZ0dDAYjN7e3ieeeKKsrKylpSU1NRVmBFJSUiwWS319vVAoXLlyZU9PD6jwNDc3h4eH FxUVxcXFzZ8/f9WqVUhBCokKud3uuyh5gCLgXvTLiUjo8MFoPiy0gu/bbDbr9fq9e/du2bJFLBYr lUp/f/8LFy5A49Vut+fl5bHZbAgyiLsA+RJ4FEQqANxAZglWbt0VHxQKxa1bt4qLi8vLy6OiouB2 fvv27dHRUblc/uCDD3qO+Ot0Ok8KEtzUtVotlUodGxuTyWQ6nQ4tUYUoB0g9aA5Did/Y2Pj+++/3 9PQkJycbjcYlS5ZkZmYePXo0ICCgs7NTIBBERkZ2dnaqVKrVq1cfPHjQZrM9//zzFRUVxcXFTz31 VHh4uNFobG1t7erqunjx4uLFi+fMmRMYGIjipEKh8Pb2BkIGwuI8b1Vw68Gx7F9ORIK7IzRMIG7A PvfOzs4rV66o1epFixatWrXq+vXr/v7+ExMTTCZzYGBgzZo1u3fvBs+BP0fcZFQPwHwbnC2Yi4Qn B0YPdGZ7enquXLly6dIlo9GYnZ29d+/eoaGhkpISiUSyZMkSYPeMjo76+flBnKTT6RAbQYIUukZT U1PV1dVHjx4lEol/+tOf4ATbbDb06eB9joyM9Pb27t27t62tzWAw+Pj4LFu2TK/XCwQC2C5MJBKl UumJEyfef//9L774gk6n+/r6whoIqVQKZVtoaKhcLq+oqPjiiy+EQuHChQsfffRRFM/RhJVQKETz cOBCaE84iuGe0q24/dhGevXVV3/UF4A2Bdo9Ojo6euzYsT179uj1+rVr1y5dutTX19fpdIJqGZfL tdlser0+MTER1jMC6xn6MxaLBR5xuVwGgwFxw6empiChUqlUwPeZmJi4cePG+++/f+DAARKJtGLF iszMTKfTWV9fHxYWtnTp0nnz5sHBJZFIoH0F3DM4suCfFoulsbFx9+7dJ0+eVKvVxcXFoLnOZrNN JhNadUwgEGC1wd69e998883Y2NjXXnsNGqBr1qwZHh7OyMgwmUz9/f0QOvR6/eLFixsbG41G44oV K2praycnJ9euXcvn85uamjQaTXFxMZVKXb58+dq1awMDA8EfwFWgaERD8oAlwkVA9A7Mg2OOR6T/ fkS6PwsYtfC+3guHnglacABpBrovslisjo6OkZGRxx57LCYmBkamd+zYsWrVqri4uMzMTAqFsmjR IrvdLpPJQFWHTqfD+QYkDcADFJdcLpeXlxd0mRgMxuDg4NmzZ7/66isymbxy5cqHH364s7NzcHBw 2rRpa9asgUUPqFsK4m/wv1AXwR7V0dHRs2fP3rp1C8OwpUuXzp49GxaA7927Nysra8GCBTDZBpSF jz/++OzZswqFIjc3NzU19cUXXwwODj569CiAJRwOx2q1ymSyy5cvP/nkk6+//vrDDz8MRLjf/va3 IpFoaGgoPT0dw7Avv/yyr69v9uzZSUlJAPohr0Cy9xBh0FwqykjxRtDPL7WD/j1S54CaBG7hBoOB w+GAFwF1Gi3ZBncyGo0Oh0MsFs+YMeOrr75KSUkRCASA1e7bt+8f//hHXFxccHBwfn5+aWkp6IQA LwZeBbqcyH+MRqPVaoXptKmpqevXr586daq3t3f69OlPPvkkmUweGhpqaWmJjY1dvnw50E/hz9H0 JfmOwXNyudz6+vojR46Mj4+D2i2Px/Pz84Ofzpo1q7a29v3334+Li4PFdQcOHCgtLaVSqU8++eT5 8+fT0tIcDkdISMjNmzevXr26a9eulpYWsVgM8gOzZ8+GLa7e3t4DAwOzZs2yWCwTExMcDqezs9Pl csnl8gceeAB0dFG/C7efPdjwL0mlkGghsMhzmgV+x2QyEQgEGBpzOByI1vXpp58ODQ2tXr36jTfe 2Lt3L41GA15CW1vbF198cf369WnTps2bNy85ORnYlp7on9vtVqvVbrcbDhyGYYODg2fOnCkqKmIw GEuXLgWl6bq6uqCgoPj4+JiYmLsgRKT2BKA8aJXY7faPP/64traWwWBs3LgxJycHZjfg02k0GhiR KigoePjhhzdu3Ojv73/u3Lm0tLT09HShUJiZmbl8+XIouhITEy9fvvzZZ5+98847//jHPzZu3FhX V9fU1LR582aFQtHT0/P444+XlpZardbBwUGLxSKXy8VicUhICPCb4HbjqWv39VQZP7W/hIgE3Uk0 FadWqzEMEwgEVqsVEp6pqamrV6/6+fmlpqZ6KilrtVq3283n8728vG7fvh0SEpKRkXHjxo3s7GxI t4hE4sKFC3Nzc0NCQng8HsgpQvYCvR0IgBBbjEbjjRs3ioqKRkdHQ0JCtm3bFhYWBqtFg4ODH330 UZFIZDQaYVqOQCAYjUYYZ4BCBbA4EonU0dFx+fLl+vr6OXPmvPDCCxEREaB/AmQI8F7gB3E4nBkz ZqxatercuXOZmZlnzpwRiUS1tbVDQ0Pl5eVyuby6ujouLo7P5xcVFYlEIo1GA3sUXS6Xr6+vTCab mppKSEhoaWnp6Oig0+mJiYnh4eEkEgkaX2iCEA2P4KfzF47awRo5YB4gEhedTr9x40ZPT4/T6ays rPTy8poxYwZ0EuGIgPI6cEZNJtPw8LCXl9f58+dTUlJg4VxkZCRCmWB3HaoB0LZgp9M5OTlZVFR0 5coVb2/vzMzMqKgojUYzNDRUWVkZHR39hz/8gUAgGAwGpMMGwAD8G5qqAIjDiKtKpZo1a9Y777wD rguFk+dMHpxsm83mdDrFYvGzzz47NjbW3d3d398vEon6+vpgadzChQvPnDmTmJjY2tra0dGxa9eu np4eIF8HBQXBmGpnZ6fZbBaJRDk5OUChQEEeKBQImvsey4Bx+5mhdoC3gooNVErA1H7zzTftdntw cPDMmTMTExObmpocDkd0dDSGYQ0NDcePH3/vvffMZnNycrJKpTp16tTw8HB4ePjGjRtBBx2oa1NT UxCFkIwttBftdjvsoz948OCRI0dIJNL69evT0tLUavXg4KDVag0JCZk9e3ZYWBhgXIAZoBBqs9kM BgNEs9ra2lOnThUWFtrt9pycnDVr1iQlJUHmBtgDrG1FUApw5ACcgKlBIpF47Nix4eHhOXPm9PX1 zZw58/z580KhkEqlxsXFlZWVdXd3r1y5srKyctmyZSwWa2BgACTeAwMDp0+fnp2dLRQKoeoDDB2C HupEoULul718+n+9RoL7PRz08fHx0tLS3t5eKpUKcBOACgwG49ixY9evX1+1alV9ff3ExERUVFRw cHB9ff3k5KTD4cjOzk5LSwP5WZvNptPpPDUHYUMwyD5hGNbf39/Y2Hjx4kUajRYbGztjxgwqldrb 22u1WiUSCYPBCAsLg2LGbDYDTQYRVUElC/pXzc3NxcXFFotF9v/a+/Kotsu07V9KCFnJDtkgJWEJ BEqggC3Q0kW6UZnpom3HVq3LqVr1uI3jcUYdPaOOOuq463HsWEc7rcW9dJXRtiyl7EtZylIISwKB LCQhEEjy/XG9/gar9Ru/V79xps/1h+cIaZb2ufM8z31fi063YMECKNJB3ruoFUl9La+gqxHfGvRa f/TRR//yl7/cdtttcXFxJpPpxIkTEonkiiuuiI+Pf+KJJxgMRnFxcVNTk1qt7uvri4iIWLBggcFg kEqluElCDIKWPX15A3+cHgoRUsJl0Wzwer2fffZZU1PT/Pnzly1blpSUhC9v2NBgsvnBBx8EAoHM zEx4Rrtcri+++AIx1ODdQBiDmxXOijgoQnEdDAZra2tLS0stFotcLl+3bp1QKPT7/TabTSAQJCcn I8MQ9mvIZcFCp742/vZ6vRwOB7kpJ06cYDAYGRkZaC6D10N9zUafq59F+wFjJTpAZXZ2Fq6rDAbD 7/f39fXdfvvtnZ2djz32GIJT6+rq1q5dq1Qqn3766czMzPb2dh6Pp9PpVq9ejSMczodocoAzTvcV aJdQzMToPgrBf1IhXao7dClgHVAU9eSTT5aVlR08eBBsa3yJokNAS+hwd8JypA0MANrkHgbqdEsd vNLTp08fPHhwaGho8eLF69atS0xMPHXqlNVqRYsMHiaoorlf5xAm0QN+h8PR2tpaXl5us9ny8/NX rVrF5/Nhx4X/gqCA+QxtpgNGEh5Am37hYfiMOH0dO3bs3nvvlUgkd911F4fDGRoauuOOO44fPw6j Eo1GU1RUhFufx+MB8e975nIEl10hQcE6MzPz0ksvtbW1rVy5csOGDaBXQ7NN+7/NFWCiKTeX/Q1D krm3arvdPjQ09Pe//31sbIzD4SxevHjZsmU8Hq+xsbG2tragoECpVILHSSeoUnPY2TgN4kQ0MDBw 5MiR8fFxGKHExMTA7IEOFKL3lrk233gq+ArhrOh2u5GoRweHYUCMbt7LL7/8+9//fvv27c8880xT U1NLS0tjY2NRUVFsbGxsbCzsUCCswJcFKSTStfsnsPIw0lm2bNmFCxfgVvPtQQeqCIsVfwqGcpir SqVSJBDCPLWqqqqhoQE9NOTATU9PV1ZWjoyMGI3Ge+65Z+6Zkz53+f1+SBswsJqcnKyqqqqvrx8a GiouLhaJRPSCxnplMpngvNnt9ujoaOxF8Iym46zhwTA4OFhbW5ufn48THeg5NOdtcnJyamoqNTU1 MTHR6XR+8MEHdrs9ISFh27ZtXq+XVljQjpb0Lk1ACumfgCbH5/OlpKRIpdKTJ0/m5ORcdFqjb1lY rOCb0m3oYDBot9tZLNb58+cPHTrU0dERFxe3YsWKhISEyMhIq9V67ty5QCCQlJRUVFQUHh7udDrp AqZXJIoHL3T+/Pmamhqz2SyRSBYuXLhlyxYGg4EdD104erQK37zo6GhczyYnJ8+cOfP666/v3r07 LS2NzWYLBIKWlpbXXntt375999133z333MPhcMAGQl9kaGiou7v7wIEDSIZbsWJFfn4+RVHz58+f np6Wy+XYuOAiRlYYOdpRlzqK4Aj04osvJicnL1q06K9//WtqampeXh5tdoUQB/r+M9fnbXp62ufz +f3+48ePg7iZm5tbUFDA5XKtVuv4+Hh3d/eCBQvi4+NxIqKnK3OPYV6vFw3uQCBw5syZxsbGQCCQ m5trMBhA/cZ9fW4LYe7R1GazRUdHDw0Nffnll/v27ZPJZDgWJiUldXV1Wa1WJpO5YcOGxsbGurq6 m266ae3atRqNJiws7IMPPigtLe3q6srJydm0aZNer6+srFSpVAUFBRDMozNB3wapOXm15GhHCuk7 mg3BYLCysrKjo2Pr1q1Wq/XgwYM7duygYxewjFBCczNVnU4nXLnb29vZbHZubm5qaqrf7x8fHwft YN68eRkZGfT9JzQHaPHBnxr9rrKysjNnzkRFRS1atCglJQXyQRQbIr1oq3ua6oqyDAQCDofj3Xff tVgseXl5GRkZzzzzzIYNGz7//HObzXbDDTcsWbKEw+G89NJLZrO5uro6NzcXZnrDw8P33ntvbm5u SkoKBPB79+5ls9lbtmzBh52rZaC+6f1NCokc7b7jHz4UCi1YsGB8fPzs2bPLly/X6/UXLlxAuij1 tdYa4hmUhNlsPnXqVHl5+dTUVGZm5o4dO/R6fW9vb1dXV2RkpFqtFolEkZGRPB4PQ1j8KZwV0dpG PwD9MaSwJCUl3XXXXXCspzVLWNByuRxCWnQX6PAP6utEKh6Ph7jSjIwMrVZLE4KKiopWrlwZFhYG +sK6det27NixZcsWrVYLdV12djZKCAMliqLi4+PpTjoqhw5foSdFOEaS1UYK6TsKKTIy0mg0fvjh h8nJyWvWrDly5AjNkUMloJF95syZ5ubm3t5elUq1bdu2xMREh8PR09MDjtzSpUsxesKeg34AehJY mvQmExYWNjg4eO7cOavVKpPJdu7cqVQqaR9Jmi+LRRwIBNBjQJe8qanp1KlTGo3mhhtuoK8uCQkJ Bw8eHB4eFovFkZGRfD6/ra3tmmuuCQsL83g8SqXSaDSGhYWlp6fr9fqnnnoqJSUFv0JbHIKl9vb2 +fPno5UH6i3daJmrrocanKy2/+ZCutTRYq64kg4/Q8cMklKKouRyeV5e3hdffLFx48acnBzc3eER 19/fX1tb29LSEgqFTCbTmjVr2Gz28PBwZWVlZGQksnouekVMkzD6BCkBfQWbzdbZ2dne3h4TEyMQ CLKysuRyORrQ8Fide3CiQ9qCwWB9ff2FCxfKy8tzc3Mx+cnJyUlMTMQjpVLp7t2733//fb1ej6Rk kUgEihCfz3e73VlZWTim8vl8kUiEsqT9T+jJqcFgoBXvsHkgRziyI33jH57+jr8oORDC7OnpaXiR 9vf39/b2Qotmt9t7enpqamqGhoZUKtXatWtXrFhhNpv7+voCgYBCoVi4cKFYLMYMZ25MPE5B4MjQ gXn19fXV1dVhYWEGg+GXv/ylXC6H6wM1x1PlUt/0paWl0JM+/PDDcrm8oaHh8OHDzz///GOPPRYT EzM7O8vlcnU6nUAg6Orq0mg0Uqk0LCxMq9V6vd6pqSk+n//ee+/dcccdGCshDgOvxeFwuru7Ozs7 33vvPZxdwTGnKEooFJKdhxTSdx/h5mbmUV/7TsELyu/3S6VSk8lUV1e3bt26+vr6Y8eOmc3mzMzM nTt3yuXykZGRP//5zzExMSkpKTqdDjcoSH2or63h6KYcpkN2u53JZLa3t1dVVXG53LVr186fP9/t dqO0aF7cXLuSi9K78JOmpqa0tLT8/HzoKUQi0VVXXYWBlUKhgK6JyWSq1eqamppTp07JZDI+nw8q LUVRMM4vLi5WqVQYKPN4PJxU//GPfxw9enRkZCQ5OfmFF16QyWShUAi5RuC2k1V1OXbtLvUNeqk4 aJfLxWazaZkQ+KNPPvmky+WKiYlZtGhRWlra7OzshQsXfD6fSCRavXo1bVaM56SZZnNldrOzs+Pj 406ns7e31263i0SizMxMpVJJywfRNkDLgc6TpL7plUP3GyiK6unp+c1vfvOHP/whNTUVPMDHHnvs mmuuOXz4MGTtVqu1oaHh+eefj4+Pz8rKOnLkCI/H27Ztm8Vi+dvf/iaVSg0GQ21t7f333//iiy+u XLmSyWRWVFR0dXXNzs7KZLJdu3Z5PB6KopYuXarT6ej4StKdI4VEffvSgqVPk6PpRGGLxRIREYFe HKRpRqNRJBJNTEx0d3eHQiGj0ajX62lnOWwm+LbGZBOyBVSU3W43m80Wi2VycjIhIUGtVguFQiSf 4soxPT2Np6LjG+j0LlC2575nfCKHw/HJJ59cuHBh165dMTExgUDgj3/846pVq0KhUF1dncvlKi8v 1+l0Ho+nsLDQ5/OZzeZXXnklMTHRZDJRFLVmzZqRkRGpVPrAAw/A37S3tzcuLu66665Diy89Pb29 vb2ysvLpp58WCoUgLtEtE1JIlxu+T49EX5NomimDwRgZGYFpTklJSU1NjcFg2Lx5c3x8/NTUlM1m CwQC6enpixYtgk8vxkrQpcKEDZdyXG+8Xm9/f39ra2tHR4fP50tMTMzPz5dKpXw+H6w5+vyG2xRo DW63G9QbtOwuipSkj3lsNjs9PX3Pnj1ut3vx4sXDw8PYMzMzM1977TUWi3XttdfefPPNo6OjLBZr YGBArVYLBII1a9bs3r377NmzOTk5ZrN5yZIlQ0ND8fHx/f39O3fuvP3220Ui0b59+7hcbkJCgs/n 83q9lZWVqampsPCnLi0FJ4V0md6RaAUOnaUF2ek777zT2NiYkJBw00036fX62dnZiYmJhoaGsLAw nU6nVCqxkkCoAwcCigaKomDGDXrbmTNnIFOHfzzN48ZyBDcCHAgWiwUWXCAQ6O3thYs8fFghlLjo Uof6R2LSww8/vHv3bp1OV1xc3NfX19DQ8NBDD8XExBiNxtTUVNQbYiO8Xu+2bdu6u7unpqbg9A0S UyAQuO+++0QiEYvFqqmpSUlJ4XK5aGNwOJykpKR33nln9+7dExMT4AeRZgMppG9uVV87vHk8HqvV 2tHR0dLSYjabCwsLd+zYwWAw6urqTp48KZFIpFJpVFSUTqcDNYGiKLidcDgcmFHRtgSBQMBisfT3 94+OjsbFxWm1WrlcjsMbBOH0FkTPgmgDYXhKfvrpp59++unSpUthLf/ttAWa2Y0zXmJi4pYtW/bs 2XPy5MmKioqZmZn8/Hy/3y8SiaKjo1EzcK7kcrkoS5BT+Xw+DoTh4eEgoUZERMC0CE5JeK3x8XGB QHD8+PEtW7ZERkaC20pW1WVdSBeFySHQobOz88EHH7RYLAkJCffff79YLHY4HLW1tRwOx2AwCIVC RPfAfGvevHmwseZyuR6PB+c6kACCwaDNZmtra3O73TExMXl5eSCP0l0NOskUteHz+XAVGRsb83q9 5eXlzc3NKpXqhhtuYLPZBw4ceOONNx566CE2mw1zFZwYaU1UWFgYEsiDweDVV1/d2dk5MDBw9913 V1ZWfvbZZzk5OV6vF9bHYL4imhZGYm63W6vV9vT0KBQKqNOhCGaz2bATio2NRfodynXJkiXd3d2t ra1ZWVn4sGRVkR3pn7Db7RKJ5OWXX3a73SqVanR0tLS09Nprrw0LC8vJyVGr1Wh/Y6vxeDzT09Mi kQhWJ3QoKryw+/v7+/v7Z2ZmtFrtkiVLoN671OuifRcdHd3f3+/1er/88svBwUGTyXTLLbfIZDIe jyeVStPS0sbGxlpaWvR6vVgsRn4Rn89HNY6MjKhUKgh1KYoaHh72+/1OpxNvbMmSJdgDIW4Xi8UG g+H06dPIco2NjeXxeGKxGFMvCPLEYnFLS8vq1auR8apSqQYHB/l8vsViUavVPB6vpKSkvr4+MTEx GAzigxOQQvofREZGejwes9kMqhuXy21ra5NIJGlpaaCB4hY0MzMzMzPD5/P5fD5tb4/Bf2Vl5czM zPj4OIIZJRIJzeX5Hk/qqamp6OjoqqqqsrKyQCCwfv362NhYrGY8AEHihYWFJSUlt956K7YjGHqN jY0pFAqVSgXP+0OHDlVVVQ0NDYVCIa1WK5PJBgcH1Wq1zWazWCwlJSVHjhwZGxt79dVXxWIxHEwF AsHg4GB0dDSeYXZ2Fs54U1NTUqk0Li6uv79fp9MxGAx0OzAMMBqNbre7vLx83bp1ZEcihfTNXzCZ Pp8vNTV1amrKYrEoFAqNRtPZ2RkeHg4nnbkCPpfLBXIDh8OB4qi0tPSzzz5bvnz59u3b6Xii6elp 5FviAPadr8vn88vKygYGBhBRQcdd0hsgVnZhYWFVVdXZs2fFYrFQKIQ+XKFQNDY2HjhwgMViHTly JDs7u6ioSKvVdnZ2nj9/nslkCgQCcMD37Nnj8Xjuv/9+pVIJM3FocmUyWV9fn1KptFqtPB5PqVQW FBS4XK6lS5d6PJ64uLiRkRG1Wi2TycLCwsbGxlJSUuRyeVdXl1QqlcvlY2NjxHGBFNI3MDExAU/t jIwMp9MZCATS0tLee++9HTt2LFu2DH498+bNGx0dnZ6ebmxsDA8PNxqNiIVFAkpERERTU9Ntt91G fT0ICg8PRyQWElku9dKDg4OFhYVzb+04CiLcBf1xeLW+8cYbSUlJqampXq93YGBg3759HR0dYWFh UVFRjz/+eFpamlqtpiiqr6+PwWA4HA4YHXu93i1btvT29kLJhwrPy8uDOz5uTdnZ2XjbeIb8/PzB wcH4+PjU1FS1Wj05Odnb25uSkpKSklJdXd3a2lpQUKDT6eATRFYVKaRv7EiY/AwNDU1PT+v1+ra2 NpvN9tlnnyUmJqrVarfb3dzc3N3dbTKZkHkMsQNyxZ1OZ3p6l5PDQgAAFHhJREFU+qlTp/bv379+ /frIyEgQscPDw0FNuNSCQ0ZlWVnZddddR1EU/CFwjIS/D5fLHR8fdzgcixcvrqur27NnT35+flNT 0/DwcFJS0uOPP65Wq5HxCmUrSLQRERFCoRCtRTxtZ2enw+FwuVxut9vtdms0mvLy8t7e3vHxcSRl LFiwwO124z27XK7U1FQMcPHpUGZHjx612+07d+7Mzs4mZsKXMy45kMUIZXBwsKqqSiwWFxUVVVdX 6/X66upqGIkMDAxIpdKcnBwGg2GxWKRSKVreMFJ96623VqxYkZmZ+fnnnycmJoItDgnD9zvEs1gs jUbz9ttvm0wmFosFY2Hwg3BbC4VC7777rkKhgBllQ0PD559/vnnz5l27duXl5SkUCpgEYcdDOw4S caFQ2NDQEBMTMzExgYnw1NRUZGSkRCKpqKg4d+4cbITT09M5HM7w8HB9ff3w8DAMH7u7u0FyhWAx FAp99dVXdrt92bJlGzZsiIuLgwmRz+cjzAayI30DuJxkZGSUlZVlZmYKhUKDwYDjVkdHR15eXlRU 1PDwcEVFRVtb25o1a+jQSPSjmUwmm802mUwQorpcLjoGb67d/reBxtfKlSuxKdGZEZjMwutYKBT+ +te/jo6OvvLKK/Py8o4ePWowGDDSRVw5ti8Gg4HTWigUstvtSUlJcXFxTqczOzu7rq4OXkVCodBi sZjN5nvvvddkMsFuwWAwdHR01NXV5eTkbNy4cd68eTabbd++fWq1OiIiYmBgoLa2Ni8vD04VCC3H BJkMkS7fQrpoQc8lgFIUlZKS4nA4nE7n7OysUqmcP3/+4cOHGxoaDh48WFVVpVarly9fftttt4FD PTAwsG7dOrfbvXfvXqTWiUSip59++tZbb83KyhIIBG63G5sMunaoKLqd4HA4hEIhFLKLFi06ceIE jJEhL7XZbF1dXfv27QNDXKFQPP3009nZ2SwWy+FwtLS0oPkOejgGqT6fr7Oz8+TJk2VlZYWFhV6v l8vlLliwYHJy0mAwuN1uXIFcLpdcLrdarV6v1+/3Q6xhMBiUSiXez8zMjFAoXL9+/fvvvx8bG7t0 6dIrrriCTmsHm4H2GSZL6jI92j366KOXOmJBL93Q0FBTU3PLLbckJSWJRKLjx4+3trauWbPm9ttv LywsTE5OHhwc/PDDD0dHR8fHxw8ePLhnz56UlJQ1a9Z88sknq1atYrFYCoWipKQEWXc4+IG/g7VO O0jyeDyUcWtr61dfffXRRx8VFRXxeLyzZ88+//zzb775ZkxMjNVqvfXWWycnJ3/1q1/V19cPDAwU FxcfPnw4MjKysLBwbGzM5/Px+fz+/v7nnnvurbfeevLJJx0Ox80336zX661W65IlS3p6elgsVnp6 ukgkmp6ejo+Pdzqd/f39Vqt1+fLlIpEI/AbaeAgFP2/ePD6fLxAIMjIy0I7/oX/R5Gh3mRYSGndC oTAqKurjjz/m8/lqtXp0dLSzs3N8fPyWW26RSCR9fX179+5ta2tramrq7++PiIjYtm2b0WgsKCiA KntkZCQvL0+j0TQ3N4+Njel0OkhfoYHFXgQ3FafT6XQ6q6urn3jiifPnz2dkZODSf9ddd9XU1OTk 5MyfP/8Xv/iFw+FYsGCBx+PJz8+vra09dOiQ1+t1uVw9PT3FxcVo6+3Zs+eRRx6pqKjQarVXXXWV wWAoLi622+2HDx9eu3ZtMBg8ffp0fHy8Vqs1GAxcLrenpwdyo9nZWZ1OB00Reo9erxfNSRzbZDIZ xlnfcxcihUTuSBf/w8MBOCEhITU19ZFHHmGxWEuXLl28eLHX6+3q6uLxeOfPn29ubmaxWBs3boyK ioJiT6/Xy2Synp6ebdu2Pfvss9nZ2dig3nzzzcLCwvDwcIfD0dfXNzMz8+mnn95+++3BYHB8fPzt t9+22WxxcXEPPfQQpHXPPvtsRkbGn/70J6PRGAgEDh48GBER0dnZuXnzZlAK4uLixsbGSkpKpFKp QqHo7e3dt29fSUkJm83esWNHTEwM5ktarTYqKurAgQOwWFi4cCGDwXj11Vd///vfQ8mHQdNVV131 8MMPG41GhUKBVjtFUaguXNJgFosYc3KEI/hXCykUCoHtIhaLH3300ebmZkgSJicnm5ubGxoa/H5/ cXHxtm3bELYH9Y7H47n++utLS0txwSgoKHjmmWdeeOGFzMzMVatWHT58uK6urqOjIxAIXHvttW1t bS+88MLw8DAcvRcuXIh8CqxUxB9FRUWZzWa73W63251Op1arhYX/qVOnfD5fTEyMxWKx2+11dXUD AwPbtm277777rFbr9u3by8rKsrOz9+/fbzQax8bGTp06tXXr1qysLB6PB9/JvXv37tixQ6PRUBRl s9nmz58fFhbW1dUll8uHhoaio6MnJyfFYjE9OA4EAmg5oqNA5kUE/1IhuVwuzGGQg/Lb3/72iSee APvT7XZfd911mzdvHhwc7OrqGhoaggnJuXPn4uLizp07Z7PZCgoK2tvb16xZ4/F43n333V27dmVl ZcFvfufOnQUFBUKhsKur69ChQ88//3xSUhId1YrNEKkqXC6Xx+ONjIygJ2E2mxMTE7u7u8EwSEpK mpiYMJlMr7322qOPPrpw4cKpqanR0VGpVMrj8QYHBxEI7Xa7ZTJZQUEBi8Xi8Xhut1soFJpMpsbG RpfL5fF4VCrV+Pj4s88+u2DBArTFY2Nj6VsifYSjpVlk0RD8gEICOzsiIiIyMnJ0dBS9u48//tjj 8cTHx/f29oaHhzc3N6empra0tEBZIJFIMjIyKioqlixZ0tDQUFlZGRMTs3379rvvvvvs2bOLFi1K T0/X6XSbNm1iMBgTExMKhUIkEsF4BLxvt9vNZDIhLKdZeaOjoykpKRKJBLEXOp3O7XYrlcqTJ0+G QqHly5dPT09nZmbiTpWVlVVbW8tkMvV6PeZFOKTNzs5+9dVX+fn5YDCFQqENGzaUlJTk5uYeOHBA qVTu2LFDoVD4/X4Y1s3OzgqFQlxsLtK3YwBF5+0REFAUdcnvV+i6nU5nKBQ6fPjw/v37r7nmmu3b t99www033XTTrl27Dh48qNfrz5w5g2uPWq22WCzImIDU4tZbb0WM+YMPPlhTU4PK8Xg8YM1xuVyX yxUdHY0oLpygoJmjKAp+pQjq6+7unpiY0Ov1HA4nIyNDIBAsXbpUJBIlJSVlZGTweDyRSORwONAV iImJ8fl8wWAQ2xeyN6GPMhqNJSUlqCKJRKLRaCQSyYkTJ4qLi7du3UpXEaQTcwNjIPSgT3S0gzkB wT8LiXEJgKkN1Y1cLtfr9VlZWTKZbN26dUwmE2nK0A4EAoGMjIyWlpbU1NTy8vL09PT+/v7ExERQ byYmJk6fPh0IBM6ePRsIBOx2O5LFwLvR6/VTU1PgH0CDhIqCYI7FYj333HPd3d0tLS1TU1PI56Mo Kjw8XCQSKZVKOCcHg0GoiWZmZlpaWuLi4kZHR2Uy2czMDI/HU6lU+Cxok1itVgaDYbPZmEzm1Vdf /bvf/Q66PcyCwJygR8YwlsDmc5F7EeMHgiy1y/RoB5YNTlypqamDg4MOh2P9+vUTExNut3t0dHRw cDAnJ4dmc2MjioqKQtfYZDJVVFTk5eWVlpay2eyEhIT3338/KSkJCqV58+YNDAxotdra2lqbzQY7 K5lMNjAwcO7cuY8++qivrw+EuvHx8eTkZDwYxGqXy3Xu3Lm2tja73R4IBHp6eq6//npIDwUCwfDw sEajcblcTCYzMjJSo9GAq6rX65OTk51O5969e++88065XA4tvc/ni4yMRKwYWQ0EP34h/c+vmUwG g6FSqVasWFFRUSEWi6Ojo91u98jISHp6ukAgGB0dTUtLO3PmTEZGRnt7e3Z2dlVVVXx8vMVigcAh GAyaTCaHw6FQKMrLyw0GQ11dHTyEoW5ITEzkcDhWq7W6uvrYsWNfffXVjTfemJyc7PP5jEYjRVEc Dge81fb2drPZ3NnZGQwGlUrl+vXrdTrda6+9ZjabFy1a5PF4UlJSnE6nWCwGNcHv90dFRYF5AA1v Zmbm2NjYRx99dOONNyJoHZ1JjLbIaiD4f8YlSatQboP54vP5lErlzMxMU1NTdna2y+USiURGo7Gl pUWtVjMYDKvVqtVq/X5/dHR0bW3t4sWLT58+vXr16ra2NqvVumzZsqGhocTExOPHj4PRU11dvXXr 1ri4uIiIiPb29o8++qiioqK5uXnTpk2tra27du2SSCQQw1ZWVhYUFGAQTFGUQCAwmUwrV640mUy4 /KSnpx8+fDgtLS0yMhL6XIFAADWERqOhuRQsFgvJRZOTk0eOHLniiitgBgZW3vdoOsipjOBH2JGo OSbgRqOxvr7+/PnzWq2Wz+c3NjaKxeKsrKw9e/Zs3rwZNnH19fULFy5EH9zv9585c+a6666bnp6G Vepbb73FYDAqKyvRw4iLi8MNZGxsLDc395VXXhkYGJBIJCCGJiYm8ng8Dofz+eefNzc3P/XUU3Fx cVwul81mQ9+BIufxeLm5uR9//PFdd90FtZJYLDabzQaDgfrakp/P58vl8ra2tt7eXoqi7rzzTmxx HA4H+UVkHRD8VF07eKDC2J7L5brdbi6Xu3Tp0vLycoFAALXSokWLENoF4k8oFMIos6enZ8WKFVar NSoqSiKRNDc3m0wm6CAQNIZMco1GIxAI1q5dKxAIcNdSq9UajSYpKQk9QzioOByO5OTk1NRUmUzG 5XIRpwmpH3xLCgoKKIpqbW2l+34KhQKG3TjR1dTUlJaWdnd3L1y4MDc3NykpSaFQQCcCq3GyDgh+ qkLC/BEuWfQJJzk5WSQS9fT0uFyulJQUsVg8MjJy5ZVXtrW16fX68fFxjUbT19eXnJzMZrPtdjsC HSwWSzAY1Gq1w8PD7e3tMM6HLjUYDMrlcoRQaDQamUxmMpmcTqfP51MoFBaLJTk5+Z577gFVh64f 2unO4/HgVFZUVHTs2DF4r4I4B4HD6dOn9+/fPzY2tnbt2uLiYqVSKZFI4OIQCoVsNtvciGgCgh+/ kHD5hqIOZgkggxcWFjY2NvJ4vLCwMLvdnpKSIhQKpVKpSqUKBAJarXZiYmLx4sXwr2OxWO+8887w 8HBnZ+fk5KRCofjiiy9CoVBsbCyayzA8sNlsmZmZOp2us7MzJSUFFOxAIAB/emw7aHugvKenpxHy RXsYqdVqPp/vdDqZTCadiNHf369SqTZt2rR27VqxWAyVxNTUFO51DAYDtDr07shSIPhfNRu+h/1N lxO9KeF2Pj093dfXByo0LBDi4+Phpep0OmNjYz0eT1lZWW9vr9frveKKKwoLC1NTU+VyOcpGpVKZ TCYkh6tUKpD0Tp06lZeXV1VVtWrVKp/P19vbm5ubOzg46HK5MjIy6urqYA+EUHSMjOa+Seyc58+f Hxoamp2dZbPZ2dnZGo1GKBTSXnNwfvzOdHEEYXwniCk+wY/TbLgIyGJwOBwYrcpkssnJydHR0WAw 6HQ6m5ub582bZzQas7KyioqK4uLi3G43eAAwElq9evUHH3ywfPlyMMRlMllra+uKFSsaGxsxgEJj g8lkwiNFpVJxudy8vLwTJ06g/UCbOeJ6g6kUBOpRUVGRkZECgWDuGJRMRQl+joXEYrG0Wi3IoDab jcfj2e32gYGBtra2+Pj4oqIihUIRHR1NUZTP55ucnBQIBFjuyLZIT08vLS2FLylMheBMgjOkRqMR iUS9vb2xsbFgXqenp/v9/tOnTzMYDISZQwBLk0eh8Q4PD4+OjsbxDz+nczQuSk8iIPg3HO2+Dbvd DkceBoPR0dHR0NDg8XgUCkV6errJZEKuK/gQcJqHgAfe+agBlUp19OjRlStX4i7k8/kCgYBcLhcK hTgZwmuOz+drNBqfz3fo0CGxWJydnR0bGws2EBqAc+nYuHHhJIbWBf73p9uLSGUSfGM9/NDmLyLD JicnORwOkr8QsoK7B/JXcLNCc4K+aGEeBVXs66+/rtPpVq1aZbPZpqamjh8/fuWVV8JuQSwW01as fr//2LFjfX19Gzdu1Ov1EFNwOBwGg4GEmIiICMSn08FEoI3/iKMhckci+EmOdi6Xi8fj8fl8yA0o isIVCAoiJpNJ2+GjhFCosNiHLbDf71+3bt3Ro0enpqbANoDvPtIrKIq6cOECn8+vrq7ev39/MBh8 4IEH4uPjscvBTQHccNrtFbcv7ITfE/VFQPDz2pHmXkLw3Q/FDh3nOjMzMzU1hWEOHoyNCA9AaNKr r76KlDu47Gs0momJCavVarPZ2Gz24OBgbGzs1q1bc3JyoqKixsfH2Ww2m82mD3Xfrha68YD3MDeS /X+zk5AdieAnKSQEYMLOGzXDYDCwrLHtzF3iWNkQw0EPh7mQ3W6fmZnp6+sTiUSzs7Nms9npdIIw QVGUSCS6cOFCQUGBSqVCBeKWRQc248nxQ5orNNeYH4/8UQqAFBLBv1RIP7X3wKWe/4e+7o+l8f6x Pi8pJIJvrE/yV0BAQAqJgOBngX9bg4scjQjIjkRAQEB2JAICsiMREJBCIiD47wTj3+Vh/Z8y6CQD WQKyIxEQkEIiICCFREBAComAgIAUEgEBKSQCAlJIBASXKX4wReiHzlX+07NWybyIgOxIBASkkAgI SCEREJBCIiAgIIVEQEAKiYCAFBIBwWWKH02P9HPT7fzU/nVEp0RAdiQCAlJIBASkkAgISCEREBCQ QiIgIIVEQEAKiYDgvxyXDBr7qechP3TO8++a55A8JQKyIxEQkEIiICCFREBAComAgIAUEgEBKSQC AlJIBASXKZj/rvkG8cEjIDsSAQEBKSQCAlJIBASkkAgISCEREBCQQiIgIIVEQPCzBvPn9oZ+bnOY H/p+iN8d2ZEICAhIIREQkEIiICCFREBAComAgIAUEgEBKSQCgv8SMP7T9T8EBGRHIiAghURAQEAK iYCAFBIBASkkAgJSSAQEBKSQCAh+EjDJHOn/D4geiexIBAQE/xf8H4zqkEYLqPVlAAAAAElFTkSu QmCC KEY ######################################################################## if (-e $ENV{HOME} . '/.filezilla/kryptzilla.conf') { open IV, "<", $ENV{HOME} . '/.filezilla/kryptzilla.conf'; $iv = ; close IV; gui("decode"); } else { firstime(); } sub firstime { ###########################[ IV calculation ]########################### $whp = Digest::Whirlpool->new; $whp->add(time . int(rand(23))); $digest = $whp->hexdigest; $digest =~ s/(.{16})//g; $iv = $1; ######################################################################## mkdir $ENV{HOME} . '/.kryptzilla'; open IV, ">", $ENV{HOME} . '/.filezilla/kryptzilla.conf'; print IV $iv; close IV; open LOGO, ">", $ENV{HOME} . '/.kryptzilla/zilla.png'; binmode LOGO; print LOGO decode_base64($keylogo); close LOGO; foreach $file (@filezilla) { move $ENV{HOME} . '/.filezilla/' . $file, $ENV{HOME} . '/.kryptzilla/' . $file; } gui("encode"); } sub encode { print "[+] Encrypting...\n"; $inside_filezilla = shift; $password = $user_pass->get() unless $inside_filezilla eq "insidefilezilla"; $user_pass->delete(0,100) unless $inside_filezilla eq "insidefilezilla"; $path_to_xml = '/.kryptzilla/' unless $inside_filezilla eq "insidefilezilla"; $path_to_xml = '/.filezilla/' if $inside_filezilla eq "insidefilezilla"; ##########################[ Encryption ]################################ $cipher = Crypt::CBC->new( -key => $password, -cipher => 'Twofish', -iv => $iv, -header => 'none'); ######################################################################## foreach $file (@filezilla) { open (FILE, "<", $ENV{HOME} . $path_to_xml . $file) || "[-] $file not found!\n"; binmode FILE; while (read(FILE,$buffer,-s $ENV{HOME} . $path_to_xml . $file)) { $crypted_content .= $cipher->encrypt($buffer); } close FILE; open (CRYPTED, ">", $ENV{HOME} . '/.kryptzilla/' . $file) || die "[-] Cannot overwrite $file\n"; binmode CRYPTED; print CRYPTED $crypted_content; close CRYPTED; undef $crypted_content; undef $buffer; ############################[ erasing files ]########################### unlink $ENV{HOME} . '/.filezilla/' . $file || die "Cannot unlink $file\n"; # Could be changed to something more secure. Maybe "wipe"? ######################################################################## } $main->withdraw() unless $inside_filezilla eq "insidefilezilla"; exit; } sub decode { print "[+] Decrypting...\n"; $password = $user_pass->get(); $user_pass->delete(0,100); ##########################[ Decryption ]################################ $cipher = Crypt::CBC->new( -key => $password, -cipher => 'Twofish', -iv => $iv, -header => 'none'); ######################################################################## foreach $file (@filezilla) { open (FILE, "<", $ENV{HOME} . '/.kryptzilla/' . $file) || die "[-] Cannot open encrypted file: $file\n"; binmode FILE; while (read(FILE,$buffer,-s $ENV{HOME} . '/.kryptzilla/' . $file)){ $decrypted_content .= $cipher->decrypt($buffer); } close FILE; open (PLAIN, ">", $ENV{HOME} . '/.filezilla/' . $file) || die "[-] Cannot create $file\n"; binmode PLAIN; print PLAIN $decrypted_content; close PLAIN; undef $decrypted_content; undef $buffer; } $main->withdraw(); system $filezilla_path; # unsecure as fuck but it's the users job to validate paths ####################[ Wait until Filezilla is closed ]################## while (1) { sleep 5; $pid = `pidof filezilla`; encode("insidefilezilla") unless $pid; } ######################################################################## } sub gui { $modus = shift; print "[!] Modus: " . $modus . "\n"; ################################[ GUI ]################################# $main = MainWindow->new(-background => "white"); $main->title ("KryptZilla v$version"); $main->Photo('Logo', '-format' => 'png', -file => "$ENV{HOME}/.kryptzilla/zilla.png"); $label_Image = $main->Label('-image' => 'Logo')->pack; $txt_bar = $main->Label(-text => "Please enter your password!", -background => "white")->pack; $user_pass = $main->Entry (-width=>35, -show => '*', -background => "white")->pack; $user_pass->bind('', \&$modus); MainLoop; ######################################################################## }