Survey
2.2.2
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Build for Survey 2.2.2.
Build for Survey 2.2.1.
Build for Survey 2.2.0 rc1.
Build for Survey 2.2.0 beta2.
Build for Survey 2.2.0 beta1.
A customer survey tool.
Ein Kundenumfragen Werkzeug.
Una herramienta de encuestas a clientes.
3.2.x
<br>
<strong>WELCOME</strong>
<br>
<br>
You are about to install the OTRS package Survey.<br>
<br>
<br>
<strong>ATTENTION</strong>
<br>
<br>
Make sure your database accepts packages over 5 MB in size. A MySQL database for example accepts packages up to 1 MB by default. In this case, the value for max_allowed_packet must be increased. The recommended maximum size accepted is 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>WILLKOMMEN</strong>
<br>
<br>
Sie sind im Begriff das OTRS-Paket Survey zu installieren.<br>
<br>
<br>
<strong>ACHTUNG</strong>
<br>
<br>
Vergewissern Sie sich, dass ihre Datenbank Pakete mit einer Größe von mehr als 5 MB akzeptiert. Eine MySQL Datenbank akzeptiert beispielsweise standardmäßig Pakete mit einer Größe von maximal 1 MB. In diesem Fall muss der Wert für max_allowed_packet erhöht werden. Empfohlen werden 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>BIENVENIDO</strong>
<br>
<br>
Está apunto de instalar el módulo de encuestas de OTRS.<br>
<br>
<br>
<strong>ATENCIÓN</strong>
<br>
<br>
Asegúrese de que su base de datos acepta packetes de arriba de 5 MB de tamaño. Por ejemplo una base de datos MySQL acepta packetes de arriba de 1 MB por defecto. En este caso el valor max_allowed_packet debe ser incrementado. El tamaño máximo recomendado es de 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>ATTENTION</strong>
<br>
<br>
If you uninstall this package, all database tables that were created during installation will be deleted.
All data from these tables will be irrevocably lost!
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>ACHTUNG</strong>
<br>
<br>
Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
Alle darin enthaltenen Daten gehen unwiderruflich verloren!
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>ATENCIÓN</strong>
<br>
<br>
Si usted desinstala este paquete, todas las tablas de la base de datos creadas durante la instalación serán borradas.
¡Todos los datos de esas tablas serán irrevocablemente perdidos!.
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>WELCOME</strong>
<br>
<br>
You are about to upgrade the OTRS package Survey.<br>
<br>
<br>
<strong>ATTENTION</strong>
<br>
<br>
Make sure your database accepts packages over 5 MB in size. A MySQL database for example accepts packages up to 1 MB by default. In this case, the value for max_allowed_packet must be increased. The recommended maximum size accepted is 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>WILLKOMMEN</strong>
<br>
<br>
Sie sind im Begriff das OTRS-Paket Survey zu aktualisieren.<br>
<br>
<br>
<strong>ACHTUNG</strong>
<br>
<br>
Vergewissern Sie sich, dass ihre Datenbank Pakete mit einer Größe von mehr als 5 MB akzeptiert. Eine MySQL Datenbank akzeptiert beispielsweise standardmäßig Pakete mit einer Größe von maximal 1 MB. In diesem Fall muss der Wert für max_allowed_packet erhöht werden. Empfohlen werden 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>BIENVENIDO</strong>
<br>
<br>
Esta apunto de actualizar el módulo de encuestas de OTRS.<br>
<br>
<br>
<strong>ATENCIÓN</strong>
<br>
<br>
Asegúrese de que su base de datos acepta packetes de arriba de 5 MB de tamaño. Por ejemplo una base de datos MySQL acepta packetes de arriba de 1 MB por defecto. En este caso el valor max_allowed_packet debe ser incrementado. El tamaño máximo recomendado es de 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
# define function name
my $FunctionName = 'CodeUpgradeFromLowerThan_2_1_5';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# The code module has just recently been copied to it's location in the file system.
# In a persistent Perl environment an old version of the module might still be loaded,
# as watchdogs like Apache2::Reload haven't had a chance to reload it.
# So we need to make sure that the new version is being loaded.
# Kernel::System::Main::Require() checks the relative file path, so we need to remove that from %INC.
# This is only needed in persistent Perl environment, but does no harm in a CGI environment.
my $CodeModulePath = $CodeModule;
$CodeModulePath =~ s/::/\//g;
$CodeModulePath .= '.pm';
delete $INC{$CodeModulePath};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start methode
if ( !$CodeObject->$FunctionName(%{$Self}) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method $FunctionName() on $CodeModule.pm."
);
}
}
# error handling
else {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method new() on $CodeModule.pm."
);
}
}
# define function name
my $FunctionName = 'CodeUpgradeFromLowerThan_2_0_92';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# The code module has just recently been copied to it's location in the file system.
# In a persistent Perl environment an old version of the module might still be loaded,
# as watchdogs like Apache2::Reload haven't had a chance to reload it.
# So we need to make sure that the new version is being loaded.
# Kernel::System::Main::Require() checks the relative file path, so we need to remove that from %INC.
# This is only needed in persistent Perl environment, but does no harm in a CGI environment.
my $CodeModulePath = $CodeModule;
$CodeModulePath =~ s/::/\//g;
$CodeModulePath .= '.pm';
delete $INC{$CodeModulePath};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start methode
if ( !$CodeObject->$FunctionName(%{$Self}) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method $FunctionName() on $CodeModule.pm."
);
}
}
# error handling
else {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method new() on $CodeModule.pm."
);
}
}
2013-06-27 17:54:25
opms.otrs.com
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDVlM+JElkOiBTdXJ2ZXkueG1sLHYgMS4zMiAyMDEyLzEwLzI0IDA4OjI5OjM0IG1iIEV4cCAkPC9DVlM+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRTdXJ2ZXkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BIFN1cnZleSBNb2R1bGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPlN1cnZleTwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZT5TdXJ2ZXk8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BIFN1cnZleSBNb2R1bGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZSBUcmFuc2xhdGFibGU9IjEiPlN1cnZleTwvTmFtZT4KICAgICAgICAgICAgICAgICAgICA8VHlwZT5NZW51PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz5JdGVtQXJlYTwvQmxvY2s+CiAgICAgICAgICAgICAgICAgICAgPExpbms+QWN0aW9uPUFnZW50U3VydmV5PC9MaW5rPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+U3VydmV5PC9OYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEFjY2Vzc0tleT51PC9BY2Nlc3NLZXk+CiAgICAgICAgICAgICAgICAgICAgPFByaW8+ODAwMDwvUHJpbz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5PdmVydmlldzwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPE5hbWUgVHJhbnNsYXRhYmxlPSIxIj5PdmVydmlldzwvTmFtZT4KICAgICAgICAgICAgICAgICAgICA8TGluaz5BY3Rpb249QWdlbnRTdXJ2ZXk8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+U3VydmV5PC9OYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEFjY2Vzc0tleT5vPC9BY2Nlc3NLZXk+CiAgICAgICAgICAgICAgICAgICAgPFByaW8+MTAwPC9QcmlvPgogICAgICAgICAgICAgICAgPC9OYXZCYXI+CiAgICAgICAgICAgICAgICA8TmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk5ldzwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPE5hbWUgVHJhbnNsYXRhYmxlPSIxIj5OZXc8L05hbWU+CiAgICAgICAgICAgICAgICAgICAgPExpbms+QWN0aW9uPUFnZW50U3VydmV5O1N1YmFjdGlvbj1TdXJ2ZXlBZGQ8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+U3VydmV5PC9OYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEFjY2Vzc0tleT5uPC9BY2Nlc3NLZXk+CiAgICAgICAgICAgICAgICAgICAgPFByaW8+MjAwPC9QcmlvPgogICAgICAgICAgICAgICAgPC9OYXZCYXI+CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+U3VydmV5LkFnZW50LkRlZmF1bHQuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTU19JRTc+U3VydmV5LkFnZW50LkRlZmF1bHQuSUU3LmNzczwvQ1NTX0lFNz4KICAgICAgICAgICAgICAgIDwvTG9hZGVyPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFN1cnZleVpvb20iIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3Igc3VydmV5IHpvb20gaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlN1cnZleSBab29tIE1vZHVsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+U3VydmV5PC9OYXZCYXJOYW1lPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlN1cnZleS5BZ2VudC5EZWZhdWx0LmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1NfSUU3PlN1cnZleS5BZ2VudC5EZWZhdWx0LklFNy5jc3M8L0NTU19JRTc+CiAgICAgICAgICAgICAgICAgICAgPEphdmFTY3JpcHQ+U3VydmV5LkFnZW50LlN1cnZleVpvb20uanM8L0phdmFTY3JpcHQ+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxMb2FkZXI+CiAgICAgICAgICAgICAgICAgICAgPENTUz5TdXJ2ZXkuQWdlbnQuRGVmYXVsdC5jc3M8L0NTUz4KICAgICAgICAgICAgICAgICAgICA8Q1NTX0lFNz5TdXJ2ZXkuQWdlbnQuRGVmYXVsdC5JRTcuY3NzPC9DU1NfSUU3PgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iUHVibGljRnJvbnRlbmQ6Ok1vZHVsZSMjI1B1YmxpY1N1cnZleSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgUHVibGljU3VydmV5IG9iamVjdCBpbiB0aGUgcHVibGljIFN1cnZleSBhcmVhLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpQdWJsaWM6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlB1YmxpYyBTdXJ2ZXkuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPlN1cnZleTwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZT5TdXJ2ZXk8L1RpdGxlPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlN1cnZleS5DdXN0b21lci5EZWZhdWx0LmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1NfSUU3PlN1cnZleS5DdXN0b21lci5EZWZhdWx0LklFNy5jc3M8L0NTU19JRTc+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6OlNob3dWb3RlRGF0YSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBpbiB0aGUgcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYSBzcGVjaWZpYyBzdXJ2ZXkgcmVzdWx0IHdoZW4gdGhlIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSB0aGUgc2Vjb25kIHRpbWUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6U3VydmV5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpTZW5kUGVyaW9kIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFtb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpTdXJ2ZXk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjMwMDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6Tm90aWZpY2F0aW9uU2VuZGVyIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlN1cnZleTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+cXVhbGl0eUBleGFtcGxlLmNvbTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6Tm90aWZpY2F0aW9uUmVjaXBpZW50QmxhY2tsaXN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlN1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT48L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6Tm90aWZpY2F0aW9uU3ViamVjdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6U3VydmV5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5IZWxwIHVzIHdpdGggeW91ciBmZWVkYmFjayE8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6Ok5vdGlmaWNhdGlvbkJvZHkiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlN1cnZleTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxUZXh0QXJlYT5EZWFyIEN1c3RvbWVyLAoKVGhhbmtzIGZvciB1c2luZyBvdXIgc2VydmljZS4gSGVscCB1cyB0byBpbXByb3ZlIHVzIGFuZCBvdXIgc2VydmljZXMuCgpQbGVhc2UgZ2l2ZSB1cyBmZWVkYmFjayBvbiBob3cgdG8gaW1wcm92ZSBvdXIgc2VydmljZXM6CgombHQ7T1RSU19DT05GSUdfSHR0cFR5cGUmZ3Q7Oi8vJmx0O09UUlNfQ09ORklHX0ZRRE4mZ3Q7LyZsdDtPVFJTX0NPTkZJR19TY3JpcHRBbGlhcyZndDtwdWJsaWMucGw/QWN0aW9uPVB1YmxpY1N1cnZleTtQdWJsaWNTdXJ2ZXlLZXk9Jmx0O09UUlNfUHVibGljU3VydmV5S2V5Jmd0OwoKVGhhbmtzIGZvciB5b3VyIGhlbHAhCgpZb3VyIE9UUlMtVGVhbQogICAgICAgICAgICA8L1RleHRBcmVhPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6U2VuZE5vU3VydmV5UmVnRXhwIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpTdXJ2ZXk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPihNQUlMRVItREFFTU9OfHBvc3RtYXN0ZXJ8YWJ1c2UpQC4rP1wuLis/PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0OjpFdmVudE1vZHVsZVBvc3QjIyM5OS1TdXJ2ZXlTZW5kUmVxdWVzdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaWNrZXQgZXZlbnQgbW9kdWxlIHRvIHNlbmQgYXV0b21hdGljYWxseSBzdXJ2ZXkgZW1haWwgcmVxdWVzdHMgdG8gY3VzdG9tZXJzIGlmIGEgdGlja2V0IGlzIGNsb3NlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpTdXJ2ZXk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpFdmVudDo6U3VydmV5U2VuZFJlcXVlc3Q8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkV2ZW50Ij4oQXJ0aWNsZUNyZWF0ZXxUaWNrZXRTdGF0ZVVwZGF0ZSk8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6OkZyb250ZW5kOjpPdmVydmlldyMjI1NtYWxsIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlN1cnZleU92ZXJ2aWV3PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlN1cnZleU92ZXJ2aWV3U21hbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiPlNtYWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQYWdlU2hvd24iPjI1PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJbWFnZSI+b3ZlcnZpZXdzbWFsbC5wbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltYWdlU2VsZWN0ZWQiPm92ZXJ2aWV3c21hbGwtc2VsZWN0ZWQucG5nPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpGcm9udGVuZDo6QWdlbnRTdXJ2ZXkjIyNTaG93Q29sdW1ucyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW5zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6Vmlld1N1cnZleU92ZXJ2aWV3PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik51bWJlciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkludHJvZHVjdGlvbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5vdGlmaWNhdGlvblNlbmRlciI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTm90aWZpY2F0aW9uU3ViamVjdCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTm90aWZpY2F0aW9uQm9keSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU3RhdHVzIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDcmVhdGVCeSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlVGltZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlQnkiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6OkZyb250ZW5kOjpIVE1MUmljaFRleHRIZWlnaHREZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciBSaWNodGV4dCB2aWV3cyBmb3IgU3VydmV5Wm9vbSBlbGVtZW50cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlN1cnZleVpvb208L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSJeWzAtOV17MSw0fSQiPjgwPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpGcm9udGVuZDo6SFRNTFJpY2hUZXh0SGVpZ2h0TWF4IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciBSaWNodGV4dCB2aWV3cyBmb3IgU3VydmV5Wm9vbSBlbGVtZW50cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlN1cnZleVpvb208L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSJeWzAtOV17MSw0fSQiPjI1MDA8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6OlNlbmRJbkhvdXJzQWZ0ZXJDbG9zZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBhbW91bnQgaW4gaG91cnMgYSB0aWNrZXQgaGFzIHRvIGJlIGNsb3NlZCB0byB0cmlnZ2VyIHRoZSBzZW5kaW5nIG9mIGEgc3VydmV5LCAoIDAgbWVhbnMgc2VuZCBpbW1lZGlhdGVseSBhZnRlciBjbG9zZSApLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlN1cnZleTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9Il5bMC05XXsxLDV9JCI+MDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6QW1vdW50T2ZTdXJ2ZXlzUGVyMzBEYXlzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyB0aGF0IGdldCBzZW50IHRvIGEgY3VzdG9tZXIgcGVyIDMwIGRheXMuICggMCBtZWFucyBubyBtYXhpbXVtLCBhbGwgc3VydmV5IHJlcXVlc3RzIHdpbGwgYmUgc2VudCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6U3VydmV5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iXlswLTldezEsNH0kIj4wPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpIb29rIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6U3VydmV5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5TdXJ2ZXkjPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iUHJlZmVyZW5jZXNHcm91cHMjIyNTdXJ2ZXlPdmVydmlld1NtYWxsUGFnZVNob3duIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6UHJlZmVyZW5jZXM8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6UHJlZmVyZW5jZXNHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb2x1bW4iPk90aGVyIFNldHRpbmdzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMYWJlbCIgVHJhbnNsYXRhYmxlPSIxIj5TdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iS2V5IiBUcmFuc2xhdGFibGU9IjEiPlN1cnZleSBsaW1pdCBwZXIgcGFnZSBmb3IgU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRhdGEiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEwIj4xMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxNSI+MTU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMjAiPjIwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjI1Ij4yNTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzMCI+MzA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMzUiPjM1PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGF0YVNlbGVjdGVkIj4yNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJlZktleSI+VXNlclN1cnZleU92ZXJ2aWV3U21hbGxQYWdlU2hvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjgwMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KPC9vdHJzX2NvbmZpZz4K
iVBORw0KGgoAAAANSUhEUgAABA0AAAMSCAIAAACOOKp6AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAfQAAAH0AG5i+efAAAgAElEQVR4nOzdeUAUR9438OoZZpgBRBABcZBTRFSQPOAVj3hLDol4x9uVRI1G3TfigQLGe+OVRNB4RYzgEVlUxKhBYhLdFe8LgUFOHUBEQQ6Rud8/6tneeQZmGBDk8Pv5q6e6uqq6xe7+VVdXM2q1mgAAAAAAAGjgNHUDAAAAAACg2UGcAAAAAAAA2hAnAAAAAACANsQJAAAAAACgzUjzh0KhuHPnTkpKytOnT6VSKY/Hs7a27tq1q6+vr0AgoHmqqqo2b95sSNFjx4718vL64YcfiouL/1ufkVGbNm2cnJz69etnY2NT44ZPnz69du1aTk5OeXm5Wq02MTGxsrKyt7fv0aNHhw4d9NR49+7djIyMZ8+evXz5UqFQGBsb29ra9ujR43/+5384HIMiIrVaff369Tt37hQVFXE4nA4dOvTt27d79+6GbKu1p5pmzZrl5ORkSCHvMpVKtXbtWoFAsGLFiqZuCwD8H/U+LbdcarU6Nzc3LS0tNzf3xYsXSqXSzMzM0dGxX79+dnZ2BpZQ7wsKAEBz8N844dmzZ8ePH3/x4gUhxMrKqkOHDpWVlXl5eRKJJCkpacKECY6OjoQQDodjb2+vWURFRcXLly8FAkH79u01001MTNjlDh060J8ymaywsPDOnTsPHjyYPHly586dtRp069ats2fPqlQqgUDQsWNHLpdbXl6em5ubk5NTVlY2duxYPTvz119/FRcXCwQCS0tLLpdbVlaWk5OTk5Nz//79GTNmGBkZ6dmWEKJWq3/55ZfU1FQjIyNHR0elUvn48eMTJ048ffp02LBh+rdltW/fno2pWMbGxgZuDgDQ3LzJabnlevTo0ZEjRwghHA6nXbt2PB7vxYsX9+/fT05OHj169Hvvvad/8wa5oAAANK3/vXV++fJlZGRkZWVlp06dRo8ezfb0l5WV/frrr2lpaVFRUbNnz+7YsSOfzw8MDNQsIikp6fz58/b29tOmTdNVzfDhw9mQoKqqKiYmJiMjIy4ubvHixVwul81WXFz866+/qlSq4cOH9+vXj131+vXrtLS0169f69+ZESNGdOjQwdLSkk3JzMyMiYl5/PjxtWvX+vfvr3/zO3fupKammpubz549mxYikUh+/vnny5cvu7m5OTg46N+c8vPzqx78AAC0UG94Wm7R7O3t+/Tp4+7uzufzCSEymey33367efNmfHy8k5OT5rWmuga5oAAANK3/HY1z5syZysrKjh07zpgxQ3M4kLm5+aRJk7p27SqXy0+ePKlSqd68SoFA4O/vTwgpKysrKCjQXJWamqpUKl1cXAYMGKAZPwiFwvfee+/999/XX7KHh4fWidvV1bVPnz6EkMePH9fasCtXrhBCRo0axRZib29Powu6CgDgXfOGp+WWy8XFJTAw0NPTkwYJhBA+n//xxx/b2toqlcrU1FT9m+OCAgCtgBEh5OnTp5mZmYSQjz/+mMfjaeVgGObjjz9+9OhRUVFRenp6165d37xWc3NzMzMzOmBJcxRTZWUlXfvmVbDoha3WkT/Pnj0rLi7m8/laO+jp6Xnp0qXMzEy5XF794BiOHXy/fPnya9eu3blz5/nz5zwej47Fz8zMfPjwoUQiKSkpUalUZmZmTk5OAwYMsLa21lXCrVu3iouLjY2NPTw8RowYIRAIKisrL126lJaWVllZ2bZt2969e/ft21erGVVVVUlJSampqSUlJWq12srKytPTs0+fPuygLJVK9Y9//EOpVK5YsYJNvHPnzunTpwkh8+fPt7W1pYkFBQV79uxxdHScPXs2TSkuLr58+XJWVlZFRQWfzxeJRL179+7SpYvhx6E6qVT6yy+/ZGZmenh4jB079k3+CQCgHgw/LT9//jw8PLxDhw7z5s3TTC8uLv7hhx8003WdB/72t7/t2rXL3Nz873//O8MwmoVUVVVt3bpVrVYvXbpUKBQSA85mz58/j4iIMDU1/fvf/64Z4dCd2r59O8MwX3/9dfWRolSNQ1UZhhGJRIWFheXl5XoORWNfUAAA3g4OISQtLY0QYmNjIxKJaszUpk0bOpZGLBY3VMVKpZIQovV6sYWFBSEkMzOzoqKiQWp5+vTp9evXGYbx8fHRn5M+2bC1tdW6nLRr104oFCqVyqKiogZpUlxc3Pnz59VqtaOjY5s2bWjihQsX7t27Z2xs7O7u7uHhwePx7t27t2/fvidPnlQv4cyZMwkJCSYmJq6uriqV6tatW0eOHHn16tX+/fuTk5M7dOjQqVOnly9fnj9//l//+pfmhsXFxXv27Pnjjz+qqqo6d+7s5uZWUVGRkJDw888/y+VymofD4Tg6OioUCs0nMNnZ2VoL7LKzszP9mZOT8+OPP965c4fH43l4eNjY2GRmZh45cuTixYuGHwct5eXlBw8ezMzM7N2798SJE3FZBXj7Gvy0rEnrPGBjY2NnZ1dWVpaVlaWV8+HDhwqFwt3dnQYJhpzN2rdv7+LiUlFRQa9xmu7cuaNQKHr06KErSNCjpKSE1BY4vbULCgBAozIihBQWFhJCtN5O1iISicRi8dOnTxukVolEQke1ak2U0b1790uXLpWXl+/cubNbt24ODg52dnY2NjYGzlZEJSUlpaenq9Xq8vLy58+ft2/ffvTo0fQlbD1evnxJCGnbtm31Vebm5q9fv3758mXHjh0Nb0aNqqqq0tLSZs+eTdujVqtp+tChQ52dnTUfety7d+/UqVPx8fHz58/XKiEzM3P+/Pn0rfFXr17t3bv38ePHP/30k7W19bhx4+gj8qysrMOHD1++fJntXVOpVMeOHSspKRk2bNiAAQNoX51CoTh58uTDhw8vXbo0cuRIWoWzs3N6enp2draLiwtNyc7OtrKyKi0tzcrKYp9R0As5jROkUumJEydkMtmQIUMGDRpEC8/JyYmOjr5y5Yqjo6Obm5shx0FTUVFRVFRUWVnZ8OHDBwwY8GYHHgDqqUFOyzWq8Tzg7e1dUFBw7949V1dXzcz37t0jhPTs2ZPU5WzWu3fvzMzMmzdvas4ypFarb968SQjp1atXXdv89OnTnJwcDofj4eGhJ9vbuaAAADQ2I0LIq1evCCFmZmZ68tG1NOebkMvlubm58fHxhBAPD4927dpprjUxMZk5c+apU6cKCgru3Llz584dQgifz+/cufP777+vP5JhPX/+nO2LYhjGwsJCc+YlXWQyGa2r+iqaKJVKDak9KipKK6V3794fffQR+3PYsGFs0MI+WK8+mqtnz57379/PzMykoY7mqg8//JBNMTU1/Z//+R96Ff/888/Z9ru4uHTs2DEvL6+goKBTp06EkJSUlGfPnrm7uw8cOJAtysjIyN/f/9GjR7du3Ro+fDi98NNb/6ysLDopR1FRUXl5eb9+/QoKCnJzc1UqFYfDoXN38Hg8+o9y//79V69ederU6YMPPmALd3JyGjRoUGJi4tWrV7XiBF3HgZWbm3vs2DGZTBYQEODl5VXzsQaAxtcgp2Vdqp8HPD09f/vtt9TUVJlMxp7QiouLHz9+bGpqSs8khp/NunTpYmlpmZ2drXkizczMLCkpEYlEdb1Tl0ql//znP9Vqdf/+/eljFl0a6oICANC0apkqtKFo3T1zOJyePXt+/PHH1XPa2trOnTtXIpFkZmZKJJKCgoKKioqUlJTU1NRRo0ZVH3Bf3SeffPLJJ5+oVKqXL1/euXPnX//6V3Z29rRp09gRMo3KxsZG60G21qvV3bp1q3FDhUKRm5v7/Pnzqqoq2q9GhwW/ePFCM05gGEZrPiW6tlOnTlr1tm/fPi8vr6ysjP7MyMgghNjb21f/yEP79u3z8/OLi4tpUba2tiYmJgUFBVVVVQKBgB1fJBAIcnJy8vLyOnXqlJeXJ5PJXF1d6VP13NxcQkiPHj20Svb09ExMTHz8+DGNLgw5DoSQhw8fnjx5ksvlTp06lX2mAQBN5c1Py7pUPw+YmJi4ubmlpaWlpKR4e3vTRPowwcvLi55GDD+bMQzTq1cvOkmRn58fzXPjxg1S94cJCoXi2LFjRUVFzs7OQ4YMqeueAgC0REaEEFNTU1LbswI6MpXmrAf6/QS1Wl1ZWfns2TMOh2NlZVVjXwtlb2/PdlMVFBRcvHgxMzPzwoULzs7O7Hu0+tEZr4cNGyYQCBISEs6fP681gEcLO+1d9VU00cBvIIwcOVLPvKh8Pr/GhxsPHjw4d+4cDQy0aHU78fl8rbfr6J169WJpOn0PhPxnTG1iYmJiYmKNbWPnN2QYxtnZ+eHDh7m5ue7u7llZWfSlBaFQeOnSpezs7E6dOmkOOiKE0Gik+iyBFhYWHA5HoVC8fv1a849H13Gg+xsTE6NWq6dOnfp2QjsAMMSbn5a16DoPeHt7p6Wl3b17l8YJarX6/v375D+DjkhdzmaEkPfee+/SpUt3794dNmwYj8crLS199OiRUCis3q+hBw0S6Nnvs88+03rroMZdIw1xQQEAaFpGhBBbW9vU1FSJRKInX15eHqn2OoHhNL+fUFBQEB0d/fvvvxsbG9NJS/Wzs7ObMmVKeHh4SUlJampqXS9IXl5eCQkJhYWFtHdcVzb6EJntfddEE2scaVpXNY7olUgksbGxQqFw9OjRzs7Obdq0oS/sxsXF3b59Wytz9SE6+tNZ9BnFoEGDdP0jWllZscs0TsjKyurSpUtOTo69vb2xsbFIJDI2Ns7Kyho0aBB9yFDvzn49I5v5fL6rq2tKSspvv/02ffp0Q8aMAcBbVqfTco0vIBHd5wE3NzcTE5Pc3NyXL19aWFg8fvy4pKSkQ4cO7LmrTmczoVDo6el5+/bt5OTk995779atWyqV6r333qv1y5sshUJx/PjxjIwM+pkgPT1crLdzQQEAaGxGhBB3d/c//vijsLCwoKCgxs/RV1RU0Oe87u7ub16lnZ3d2LFjf/7554sXL3p4eBgy3R6Xy+3YsWNJSUk9XpCoteOHotebp0+fao2QKSkpef36NZfL1ZyitGHdv39frVYPHTpUa1KmGq8x9UYvSyYmJnoG/LBoAJCdnU1HH9F+ffpUISsrq7KyUiKRCAQC9q+F/iPSTj5NL1++VKlURkZGdIoSQzAMM378+JMnTz548ODQoUMzZsyo91MsAGg81U/L9GSrUCi0ctb1vM3lcj09Pa9du3b//v1BgwbdvXuXEMKOQSJ1PJsRQvr06XP79u0bN254eXndvn2bYRhfX18DG6NUKn/55ZdHjx6JRKJp06YZ+BygCS8oAAANiEMIsbOzo/eFZ8+erX6KV6vVv/76q1KptLa21poLv95cXFzot9suXbqkmc4Okqnu+fPnhBBdE2jqkZ6eTggxNzfXP/+dra2tpaWlTCbTmkHvwYMHtMGG9CHVD72Iau1aRUVFTk5OA9ZCn+fcvn3bkI/ltWvXrm3bts+ePWN3n6Y7OzsrFIrLly8rlUonJyf2IQZ9E/Hhw4da5SQnJxNCHBwc6jQ1CofDGTt27HvvvVdYWBgZGal/nnIAaFSGn5bNzMwYhnn58iU7MylFT8J1QqOCe/fuyeXylJQUDofj6enJrq3T2YwQYmtr6+jomJ+f//vvv1dUVLi4uGhNoaGLUqk8fvx4enq6nZ3d9OnTDZ9EtQkvKAAADeh/795Gjx5tYmIikUgOHz784sULdnVFRUVMTExKSgqPxxszZsybT4THGjZsGIfDuXfvnuY00leuXImJicnOztY8+8tksvPnzxcWFnI4HD29R9nZ2deuXdPsuFKpVMnJyefOnSOEaPUeJSUlxcTE0HfjWPRLmRcuXGD7xfPy8uiHMxt1Xk56xdK85r1+/TomJqZ6zPYmevToYW1t/ezZs5MnT2q981BUVERf7NNEnyHcuHGDndRIM5FovJxACPHy8jI1NX38+PFff/3FjjGgPwkh/fr1q2trGYbx9/f39fUtKio6ePBgaWlpXUsAgAZh+GmZnisUCgX9j0+lpaUlJSXVtVI7OztbW9sXL14kJCRIpVI3NzfN54p1PZsRQnr37k0IoZ+UMfANZpVKdeLEifT09A4dOsyYMUNPkNCsLigAAA3ofwdoWlpazpw58/jx47m5uTt37rSxsWnTpk1lZWVhYSH9PPCECRN0fYWtfqytrXv27Hnnzp2LFy9+9tlnNFGtVicnJycnJ/P5fDpxkFQqffr0qVwu53A4fn5+WjOEanr16tW5c+fOnz/ftm1bU1NTlUpVXFxMLyGenp5a5+XHjx+npKSYmZmxL8YRQnx8fDIyMtLS0iIiIthvjdEp8Gr9/MKb6NWr161bt8RicXh4eKdOnaRSaXZ2tomJiYeHR2pqakPVwuVyp0yZEhUV9eDBA7FY7ODgYGJiIpVKnz17VlJSYm9vr3XtdHFxuXv3rkKh6Ny5Mzt2i06FRN+31owTjI2NJ0yYcOTIkd9///3BgwcdOnQoLy/Pzc1Vq9UDBgyoPimqIRiG+eSTT4yMjJKSkg4ePDhz5szq70kDQGOr02l5yJAhUVFRly9fFovFlpaWL1++fPbsWf/+/en9cZ307Nnzt99+u379Ovm/g45I3c9mhBA6xrWsrKxt27YGPhi/d+8efRqgUCiio6O11jo7O9OZo0kzu6AAADSg/77IZWtrO3/+/Dt37qSkpBQWFhYVFfH5fDs7u65du/bq1aseH62s1eDBg+lZ/vHjxw4ODoSQ999/39raOisrKz8///nz5zKZzMjIyNLS0sHBoVevXvpflXN0dBwyZEhubm5RUVFBQQGHwzEzM+vcubO3t7eB96kMw0ycOPH69et37tyhX9IRiUR9+/at07QY9WBubj5nzpzExMTs7OwHDx60adPGy8tr8ODBWoOy3pylpeXcuXNv3bqVkpIikUjo9ORWVlYeHh6az/QpNgzQjAfYqZDMzMxsbGw08zs5Oc2dO/fKlSuZmZkpKSl8Pt/FxaV3795v+E6Ln5+fkZHRlStXIiMjZ86caeBoAQBoKHU6Lbu4uEybNu3PP/+kk5N27NhxypQpVlZW9YgTvLy8Ll68qFKphEJh9Tv7Op3NCCEcDsfJyen+/fs+Pj4GPhhnB1zR4VVaan2zrqkuKAAADYjRNRMFAABA6yCTybZt26ZQKP7+97/r/6goAACwGux9AwAAgObp3//+t1Qq7dGjB4IEAADDvaXvMQMAALxlz549S0pKKisry8zM5PF4gwcPbuoWAQC0JIgTAACgdSorK7t9+zaHw7G1tR05ciTmQgAAqBO8nwAAAAAAANrwfgIAAAAAAGhDnAAAAAAAANoQJwAAAAAAgDbECQAAAAAAoA1xAgAAAAAAaEOcAAAAAAAA2hAnAAAAAACANsQJAAAAAACgDXECAAAAAABoQ5wAAAAAAADaECcAAAAAAIA2xAkAAAAAAKANcQIAAAAAAGhDnAAAAAAAANoQJwAAAAAAgDbECQAAAAAAoA1xAgAAAAAAaEOcAAAAAAAA2hAnAAAAAACANsQJAAAAAACgDXECAAAAAABoQ5wAAAAAAADajJq6AQAAAAA1U6lUTd0EgNaJYRiGYWrJo1ar305rAAAAAOqkW7duqampTd0KgFYoLCxszZo1+vPgeQIAAAA0X3/99ZePj09TtwKgVVm1apUh2RAnQLPg5uZWVlbW1K2A+hOJRLdv327qVgBAKyQQCExMTJq6FQCtipGRQSEA4gRoFoqKis6dO2dra9vUDYH6yMjI+Pzzz5u6FQAAANCQECdAc+Hg4CASiZq6FVAfUqm0qZsAAAAADQzzogIAAAAAgDbECQAAAAAAoA1xAgAAAAAAaEOcAAAAAAAA2hAnAAAAAACANsQJAAAAAO+05OTkjz76yNzcnMfjvffee2fPnqXpHTp0WL9+PZstJiaGYZiXL1/Sn127dv3uu++2bt1qbm7OMIy9vb1KpWIzBwYGtmvXjk6Ip1arIyMje/ToYWRkZGtru3jx4vLyckJISEiImZlZVVUVu9X48eM9PT3fwi6DIRAnAAAAALy7Kisrhw0blpeXt3v37qNHj1pYWIwdO1YikRiybUxMzHfffff555+HhYXl5eXduHGDpstkstjY2ClTphgbGxNCwsPDZ8+e3atXrxMnTixZsuTAgQOjR49WqVRjx4599epVYmIi3aq8vPzs2bNTp05tpD2FukKcAK1Ki+sRqaysXLJkibW1NY/HGzBgwI0bN8zMzM6fP6+/zbqaUevO6t8QAADeQampqc+ePduwYcPUqVPHjx8fGRk5ffr058+fG7JtcnLyjRs3tm3btmLFijZt2sTGxtL0hISEkpKSWbNmEUJev369evXqmTNnHjx4MCAgYOXKlYcPH/7zzz8TEhK8vb2dnJxOnTpFtzpz5kxVVdXkyZMbZ0ehzhAnQOvR4npE1Gr1lClTdu3a9fnnnx89erRHjx5Dhw7VDDZ00dWMxtsQAABaK1dX17Zt265cufLnn3/OyclxcHDYv3+/t7e3Idt++OGHdnZ2hBCBQDBmzJjY2Fi1Wk0IOX78ePfu3X18fAghN27cKCsrmz17NruVv7+/iYlJUlISwzBjx449c+aMUqmkW/Xv39/JyakxdhPqAd9jhtaD9ogcOHDgk08+IYT06tVr3bp1z58/t7e3r3Xb5OTk1NRUOzu7qqqq7du3x8bG9unTh+juEaFbde3adezYsQkJCSNHjqQ9Ih9//DExuEfk+vXrp0+f3r1797x58wgh48ePV6lU+/bt07+VnmaMGjWqMTYEAIBWzMLC4urVqxs3bvz666+fP3/eqVOnOXPmBAcH83g8rZw0BtBkY2PDLk+aNOnw4cMPHjzo0qXL6dOnQ0JCGIYhhLx48YIQMmLECA7nv93TUqm0uLiYEDJ27Njt27dfu3ate/fu58+f37FjRyPtJtQD4gRoPdgekeLi4kGDBjk6Ou7fv9/Abav3iGzevJlhGAN7REaNGjV27Njo6GilUsnlcg3sEfn99995PN7MmTPZlJkzZ9YaJ+hvRmNsCAAArZuHh8fhw4fVanVqauqpU6dCQ0M5HE5ISIhWtpKSEq0UGglQI0aMsLS0jI2N9fb2fvXqFftQvV27doSQU6dOubi4aG5rYWFBCOnbt6+tre3p06czMjKUSuWECRMafO+g3jDuCFoP2iPi7e399ddfOzs7Ozo6fvPNN3K5vHrOWntEMjIyHjx4UFVVdfr06VmzZmn1iAj+w9TUtLKyku0RKSwsvHbtWmlp6fnz56dMmVJrg4uKitq1aycUCtmUjh076srMtll/MxpwQwAAeBccPXq0Q4cO2dnZDMN069YtODjY3d09OTmZEMIwjOY1Ii4uTk85fD5/7NixsbGxx48f9/Pzo71vhBAfHx9TU9OHDx92/Q+lUjlr1qysrCxCCJfLDQgIOHXq1PHjx0eOHGltbd2Y+wp1g+cJ0Kq0rB4RCwuLFy9evH79mg0Vnj59qisz22b9zWjADQEA4F3w/vvvFxcXT5w4ccGCBW3atLlw4UJKSsqKFSsIIT169Ni/f3+PHj2cnZ2PHj2alpamv6jJkycfOHBALBZHR0eziWZmZqtWrVq5cmV+fv6gQYPy8/M3b95saWnp6+tLM4wdO/bHH3989OjRzz//3Hi7CfWA5wnQerS4HpH+/fsrFIrIyEg2RXNZV5v1N+NNNgQAgHeQo6NjfHw8h8OZN2/eZ599du3atQMHDkybNo0Qsnfv3j59+syfP//TTz9VKBTs6226DB482MbGxtTUdPTo0ZrpK1as2Llz57lz5yZOnLhmzZoRI0ZcvHiRz+ezW1lYWAgEgk8//bSR9hHqB88ToPVocT0iQ4YMGThw4OLFix8/fuzt7Z2YmHj8+HF2ra4219qMem8IAADvppEjR44cObJ6urOzc0JCgmaK5sDd6hdTIyOjwsLC6uUwDDN//vz58+fXWDuPx3N0dOzatWubNm3q3HRoVGqAZqBt27YSieTNy7lw4ULv3r2NjY15PJ6Xl9eBAwdUKpVarc7Kyho+fDifz2/Tps3s2bP/+usvQkhJSQndyt3dffHixZrlyOVyGxsbS0vLqqoqzXSVSrVr1y53d3cjI6P27dvPnj27sLCQXSuTySwsLIRCYVlZmYENLi4unjNnTrt27YyMjAYOHHjhwgVCyLlz5/S3WX8z6r1hvaWkpDg4OLx5OQAAWjw8PK5fv97UrYDGReON06dPN3VD3iFLly4NCwurNRujrvZCJ8DbZ2Fh8fDhQ5FI1NQNeVPe3t5du3Y9duxY/TaXSCSdOnU6d+6cn59fwzasUaWmpvr5+eXm5jZ1QwCgtenWrduhQ4d69erV1A2BRlFRUXHkyJEjR46kpaXl5ubSTxXBWxAUFGRqarpmzRr92fB+AkCDEYvF9+7dM2SmIwAAAKiqqlqyZElOTs6RI0cQJDRDeD8BoAGwPSK2trbstwhOnTq1evVqXZuMGDECX5MBAIB3Wfv27SsrK5u6FaAT4gSABkB7RGxsbDR7RMaMGTNmzJimbRgAAABA/SBOAGgADdUjYm9vj1eGAABYtra2AQEBTd0KgFaoe/futeZBnAAAAADNVGFh4Xfffefl5dXUDQFoVb799lv69VX9ECdAs+Dt7e3v79/UrYD669GjR1M3AQBaJ0dHxy5dujR1KwBaFUtLSxMTk1qzIU6AZuHu3bsHDhww5BvG0Azl5ubqeWMbAAAAWiLECdBc9O3btxV8P+HdlJqa2tRNAIB32qxZs5YuXVrjg02pVPr1119bWFisX7++rsVGRkYePnw4MTGxHvU2SH6ApoXvJwAAAEDLNnnyZDs7uxpXGRsbb926tX7Fzpo1S/8n3vTU++b5w8LCDC8ZoDEgTgBoeLNmzUpOTq5xlVQqXbhwYf1G6URGRg4bNqx+9TZIfgCAphUbG5uZmVk93c/Pz8rK6u23p6711in/q1ev6tUogAaDcUcADa/Wnq16PP4mhMyaNSstLa1+9TZI/rCwsG+++cbw/KycmkEAACAASURBVAAADausrOz169eaKRKJZNu2bWKxeOPGjd7e3prpGzZsEAgEcrl83LhxmpvI5fIuXbp4eXmdPn3akEpPnjz5+++/MwyjVqvXr1/ftm1bPfXm5ORs3LjRxMSkpKTE2dk5JSXlH//4h7Ozc435y8rKJk2a5OnpWVpayuPxbG1tQ0JCaAtXrlx56dKlJUuWEEL4fP6mTZu4XG49jxpAfSFOgOYoNja2Z8+erq6uTd2QevLz82sR9dY1Pzq3AKC5sbe337Fjx7Fjx7TS161bt23bNjMzM0JIcHAwh/PfARRcLtfb29vAOZSKiooKCgp27txJCJFIJKGhod9//72eejds2LBz506BQCCVSgcNGrRt2zZnZ2dd+c3NzadOnVpYWPjtt98SQsLDw1NTUz08PHg83tatW5cuXVrvEVMADQJxAjRH1XuMXr58GRwczOPxCCESiSQsLMzLy+vWrVshISG0byYuLu7gwYMLFiwYPnw4ISQuLu7QoUOBgYFJSUlFRUUqlSoiIuLMmTNr164dOnTopk2bJBLJ2rVrs7Kytm/f7uPjk5eXt2XLFpVKpVAobG1tV69ezeVyVSrViBEjnJycIiIiBAJBdHT0li1bdu/e3a9fP10tb5U9W8SAzi2VSrVx40ZD2g/QCmRkZOTl5TV1K94Jz549I/85BSkUipSUlMTERCsrK5FIFBQUpGurrKwsHx8fGiQQQhYuXLhr1y52LYfDOXnypIEN4PP5c+fOpcv29vZCoVCpVOrq2k9PT+/Tp49AICCEGBsbz58/35AqRo0aRRc6d+5cWFjo4eFhYNsA6k2tVl++fFnPhdvIyGjZsmWIE6BlOHPmzIwZM/r27UsISUhIMDc3J4T4+PjMmDGDZvD39+fz+Wx+f39/ExOTkJCQ8PBwHx8fmjhmzBipVOrk5MTj8ZydnX19fZctW0bPyLt27dqyZQuNQ5KTkyMiIhYtWsThcPbs2XPmzBl60vfz83v06JGeIIG00p4tQoghnVuFhYWG7AJAK3D79u1nz57Z2Ng0dUNaP4VCQf5zCiKEREZG+vr6GjJfEMMwNS7XFcMwmptzOBw9pWmtUqvV9a4XoLG9evVK14X79evXUVFRiBOgedHTY/TJJ5+sW7cuPj7ezs7Oz8/PycnJkAJDQkLYIIEKCAgIDQ3t06cPIUQsFi9YsIAQkpGRcf36dc2uKWNjY7rQuXPn7OxslUrF4XAOHjz4t7/9rR779S70bHE4HBqxALwLFi9ebGtrGxwc3NQNaf26detWj61cXFz+8Y9/TJkyxdTUlBCydetWoVDIrlWpVOPGjXN3d9+8eXOtRVVUVOzevZteLPLz8+VyuWZHjxY3N7dvv/12+vTpxsbGUqn00KFD9XsbjZJKpWq1msYeRUVF+MQQNCCGYfz8/NasWVPj2qKioqioKIJxR9Cs6OkxsrS03L59OyHkyZMnP/3008iRI/X361OaTxjYFKFQWFpa+ujRI3a2O6FQ2Lt37w0bNtRYyKeffnr69Gl/f//8/HwHB4f67Rp6tgAA3hyfz6cPflm7d+8Wi8Xp6emWlpbW1tYffPBBQEAAIWT16tVBQUHGxsYVFRXDhg3bsWNH//79P/zwQ0KIUqm8e/euSqWqtbrDhw8XFBQwDDN37lyBQMDhcNatW6e/3pUrV3711VempqYymWzs2LH625mZmRkVFZWQkLBr1y4ej7d//34+nz9o0CAaikycOHHevHlCoVAul3t6es6bN6/hDiSAQRAnQMsQGhoaEhLC4/E6deo0fvz4P/74g8YJZmZmL168IISo1eq//vpr6NChtRY1bdq06Ojox48fs1NTi0Si3NzczMxM+ua0UqlMSEhg3/EdNmzYokWL1Gr1p59+Wr/Gt46eLYLOLQBoalOmTNFK0fWktFOnTppPbidPnswu83i87OxsQ6qbPn369OnTa1ylq14XF5e9e/fS5ZMnT7Kn6Brzu7q6nj9/nv0ZExOjuXbgwIEDBw40pJ0AjQRxAjRH1XuMKisrV65cSd8zJoSwt9QjRoxYuHBhXFxceXm5mZnZvn37hgwZwuVyN2zYcPv2bUJIfHy8mZmZ5v2xq6vr3bt3ra2tNW/WIyIiQkJC6E2wVCoNDAzUrN3b2/vIkSNaZ/AateKeLYLOLQCAurh27drXX3/d1K0AqD8GQxGgObCwsHj48KFIJGrqhtTs1q1bd+7c0QoeWpyTJ0/a2tq+//77DV5yamqqn59fbm5ug5cM0Dzh/YS3plu3bocOHdL/UeTmhnbEvH79eujQoZMmTWrq5gDUICgoyNTUVM/7CY6OjpWVlXieAFC7mJiY0NDQpm7Fm0LPFgDAW2DgpBEAzR/iBACd1Gr18uXLZTLZn3/+6ebmVr/JjpqcZs8W3igAAAAAAyFOANCJYRj6JQEtwcHBlZWVWonu7u7Nsw+pebYKAAAAmjnECQB1hg8PAwAAQKunc0ZFAAAAAAB4ZyFOAAAAAGhGIiMjhw0b1tStaBRXr14dOnRoRkZGwxarOU+3RCIZOHDgwoULFy5cuGrVKs1skZGRn3/++Zw5c65cucImymSyJUuWNGx7Wg2MOwIAAABoRmbNmpWWltbUrWgU/fr1q/6xvDeUmJjYpUsXzZRx48ZVv/V/8uRJenr6vn37CCFz5sx5//336deB+Hw+n88Xi8Xu7u4N27BWAM8TAOpv1qxZycnJNa6SSqULFy5cvXp1I5UPAPAOio2NzczMbOpWQPOyd+9eXZ/N1hQfHz9z5ky6PGDAAPoxVmr69OmaX+8GFp4nANTf5MmT7ezsalxlbGy8detWze9AN2z51YWFhX3zzTdvUh0AQDNXVlb2+vVrzZSXL18GBwfzeDxCiEQiCQsL8/LyunXrVkhIyMaNG729vePi4g4ePLhgwYLhw4cTQuLi4g4dOhQYGJiUlFRUVKRSqSIiIs6cObN27dqhQ4du2rRJIpGsXbs2Kytr+/btPj4+eXl5W7ZsUalUCoXC1tZ29erVXC5XpVKNGDHCyckpIiJCIBBER0dv2bJl9+7d3bt3nzRpkqenZ2lpKY/Hs7W1DQkJIYToas+mTZv++c9/9uzZs6KiQiQSSaXSLl26LF68mO7ayZMnf//9d4Zh1Gr1+vXr27ZtSwipsT269ouuksvlXbp08fLyOn36tP7De+rUKV3H4ebNm0ePHlWr1VKpdPDgwRMmTGC30lW1QqHYuHFjcXGxSqXicrk8Ho+dQvDs2bNisZgQ4uDgsGLFCpqoqwo9u0YIUSqV+fn5mrN+Mwzzyy+/5ObmymQyR0fHZcuW0fQnT564ubnR5e7du+fk5Pj6+tKfnp6eV69eNfCP8J2COAGao9jY2J49e7q6ujZ1Q2rh5+fXfMp/9epV47UEAKB5OnPmzIwZM/r27UsISUhIMDc3J4T4+PjMmDGDZvD39+fz+Wx+f39/ExOTkJCQ8PBwHx8fmjhmzBipVOrk5MTj8ZydnX19fZctW+bh4UEI2bVr15YtW2gckpycHBERsWjRIg6Hs2fPnjNnzggEAkKIn5/fo0eP+vXrRwiZOnVqYWEhvSEODw9PTU318PDQ1Z758+fn5ub++OOPkZGR5ubmY8eOXb58OV1VVFRUUFCwc+dOQohEIgkNDf3+++91tUfXflFcLtfb21trZE6N9BwHX19f9q46KChIM07QVfXmzZvHjRvXvXt3QkhJSYnmqwLl5eW0//6HH37IzMykl3tdVejZNUJIXl6ejY2NZkrHjh1//fVXCwsLQsjBgwevXLkyYMAAQohKpaIDjQghfD5foVBobsUwjEwm0/xTAYI4AZqn6j1GT548Wb9+vUAgKCsr69+///79+8PCwmxsbHT1GNXY46Knh0lXD40uEolk27ZtYrGYlqaZvmHDBoFAIJfLx40bp7mJ4T06usovKyursadKLpevXLny0qVLdDgmn8/ftGmT/vYDALQg9CynUChSUlISExOtrKxEIlFQUBAh5JNPPlm3bl18fLydnZ2fn5+Tk5MhBYaEhGjdcQYEBISGhvbp04cQIhaLFyxYQAjJyMi4fv06rYgyNjamC507d87Ozqa3ngcPHtT8EOeoUaPYPIWFhfQ+WxfaYIFA4ODgQAhhGIam8/n8uXPn0mV7e3uhUKhUKrOzs3W1R9d+EUI4HM7Jkyf1HxD9x4EQkpOT8/3339P9rbHrvXrVxcXFNEgghFhaWkZERLCrJk+eTBdcXFwKCgponKC/ihp3jRCiVCq1rncMw9Agge7Ojz/+SOMEhmHYzHK5nMZaLA6Ho1Kp9B2adxLiBGgZwsLCfvjhBzMzM0LI3//+dz8/vw8//JAQoqvHqMYeFz09TLp6aHSxt7ffsWPHsWPHtNLXrVu3bds22s7g4GC264LUpUdHV/nm5uY19lTxeLytW7cuXbp069athhQOANCy0LMcISQyMtLX17dHjx7sKktLy+3btxNCnjx58tNPP40cOZL26+tXvduYz+cLhcLS0tJHjx716tWLJgqFwt69e2/YsKHGQj799NPTp0/7+/vn5+fTu/wGxDAMGzMQQjgcDsMw+ttDatqvuqrxOKhUqtDQ0J07d9KxT+xIoTpVrbk71dVaha7yRSLR06dPdRVbUVFhYmJClx0cHNLT02nYJhaLtS7HarWaPh0CTYgToBYlJSULFy5s7FpkMhnR3WOUnZ3dq1cvevNNCFm2bNmePXv0lKanB6hB8uuSlZXl4+PDtnPhwoWa70XVqUdHjzr1VAEAtG6hoaEhISE8Hq9Tp07jx4//448/aJxgZmb24sULQoharf7rr7+GDh1aa1HTpk2Ljo5+/PhxWFgYTRGJRLm5uezAGKVSmZCQwI4IHTZs2KJFi9Rq9aefflpr4XVtT0VFxe7du2l3fn5+vlwu53A4+tuji0qlGjdunLu7++bNm2ttJ6npOFRVVYlEInoHX1paevPmTUPKMTU1TUtL69q1KyFELpd///33S5cu1ZW5flUQQvh8voWFRUVFBXvx3b9///jx4+kjhQMHDkydOpWm+/v7R0REbNy4Ua1WX7x48bPPPmMLyc7O1gw+gYU4AWrx+vXr2NhYOiyy8dChOHp6jNRqdY3LNaq1x+UN8+uh2V+iv+8EAADqis/naw0XqaysXLlyJR01Sghhb4VHjBixcOHCuLi48vJyMzOzffv2DRkyhMvlbtiwgU50Ex8fb2ZmpjnbhKur6927d62trYVCIZsYEREREhKiVqsZhpFKpYGBgZq1e3t7HzlyJCYmhv7MzMyMiopKSEjYtWsXj8fbv38/n88fNGgQh8OpsT27d+8+e/YsnSd09+7dBw4cKC8vj4qKUqvVBQUFDMPMnTtXIBBwOJx169bpb4+e/VIqlXfv3jV8UE3142BiYmJtbb1gwQIOh6NQKMzNzZcvX75p0yb6zFxX1atWrQoLC6usrGQYRi6Xf/nll4QQsVh8/PjxpKSk8PDw58+f79+/39jYuFu3bu3atdNVhZ5do2bOnHnixInZs2fTnx999NGaNWsYhqmsrBw+fHjnzp1pukgkcnNzmz9/flVVVWBgoOZopejoaHaUF/wfagC98vLyzM3NG7uWtm3bSiQS9ufBgwcfPHigmeFvf/tbeXk5XV6+fHlYWBhdPnPmzMWLF9VqtUqlWrlyZUJCAk2fOnVqRkYGXVYoFOfOnatffv2OHj16584dzZQvvviioqKCLv+///f/Vq1axa5SKpVjxoxZvny5ISXrKv/w4cPskTl37tylS5fYVQsXLlSpVHT52bNnhtfy5lJSUhwcHN5mjQBNa9GiRRs2bGjqVrwTPDw8rl+/3tSt0OnmzZv79u1r6la865RK5dSpU+u9uVQqnTlzZsM1p2VYunQpeytV3bNnz4RCoVqtxvMEaI6q9xitWbPm66+/FgqFVVVVo0ePvnHjBk3X1WOkq8elrvl12b17t1gsTk9Pt7S0tLa2/uCDDwICAgghq1evDgoKMjY2rqioGDZs2I4dO/r3709fpahTj06N5evpqSKETJw4cd68eUKhUC6Xe3p6an6cEgAAGkNMTExoaGhTt+JdR6efqvfmfD4fH0/QhVHXNoQD3nH5+fkeHh6lpaWNWouFhcXDhw9FIpEhmauqqjZv3rxmzZpGbRIYLjU11c/PLzc3t6kbAvCWLF682NbWNjg4uKkb0vp169bt0KFD7Au1zYRarV6+fLlMJvvzzz+/+uorzcmOAFqEoKAgU1NTXbdSRUVFjo6OlZWVeJ4AAAAAUAcMw7CfDANoxRAnQAtz/PjxK1eu3Lhxo0+fPnQ8DwAAAAA0OMQJ0MJMmjRp0qRJb6eu4ODgyspKrUR3d/f58+e/nQYAAAAANBXECQA6bdy4sambAAAAANA0ECdAs6BUKqOiotgPrUPL8vTpU/qlPAAAAGg1ECdAs8Dlcn/++WetuVChpaiqquLz+U3dCgAAbbNmzVq6dKkhn9p98uTJt99+KxaLt2/f3uI+zXv16tVVq1bt3buX/aZYg5g3b96PP/5Il5VK5Zo1a168eCGTyaZPn/7BBx+w2SQSyWeffdazZ09CSNu2bTU/WhoZGfmvf/1LpVLNnj17wIABNFEmky1btuy7775rwKZCI0GcAM3Fb7/9ZuC8qNDc0HlRm7oVAPCOCgsL++abb2pcNXnyZDs7O0Pyd+rUaefOnVFRUY3SxEbWr18/+lHnBpSYmNilSxf2Z3h4+Keffurr60sI+eqrr3x8fMzMzNi148aNW7JkiVYJT548SU9P37dvHyFkzpw577//Pv3aD5/P5/P5YrHY3d29YdsMDY7T1A0AAAAAMEhsbGxmZqZW4qtXr3Tl9/Pzs7KyMjw/sPbu3Tt9+nT25+DBg2mQQAgZMGBASkpKrSXEx8fPnDmT3eT27dvsqunTp+PTZi0CnidAc1FZWYlzdwtVfVYoAIDGUFZW9vr1a/anXC5fuXLlpUuXaGc2n8/ftGkTl8slhEgkkm3btonF4o0bN3p7e9eaX5e8vLwtW7aoVCqFQmFra7t69Wo2v1wu79Kli5eX1+nTp/U3+9SpU2vXrh06dOimTZskEsnatWuzsrK2b9/u4+Nz8+bNo0ePqtVqqVQ6ePDgCRMm0E3i4uIOHToUGBiYlJRUVFSkUqkiIiK4XK5Codi4cWNxcbFKpeJyuTwej/2Sw9mzZ8ViMSHEwcFhxYoVNLGu5dO1SqUyPz/f2tqa3QU6rIi6cuXKRx99xP5kGOaXX37Jzc2VyWSOjo7Lli2j6U+ePHFzc6PL3bt3z8nJYSMNT0/Pq1ev6j9o0BwgToDmQvP5JrQ4Dg4OTd0EAHjn8Hi8rVu3Ll26dOvWrVqr7O3td+zYcezYMQPz67Jr164tW7bQ1+eSk5MjIiIWLVpEV3G5XG9vb0MuXmPGjJFKpU5OTjwez9nZ2dfXd9myZR4eHoQQX19f9u45KCiIvY/39/c3MTEJCQkJDw/38fFhi9q8efO4ceO6d+9OCCkpKVm1ahW7qry8nHbS//DDD5mZma6urvUon8rLy7OxsdF1QEaMGNGmTRs2pWPHjr/++iudieTgwYNXrlyhryKoVCo60IgQwufzFQqFZjkMw8hkMrzb1swhToBmoaSkpKmbAG+EYZimbgIAtFr0OYBCoUhJSUlMTLSyshKJREFBQY1db0ZGxvXr1zUrMjY2Zpc5HM7JkycNLCogICA0NLRPnz6EELFYvGDBApqek5Pz/fff01vq6l3sISEhWjfxxcXFNEgghFhaWkZERLCrJk+eTBdcXFwKCgponFDX8imlUlnjY5bo6GgjIyN/f3/NRIZh2OkKAwICfvzxRxonMAzDliOXy7WmKuFwOCqVqnoV0KwgToBmAXeZAACgC30OQAiJjIz09fV9a/MRCYXC3r17a07gU298Pl8oFJaWlj569KhXr140UaVShYaG7ty5s23btoQQdrCQ5lb6i9V/9ax3+SKR6OnTp1qJp0+ffvr06ddff62nxoqKChMTE7rs4OCQnp5OH5uIxWKtBy9qtVogEOgpCpoDvMcMAAAALZhUKlWr1XS5qKioAfOLRKLc3Fz2zWmlUnn+/Hl2rUqlCggIqH7zrcu0adOio6NjYmLGjx9PU6qqqkQiEb2JLy0tvXnzZq2FmJqapqWl0WW5XK5/AFU9yqf4fL6FhUVFRQWb8uuvvz58+JAGCVKpVC6Xs6v279//8uVLunzgwAH21QV/f//Dhw8TQtRq9cWLFzUfXGRnZ7e4yWffTXieAAAAAC0Dn8+v/qWdiRMnzps3TygUyuVyT0/PefPmEUJ2794tFovT09MtLS2tra0/+OCDgIAAPfkjIiIePXqUlpZ24cIFKyurwYMHjxkzhqaHhISo1WqGYaRSaWBgIFuvUqm8e/eu4YNnXF1d7969a21tLRQKaYqJiYm1tfWCBQs4HI5CoTA3N1++fPmmTZs4HM6GDRvoBEHx8fFmZmbr16+nm6xatSosLKyyspJhGLlc/uWXXxJCxGLx8ePHk5KSwsPDnz9/vn//fmNj427durVr166u5bNmzpx54sSJ2bNn05/BwcGDBw+m73/n5OQEBQX179+frvroo4/WrFnDMExlZeXw4cPZbziIRCI3N7f58+dXVVUFBgZqDmSKjo6eO3eugccNmhDDhtQANcrPz/fw8CgtLW3qhgAANBeLFy+2tbUNDg5u6oa0ft26dTt06BA7UAfeGpVKNWPGjMb4oIRMJvviiy8iIyMbvGQwXFBQkKmp6Zo1a2pcW1RU5OjoWFlZiXFHAAAAAPB/cDicPXv2NEbJfD4fH09oKRAnAAAAAIA2U1PTRiqZfdcZmjnECQAAAAAAoA1xAgAAAAAAaEOcAAAAAAAA2hAnAAAAAACANsQJAAAA0LLNmjUrOTm5SaqWSqULFy5cvXp1YxTehPvVSK5evTp06NCMjIyGLZZ+BENTSkpK9SndIyMjP//88zlz5ly5cqXe6TKZjH5H4l2AOAEAAABatsmTJ9vZ2RmYOSwsrAGrNjY21v9R5FrpaU+d9qtF6Nev35QpUxq2zMTExC5durA/L1y48OWXX65evfrJkyea2Z48eZKenr5v374DBw4cPHiQ/UBeXdP5fD6fzxeLxQ27F80T4gQAAABoGWJjYzMzM6un+/n5WVlZGVjIq1evGrRRb0pPe+q0X++svXv3Tp8+nf05atSoXbt2+fv7a2WLj4+fOXMmXR4wYAD9HHU90gkh06dPf0c+AWHU1A0AAAAAMEhZWdnr1681UyQSybZt28Ri8caNG729vdlskyZN8vT0LC0t5fF4tra2ISEhhBC5XL5y5cpLly7RcSN8Pn/Tpk1cLpcQEhcXd+jQocDAwKSkpKKiIpVKFRERweVyKyoq1qxZI5fLVSqVvb39smXLGIah9W7YsEEgEMjl8nHjxtF6b926FRISQlsSFxd38ODBBQsWDB8+nBCiUCg2btxYXFysUqm4XC6Px/v222/1tKfG/SKE1NgeXftLyeXyLl26eHl5nT59Wv/hPXXq1Nq1a4cOHbpp0yaJRLJ27dqsrKzt27f7+PjcvHnz6NGjarVaKpUOHjx4woQJ7Fa6Dl2Nu0w3OXv2LO2Pd3BwWLFiBU3UVYWu8ulapVKZn59vbW1d6x/PkydP3Nzc6HL37t1zcnJ8fX3rkU4I8fT0vHr1aq01tgKIEwAAAKClsre337Fjx7FjxzQTzc3Np06dWlhYSG9Mw8PDU1NTPTw8eDze1q1bly5dWn2kkL+/v4mJSUhISHh4uI+PD5seEhKydOlSkUhECLl8+XJ4ePhXX31FCFm3bt22bdvMzMwIIcHBwRwOhxDi4+MzY8YMtkA+n8+Ws3nz5nHjxnXv3p0QUlJSsmrVKkKInvbUuF+62qNrf+kmXC7X29tbc2SOLmPGjJFKpU5OTjwez9nZ2dfXd9myZbQcX19f9i45KChIM07Qdehq3GWqvLyc9sf/8MMPmZmZrq6ueqrQVT6Vl5dnY2NT664RQlQqFf1nIoTw+XyFQlG/dIphGJlMpvlP3CohTgAAAIBmjfa7KxSKlJSUxMREKysrkUgUFBSkf6tRo0bRhc6dOxcWFrL3zXqEhIRo3olWVVWZmZnRm3JCyMCBA+Pi4gghWVlZPj4+NEgghCxcuLDWUSjFxcX0jpkQYmlpGRERUWtjqtPVHkrX/nI4nJMnTxpYRUBAQGhoaJ8+fQghYrF4wYIFND0nJ+f777+nt841dqVrHTqid5cnT55MF1xcXAoKCmicoL+K6uVTSqWSfbagH8MwbGa5XM7j8eqXTnE4HPaNhVYMcQIAAAA0a7TfnRASGRnp6+vbo0ePRqqo1u5hOuhIc0Fr2UD12KRRy2Hx+XyhUFhaWvro0aNevXrRRJVKFRoaunPnzrZt2xJC2JFCWhu+SVNrrUJX+SKR6OnTp/qrphwcHNLT02n4JBaL2QcsdU2n1Gq1QCAwpN4WDe8xAwAAwDtEKpWq1Wq6XFRUpCenQCAoLy/Pz8+nP//973/TvnwXF5ebN2+y7x9rjhoyMzN78eIFIUStVv/1119suqmpaVpaGl2Wy+Wam7x5e/RTqVQBAQE13tzXaNq0adHR0TExMePHj6cpVVVVIpGI3sGXlpbevHnTkHL07HJ19auCEMLn8y0sLCoqKmrN6e/vf/jwYUKIWq2+ePEi+3SirumEkOzs7MYLVpsVPE8AAACAloHP52sN/9i9e7dYLE5PT7e0tLS2tv7ggw8CAgIyMzOjoqISEhJ27drF4/H279/P5/MHDRpEh5tPnDhx3rx5QqFQLpd7enrSqfc3bNhAJ7SJj483MzNbv349LX/dunVhYWFKpVKpVIpEIvZue/Xq1UFBQcbGxhUVFcOGDduxY0f//v0//PDDESNGLFy4MC4urry83MzMbN++fUOGDOFyuatWrQoLC6usrGQYRi6Xf/nll+wu1NieGvdLpigIeQAAIABJREFUV3v0769Sqbx7967hg2RcXV3v3r1rbW0tFAppiomJibW19YIFCzgcjkKhMDc3X758+aZNm2j5ug5djbssFouPHz+elJQUHh7+/Pnz/fv3Gxsbd+vWrV27drqq0FU+a+bMmSdOnJg9ezb9mZCQcPbsWXaI2rx587p27UoIEYlEbm5u8+fPr6qqCgwMZEcr1TWdEBIdHT137lwDj2eLxrAhLECN8vPzPTw8qn+sBADgnbV48WJbW9vg4OCmbkjr161bt0OHDrEDYACqU6lUM2bMiIqKejvVyWSyL774IjIy8u1U10iCgoJMTU3XrFlT49qioiJHR8fKykqMOwIAAACAlorD4ezZs+etVcfn89+RjycQvJ8AAAAAAC2aqanp26zOxMTkbVbXhBAnAAAAAACANsQJAAAAAACgDXECAAAAAABoQ5wAAAAAAADaECcAAAAAAIA2xAkAAADQ4kml0oULF65evfptVjpr1qzk5OTmU07zcfXq1aFDh2ZkZDRssfQjdJpSUlKqf+IpMjLy888/nzNnzpUrV+qdLpPJlixZ0qDNb3kQJwAAAECLZ2xsvHXr1rdc6eTJk+3s7AzMHBYW1iDltAj9+vWbMmVKw5aZmJjYpUsX9ueFCxe+/PLL1atXP3nyRDPbkydP0tPT9+3bd+DAgYMHD7Ifoq5rOp/P5/P5YrG4YfeiZUGcAAAAAC1DbGxsZmZmU7fiv/z8/KysrAzM/OrVqwYp5521d+/e6dOnsz9HjRq1a9cuf39/rWzx8fEzZ86kywMGDLh9+3b90gkh06dPf3c+qVYjo6ZuAAAAAIBBysrKXr9+rZkikUg2bNggEAjkcvm4cePY9Ly8vC1btqhUKoVCYWtru3r1ai6XSwh5+fJlcHAwj8ej24aFhXl5eRFCFArFxo0bi4uLVSoVl8vl8XjffvstISQuLu7QoUOBgYFJSUlFRUUqlSoiIoLL5Uokkm3btonF4o0bN3p7e9NKDx8+fOjQIT8/P7FYbGpqyuFwwsLC2rZtK5fLV65ceenSJTqOhc/nb9q0ibanxnIIIRUVFWvWrJHL5SqVyt7eftmyZQzDlJWVTZo0ydPTs7S0lMfj2drahoSEsJvI5fIuXbp4eXmdPn1a/2E8derU2rVrhw4dumnTJolEsnbt2qysrO3bt/v4+Ny8efPo0aNqtVoqlQ4ePHjChAl0E13HQc+hI4ScPXuW9sc7ODisWLGCJtajCkKIUqnMz8+3trau9Y/kyZMnbm5udLl79+45OTm+vr71SCeEeHp6Xr16tdYaWzHECQAAANBSrVu3btu2bWZmZoSQ4OBgDud/B0rs2rVry5YtNB5ITk6OiIhYtGgRIeTMmTMzZszo27cvISQhIcHc3Jzm37x587hx47p3704IKSkpWbVqFU339/c3MTEJCQkJDw/38fFh67W3t9+xY8exY8c0GzN9+vTffvuNz+fv27ePEJKfn//NN99s376dx+Nt3bp16dKl1UdG1VgOISQkJGTp0qUikYgQcvny5fDw8K+++src3Hzq1KmFhYX0Rjw8PDw1NdXDw4NuwuVyvb29NUfm6DJmzBipVOrk5MTj8ZydnX19fZctW0bL8fX1Ze+Sg4KC2Jt4XcdBz6EjhJSXl9P++B9++CEzM9PV1bV+VRBC8vLybGxsat01QohKpWL/DPh8vkKhqF86xTCMTCbj8/mGVN36IE4AAACAZo32xysUipSUlMTERCsrK5FIFBQUlJWV5ePjQ4MEQsjChQvpXWlGRsb169eDgoLYEoyNjenCJ598sm7duvj4eDs7Oz8/PycnJ5peXFxM73QJIZaWlhEREZoNCAkJqX7nWqM2bdosWLCALnfs2FEgEGjehhqoqqrKzMyMBgmEkIEDB8bFxbFrR40aRRc6d+5cWFjIxgkcDufkyZMGVhEQEBAaGtqnTx9CiFgsZtuck5Pz/fff0zZX70qv8TjoOXSTJ0+mCy4uLgUFBTROqEcVhBClUsk+W9CPYRg2s1wup7FiPdIpDofDvrHwDkKcAAAAAM0a7Y8nhERGRvr6+vbo0YNdxTBM9WWhUNi7d+8NGzZUL8rS0nL79u2EkCdPnvz0008jR47s169f9WyaxRJCDO9OVqvVen7Wm1Z73hyfzxcKhaWlpY8ePerVqxdNVKlUoaGhO3fubNu2LSGEHSmkudUbNrXeVYhEoqdPn9ZaOyHEwcEhPT2dhk9isZh9wFLXdEqtVgsEAkPqbZXwHjMAAAC0SC4uLjdv3mTfD2ZH9YhEotzcXPaNZ6VSef78ebocGhoql8sJIZ06dRo/fjz70qqpqWlaWhpdlsvl9Z46SSqV7t27ly7n5+fLZDL2YYJUKmXDhqKiIj2FCASC8vLy/Px8+vPf//43+2xBD5VKFRAQUP3OW5dp06ZFR0fHxMSMHz+eplRVVYlEInoHX1paevPmTUPKqdOhq18VhBA+n29hYVFRUVFrTn9//8OHDxNC1Gr1xYsX2acTdU0nhGRnZ2sGpe8gPE8AAACAloHP52sNC1m9enVQUJCxsXFFRcWwYcN27NjRv3//Dz/8MCIiIiQkRK1WMwwjlUoDAwNp/srKypUrV9L3mwkhmzdvpumrVq0KCwurrKxkGEYul3/55Zc0fcOGDTSWiI+PNzMzW79+PU3fvXu3WCxOT0+3tLS0trb+4IMPAgICCCE2Njbm5uYLFiwwMjIihLD5CSETJ06cN2+eUCiUy+Wenp70UwC6ylm3bl1YWJhSqVQqlSKRiN79Z2ZmRkVFJSQk7Nq1i8fj7d+/n8/nDxo0iIYiSqXy7t27hg+ScXV1vXv3rrW1tVAopCkmJibW1tYLFizgcDgKhcLc3Hz58uWbNm3icDi6joOuQycWi48fP56UlBQeHv78+fP9+/cbGxt369atXbt29aiCmjlz5okTJ2bPnk1/JiQknD17lh2KNm/evK5duxJCRCKRm5vb/Pnzq6qqAgMD2dFKdU0nhERHR8+dO9fA49kqMQ31RAxaq/z8fA8Pj+ofMQEAeGctXrzY1tY2ODi4qRvS+nXr1u3QoUPswJjmb8WKFWzsAQ1LpVLNmDEjKirq7VQnk8m++OKLyMjIt1PdWxYUFGRqarpmzZoa1xYVFTk6OlZWVmLcEQAAAAA0dxwOZ8+ePW+tOj6f/45/PIHg/QQAAACABvHzzz8nJiYuWbLk4sWLTd2W1snU1PRtVmdiYvI2q2uG8H4CAAAAQAOYMWPGjBkzmroVAA0GzxMAAAAAAEAb4gQAAAAAANCGOAEAAAAAALQhTgAAAAAAAG2IEwAAAAAIIWTWrFnJycnV02NjY2fPnr1gwYJFixbRzznrz9/Y7WmepFLpwoULV69e3dQNaQBXr14dOnRoRkZGwxZLP65HKZXKkJCQL7/8MvD/s3f+cTFm/f8/12Suph9SbFomUUmS1H0XNhVttFpLJJZFfqz8LHbv1URpmpSKFbaaKUtUS2K5o8S678Sy7dZtW8u9xKQUpbgj2w+jmWlmvn+c/VyP+dbM1ZT0g/fzr3Od61zv877O1Mx5n9f54e9/9epVKr+6utrNzS0wMDAwMHD79u3Kj6elpa1Zs2b16tUFBQVUpkQi+fLLL7vXTwrY7wgAAAAAgHcIHo+3Y8cOlbcWL148bNiw9vmXL19OTU3VvPyb9qdvoq2tHRcX1/4c5f6Is7PzkiVLutdmfn7+mDFjqEs+nz937lwnJyeE0KZNmxwdHfX19fEtX1/f9l3/qqqq0tLSQ4cOIYRWr149ZcoUfA43SZIkSQqFQmtr6+51GEGcAADvLCkpKW0GKgCgjzNz5szvvvuut70AepOsrCx7e3tLS8vXMfLy5Ut1t7y8vFTmUx04Dcu/aX+A/sjBgwf5fD516e7ubm9vj9Ourq4lJSWTJk2ieTw3N3fFihVU+Rs3buAYAyHk5+eXlJQUHx/f7T5DnAAA7ygikWjatGm7du3qbUcAQCPOnTuXn5/f214AvUxjY+OrV6+ULxctWmRnZ9fQ0MBkMk1MTLhcLr7V3NwcEREhlUrlcrmpqWlwcDBBEFKpNCQk5MqVK3iwliTJ2NhYLS0thFB1dfXevXuFQmFMTIyDgwNVxbVr17Kysn7++Wf8yKpVq3DfTl351tbWmJiY+vp6uVyupaXFZDK//vprhFBxcXFmZqZCoRCLxe7u7gsXLkQIdcEfle9F0w7q+PPPP0NDQ5lMJq6Lx+NNmDABIfT48eM9e/bI5fLW1lYTE5OwsDAtLS16+9XV1dHR0SwWSyqV+vr6UvkqTSGEcnJy0tPT/f39i4qK6urq5HK5QCDAt6RS6ZgxYyZMmJCdnU3v/9mzZyMjIz08PGJjY6urqyMjIx88eLBv3z5HR0eVTU1Tr7qPDCF0/vx5oVCIEDIzM9u2bRvO7Kx9fFcmk9XU1BgbG1OvQAUJCKGCgoJZs2bhNEEQ33///cOHDyUSyciRI4ODg3F+VVWVlZUVTtva2lZWVlJxgp2dXWFhIX2LdREFANDy+PFjAwOD3vYC6H7i4+M///zz3vYCADTl+PHjc+bM6W0v/mLz5s3R0dG97cU7gY2NzfXr16nL1NTUP/74Q7nA0aNH4+LicDoxMbGkpASnv/zyy+rqapy+du1aQkIC9ciWLVvUVZeZmfn777+3z9+6dauG5aOiom7fvo3T9fX1GzZsaP9UUFCQ8mWn/FH3XuraQR3fffddYWEhTv/73/+uqKjA6dDQUIlEgtN//PFHfHx8h/bXrl3b1NSE0yEhIdu3b6c3pVAo8vLyPvjgg+Li4jZeyWSyefPmBQcH0zuPOXHiRFFREU7z+XyVr9ymqVXWq+4jO3ToUFRUFE7Hx8eXlZV1zT7m4cOH8+fPV/kiAoEgOzubupTL5S9evMDpI0eO/PTTTzit/Ef4+++/41iFYtKkSWKxWKV9lQQFBfF4PHV3//e//+no6CgUCtATAAAAAADo0+Bx99bW1pKSkvz8/CFDhrDZbA6Hg+/OnDkTJ0aPHv306VMbG5uWlhZ9fX02m43z3dzccnJyesbV+vp6W1tbnDYyMhIIBDhdWVkZHx8vl8sZDEaXh37p36t9O9CYmj17dlRUVG5u7rBhw7y8vEaNGoUQKisru379OtWwCCFtbW16+w8ePFCeWB8YGJiUlNShKYQQl8t1dHRs4xWDwThz5kzHDYEQQsjHxyc8PHzy5MkIIaFQGBAQgPPpm7p9veo+MoTQ4sWLccLCwqK2thZPeOusfYxMJqO0BWUyMjIGDBjg7e1N5RAEYWhoSL3jgQMHXF1dcT5lRCqVYi2IgsFgyOXy9vZfE4gTAAAAAADo0zCZzLi4OIRQWlqak5PT+PHjO2uBIIg34Jem9crl8vDw8MTExEGDBiGEqBks3WW/CxgZGe3btw8hVFVVdeTIkY8++sjZ2VlHR2fSpEnR0dFd9oFKd2iKJMkuOf7/WdDR0WloaLh///7EiRNxZodN3WG99E3aZftsNvvJkydtMrOzs588ebJlyxZ11TU3N+vq6uK0mZlZaWkpDs+EQqHykmiEkEKhYLFYNJ53DdgXFQAAAACAtwoWi9XU1FRTU4Mvf/nlF2oMHiGEp2fgdF1dXfdWraend+/ePZyWSqU4vGlpaWGz2bhn2dDQUFxcrPyI5v7Qv1enCA8Pxxu8jhgxYsGCBTdu3EAIsdnshw8flpeX4zIymezixYv0diwsLIqLi6ml2Ph9u2YKISSXy318fDSPo5YtW5aRkXH69OkFCxbgHPqmVonKj0wdXbCPIUnS0NCwubmZyrlw4cKdO3dwkCAWi6n9dlNSUv7880+cPnz4MLVuwdvb++jRowghhUJx6dIlZdWioqKiC8GzJoCeAAAAAABA/4AkSeXpFuXl5ceOHcvLy0tKSmIymSkpKSRJTp06lcFgREVF8Xg8mUwmk8nYbLZy1/PTTz9dv369jo6OVCq1s7PDW9onJycLhcLS0lIjIyNjY+Np06b5+PgghLKysq5du4bXMRMEERwcjDcqVVd++/btPB5PJBLhZdMbN25ECOnq6hobGwcEBDAYjNbWVgMDg61bt8bGxuJ9LTvlj8r3omkHdS0pEolCQkLwImOEELWnhUAg4HK5CoWCIAixWOzv79+h/bCwMA6Ho62t3dzcPH369P3797u4uHz88ccqTSGEoqOjcViSm5urr6+vvI+qTCa7efOm5vNnLC0tb968aWxsrKOjg3NomlpdvSo/MqFQePLkyaKiIj6f/+zZs5SUFG1t7XHjxg0ePLiz9ilWrFhx6tSpVatW4cvQ0FB3d3e8hL2yspLD4bi4uCCEZs2aFRERQRCESCSaMWPG6NGjcXk2m21lZbVhw4aWlhZ/f3/lWUwZGRnr1q3TsNE6BUGFsACgkpqaGhsbm4aGht52BOhmEhISbt26dfjw4d52BOg6Fy5cePToEXVwj6mp6cqVK9+Ozcvbk5mZmZmZ2WOzzOn54osvTExMQkNDe9uRt59x48alp6dTs0oAoP8il8uXL19+7Nix7jUrkUjWrl2blpbWqac4HI6enl5ERITKu3V1dSNHjhSJRDDvCAAAoL9y4cKFAwcOUJfOzs7m5ua96A8AAACgDgaD8e2333a7WZIk8drxNwHMOwIAAHhLOHXqVG+7AAAAAKhFT0/vTZil1jp3O6AnAADQp7l9+/asWbMMDAyYTObf/va38+fP4/z3339feYLN6dOnCYKg1n6NHTv2m2++iYuLMzAwIAjC1NRUecKrv7//4MGDxWIxQkihUKSlpY0fP37AgAEmJiZffPFFU1MTQojL5err67e0tFBPLViwwM7OrkOHRSLRl19+aWxszGQyXV1df/31V319fbyAj8ZndW7QNIKrq6tAILh16xZBED/++CNCaNSoUWFhYQghmUwWExNjYWGhpaXFZrODgoJEIhFlbfz48Xv27ElMTDQ1NR0wYIC9vf2VK1c0/kAAAOg3hIaGftmO5OTk3vYL6DeAngAAQN9FJBJNnz79/fffT05O1tbWFggE8+fPLy8vNzU17fDZ06dPV1ZWrlmzZuDAgTt27Pj111/xNtsSiSQrK2vJkiV4M28+n7958+aVK1dGRUXdu3cvOjr61q1bly9fnj9//s6dO/Pz8z/55BOEUFNT0/nz53k8Hn2lCoViyZIlFy5cCAoK+vvf/37p0iUPDw/lYEMd6txgMBjqGuHUqVNbt24tLi6+cOHC+++/r2xty5YtCQkJ//jHP6ZOnXrr1q3Y2FihUJiTk0Pt93fs2LFBgwZ9++23Eolk27ZtPj4+tbW11EJAAADeDmJiYnrbBaB/A3ECAAB9l7t37/7vf/87fPjw7NmzEUITJ06Miop69uyZJnHC7du37969O2zYsJaWln379mVlZeE4IS8v78WLFytXrkQIvXr1KiwsbMWKFampqfipsWPHzp8/Py8v76OPPho1atTZs2dxnHDu3LmWlhbqzB11XL9+PTs7Ozk5Ga8tXrBggVwuP3ToEP1TNG7MnDlTXSM4ODgYGBiQJIkPSKJ48uQJn88PDg7GG5jMnTt32LBha9euLS4uphaD1tbW/vzzz9TRSPPnz3/06JG1tXWHrQoAAAC8O8C8IwAA+i6WlpaDBg0KCQn57rvvKisrzczMUlJSHBwcNHn2448/xtsXslisefPmZWVl4e3dTp48aWtri3ee/vXXXxsbG6ld6hBC3t7eurq6RUVFBEHMnz//3LlzMpkMP+Xi4tKmR96ey5cvM5nMFStWUDnKaXXQuNGFRvjll19kMtmyZcuonM8++4wgiGvXrlE5np6eVJBgbGyMEIK97wAAAIA2QJwAAEDfxdDQsLCw0MHBYcuWLebm5iNHjtyxYwd1GI0y7bu5Q4cOpdKLFi0qKyv7448/WlpasrOzV65ciWfgPH/+HCHk6enJ+j/09PREIlF9fT1CaP78+U+fPv3Pf/7T0NBw8eLFJUuWdOhwXV3d4MGDlSfwDB8+XF1hymd6NzRvBAxe8KA8E0lfX3/gwIG4FoyhoWGH7wIAAAC848C8IwAA+jQ2NjZHjx5VKBR37949e/ZseHg4g8Hgcrltir148aJNDjUXHyHk6elpZGSUlZXl4ODw8uXLpUuX4vzBgwcjhM6ePWthYaH8LO5Gf/DBByYmJtnZ2WVlZTKZbOHChR16a2ho+Pz581evXlGhwpMnT9QVpnymd0PzRsAMGTIE1/vee+/hnObm5qamJiMjI6qMcuMAAECxcuXKoKCg9kfbZmVlnTt3TldXV0tLa+/evdRZb+rKv2l/epi0tLSjR4/m5+fTlKmsrAwKCjp9+nSPedUrFBYWbt++/eDBg9TxZ93C+vXrqU2uZTJZRETE8+fPJRKJn5/ftGnTcH51dfVnn31mb2+PEBo0aFB0dDT1eFpa2s8//yyXy1etWuXq6oozJRJJcHDwN9988zqOgZ4AAEDfJTMz8/3336+oqCAIYty4caGhodbW1rdv30YIEQSBh9sx9MdvkSQ5f/78rKyskydPenl54flICCFHR0c9Pb07d+6M/T9kMtnKlSsfPHiAENLS0vLx8Tl79uzJkyc/+ugjPD+HHhcXl9bWVuXzbpTT6nymd4OmEVTi7Ow8YMCAo0ePUjkZGRkKhWLq1Kkd+g8A7wI0GxIsXryY+n5Q5vLly6mpqQKBICEhQflAaHXl37Q/PczKlSs7POpu8ODBmkyzpKfDvSJ6HWdnZ0205U6Rn58/ZswY6pLP58+dOzcpKSklJeX06dPNzc3ULV9fXz6fz+fzlYOEqqqq0tLSQ4cOHT58ODU1ldrcjyRJkiSFQuHr+AZ6AgAAfZcpU6bU19d/+umnAQEBAwcO/Ne//lVSUrJt2zaE0Pjx41NSUsaPH29ubp6ZmXnv3j16U4sXLz58+LBQKMzIyKAy9fX1t2/fHhISUlNTM3Xq1Jqaml27dhkZGTk5OeEC8+fPP3DgwP3797/77jtNHP7www/d3Ny++OKLR48eOTg45Ofnnzx5krqrzmd6N2gagSCI2traa9eu2dnZUXLB0KFDN23atGfPHolE4urq+t///nf37t1z5syZNGmShs0OAH2WrKwse3t7S0vL1zHy8uVLdbe8vLxU5lPreTQs/6b96YMYGBjMmTPnNY3QNMVbzMGDB/l8PnXp7u6ORQOEkKura0lJCf23d25uLhWhubq63rhxg/oJ8/PzS0pKio+P77JvECcAANB3GTlyZG5uLpfLXb9+vVwut7GxOXz4MF6he/DgwbVr127YsEFbW3vBggWpqan04+Xu7u5Dhw6VSqVtfsm2bdtmaGgYHx/P5/MNDQ3nzJmza9cukiSppwwNDcVi8dy5czVxmMFgZGdnczicgwcPNjY2Ojs7nzp1aubMmfgujc80btA0wrx5806cODFjxowrV664uLhQbuzZs2fo0KGHDh1KTEw0NjYODAyMjIyEuUbAW0BjY+OrV6+ULxctWmRnZ9fQ0MBkMk1MTKj5eM3NzREREVKpVC6Xm5qaBgcHEwQhlUpDQkKuXLny5ZdfIoRIkoyNjdXS0kIIVVdX7927VygUxsTEKO8TcO3ataysrJ9//hk/smrVKtyHU1e+tbU1Jiamvr5eLpdraWkxmcyvv/4aIVRcXJyZmalQKMRisbu7O57H2AV/VL4XTTuo488//wwNDcXaSHV1NY/HmzBhwm+//cblcnGNOTk5qampAQEBM2bMwI+cOXPm8uXLBEEoFIqdO3cOGjQI5ycmJpaXlyOEKioqOBwONe/l8ePHe/bskcvlra2tJiYmYWFh+NVUNhFNU+CGGjNmzIQJE7Kzs+nf6+zZs5GRkR4eHrGxsdXV1ZGRkQ8ePNi3b5+jo6PKjwAhlJOTk56e7u/vX1RUVFdXJ5fLBQKBlpaWuo8SIXT+/Hk8Tm9mZoZHbdR9xDT28V2ZTFZTU6OsV1NBAkKooKBg1qxZOE0QxPfff//w4UOJRDJy5Mjg4GCcX1VVZWVlhdO2traVlZVUnGBnZ1dYWEjfYh2gAABaHj9+bGBg0NteAN1PfHz8559/3tte9APs7e0XLVrU5cerqqoQQj/88EM3uvRucvz48Tlz5vS2F3+xefPm6Ojo3vbincDGxub69evUZWpq6h9//KFc4OjRo3FxcTidmJhYUlKC019++WV1dTVOX7t2LSEhgXpky5Yt6qrLzMz8/fff2+dv3bpVw/JRUVG3b9/G6fr6+g0bNrR/KigoSPmyU/6oey917aCO7777rrCwEKf//e9/V1RUtK/xhx9+yMvLw+nPP/9cIBDgdFVV1ebNm9vbPHfu3E8//URdhoaGSiQSnP7jjz/i4+NxmqaJ1DWFTCabN29ecHAw/UthTpw4UVRUhNN8Pl9lU7T5CPLy8j744IPi4mLlTHV+Hjp0KCoqCqfj4+PLysq6Zh/z8OHD+fPnq3wRgUCQnZ1NXcrl8hcvXuD0kSNHqKZW/uP8/fffcaxCMWnSJLFYrNJDHo+nsl6FQvG///1PR0dHoVCAngAAAKAWoVB469atyMjI3nYEAN5p8GBza2trSUlJfn7+kCFD2Gw2h8PBdynJbvTo0U+fPrWxsWlpadHX12ez2Tjfzc2NfglTN1JfX29ra4vTRkZGAoEApysrK+Pj4+VyOYPB6PIQL/17tW8HGlOzZ8+OiorKzc0dNmyYl5dXh5s+kyS5bt06nDY1NdXR0ZHJZNSgeHvKysquX79OfUYIIXy0JVLfRDQwGIwzZ850WAzj4+MTHh6OD8wRCoUBAQE4n/4j4HK5eL9sCho/qbN0LCwsamtr8US4ztrHqGvGjIyMAQMGeHt7UzkEQVCbW/j4+Bw4cABLNwRBUEakUqny+hmEEIPBoFYsdAGIEwAAAFTQ3Nx8/Pjx48ePm5iYUL++Z8+eDQsLU/eIp6fn/v37e8pBAHiHYDKZcXFxCKG0tDQnJ6cu7P/TW/PucL1yuTygZOsSAAAgAElEQVQ8PDwxMRHP1aFmqnSX/S5gZGS0b98+hFBVVdWRI0c++ugjZ2dn+oqU62IwGPRV6+joTJo0SXm5LY1ljb3WCJIkdXR0Ghoa7t+/Ty2/7vAjoKabds3PLttns9ntt8XLzs5+8uTJli1b1FXX3Nysq6uL02ZmZqWlpTgsFAqFykuiEUIKhYLFYtF4Tg/sdwQAAKCClpaWL7/8srKy8vjx49Qw2Lx5826rB4IEAOgjsFispqammpoafPnLL79QY/AIITwNA6fr6uq6t2o9PT1qiwKpVIrDm5aWFjabjXuQDQ0NxcXFyo9o7g/9e3WK8PBwfAzLiBEjFixYcOPGDZyvr6+Pz1pRKBTKhzM2NzcnJyfjdE1NjVQqZTDo+pBsNvvhw4d43QJCSCaTXbx4EadVNhFGXVPI5XIfHx/N46tly5ZlZGScPn16wYIFOIf+I1AJjZ/t6YJ9DEmShoaGypsaXbhw4c6dOzhIEIvF1Gk5KSkp+HgchNDhw4epdQve3t54gzuFQnHp0iVl1aKiouI1N9UFPQEAAEAF7733nkgken07pqamCjjqGAC6CZIkladVlJeXHzt2LC8vLykpiclkpqSkkCQ5depUBoMRFRXF4/FkMplMJmOz2cpdzE8//XT9+vU6OjpSqdTOzm79+vUIoeTkZKFQWFpaamRkZGxsPG3aNB8fH4RQVlbWtWvX8DpmgiCCg4PxRqXqym/fvp3H44lEIrxseuPGjQghXV1dY2PjgIAABoPR2tpqYGCwdevW2NhY3NXulD8q34umHdS1pEgkCgkJwYuMEUK7du3C+Z6enoGBgTk5OU1NTfr6+ocOHfrwww+PHz9eW1tLEMS6detYLBZu3g4/LIFAwOVyFQoFQRBisdjf3x/nq2wimo8GISSTyW7evKn5/BlLS8ubN28aGxtTR9nQfATR0dE4TMrNzdXX19+5cyeNn0Kh8OTJk0VFRXw+/9mzZykpKdra2uPGjRs8eHBn7VOsWLHi1KlTq1atwpehoaHu7u54PXdlZSWHw8HbVMyaNSsiIoIgCJFINGPGDOoABzabbWVltWHDhpaWFn9/f+VZTBkZGdRssa5BwA8YQE9NTY2NjU1DQ0NvOwJ0MwkJCbdu3Tp8+HBvOwIAGpGZmZmZmdljs8zp+eKLL0xMTEJDQ3vbkbefcePGpaend7h5P9AXyMnJee+996ZMmdLbjvQz5HL58uXLjx071r1mJRLJ2rVrlc/wUYbD4ejp6UVERKi8W1dXN3LkSJFIBHoCALyj3Lhx448//lC5rAoA+iZwVBwA9GV+//33NWvW9LYX/Q8Gg/Htt992u1mSJJOSkl7TCMQJAPCOYmlpWVdXt3Xr1t52BAA0Ij8///fff+9tLwAAaMu+ffsePXokk8nGjBkzfPjw3nanX6Knp/cmzFJrnbsMxAkA8I4yaNCg999/HwZogf7C48ePIU4AgE4RGhrafp2VtbX1hg0burGWr776qhutAX0KiBMAAAAAAADeQmJiYnrbBaB/A/uiAgDQAStXrrx9+7bKW2KxODAwkOZIARrS0tKmT5/etXq7pTwAAAAAADRAnAAAQAcsXrwY7wPYHm1tbfotpWlYuXIl/R4mNPW+fnkej6e5ZQAAAAB4B4E4AQCAv8jKyqLOxFHGy8tryJAhPe9PZ+vtVPmXL192ySkAAN5m1MmSWVlZq1atCggI2Lx5M3XuFU35N+3Pa9KhnEvD68jIvUhhYaGHh0dZWVn3mqVOeEAIyWQyLpe7ceNGf3//q1evKhdLS0tbs2bN6tWrCwoKupwvkUjwoQo9CaxPAADgLxobG1+9eqWcU11dvXfvXqFQGBMT4+DgoJwfHR3NYrGkUqmvr6/yI1KpdMyYMRMmTMjOztak0jNnzly+fJkgCIVCsXPnTnyYpbp6KysrY2JidHV1X7x4YW5uXlJSsnv3bnNzc5XlGxsbFy1aZGdn19DQwGQyTUxMuFwu9jAkJOTKlSv4C5ckydjYWOWDaQAAeLvh8Xg7duxQeUudLHn58uXU1FTNy79pf16TlStXUicNdxYsI7c/LKyP4+zsvGTJku61mZ+fP2bMGOqSz+fPnTvXyckJIbRp0yZHR0d9fX2EUFVVVWlp6aFDhxBCq1evnjJlCj7/rrP5JEmSJCkUCq2trbv3RWiAOAEAALWYmpru37//xIkTbfKjoqL27t2LvwFDQ0OVj/zU0tJycHBQ/uqkoa6urra2NjExESFUXV0dHh4eHx9PU290dHRiYiKLxRKLxVOnTt27d6+5ubm68gYGBkuXLn369OnXX3+NEOLz+Xfv3rWxsWEymXFxcUFBQV2eMQUAQG+RlZVlb29vaWn5OkZo5EQvLy+V+fjrTvPyb9ofoC9w8OBBPp9PXbq7u9vb2+O0q6trSUnJpEmTEEK5ubkrVqyg8m/cuIFjic7mI4T8/PySkpLwD2XPAHECALwWR44c6aeHmhcVFZEkif5vfL21tbWkpCQ/P3/IkCFsNpvD4ah78MGDB9QwCUIoMDBQ+SQXBoNx5swZDX0gSZI6Ut7U1FRHR0cmk6kb2i8tLZ08eTKLxUIIaWtra7iv38yZM3Fi9OjRT58+tbGx0dA3oA/y5MmTPnKC+J07d6qrq3vMmb/97W9///vfe6auPk4b2VOdbIgQam5ujoiIkEqlcrnc1NQ0ODiYIAgaOVGdjHnt2rWsrKyff/4ZP7Jq1SrcF1RXvrW1NSYmpr6+Xi6Xa2lpMZlMPFRRXFycmZmpUCjEYrG7u/vChQsRrbypzr7K96JpBxpUyrkq7SP1MrJcLvf09Bw1apRAIGCxWBkZGXv27ElOTnZ2dkadUZjPnj0bGRnp4eERGxtbXV0dGRn54MGDffv2OTo6qmw6hFBOTk56erq/v39RUVFdXZ1cLhcIBFpaWuo+AoTQ+fPnhUIhQsjMzGzbtm04s7P28V2ZTFZTU2NsbEy9AhUkIIQKCgpmzZqF01VVVVZWVjhta2tbWVmJ+/2dzUcI2dnZFRYWdvjJdiMQJwDAa+Hv7z9//vwBA/rfv1JpaamtrS1CCI+vI4TS0tKcnJzGjx/f4bP4Z6N9urMQBKH8OIPBoLHW5lY/Dc+A16G+vj4vL6+3vUAIoUePHrFYrJ5x5tatWwsXLoQ4QSXqZEOEEJfLDQoKYrPZCKGffvqJz+dv2rSJRk5UJ2NOnTp16tSp27Zt27Vrlybld+3a5evri79dX7x4sX37dpzv5ORE9fY4HA7ujHbBH5XvRdMO6lAn56q0j9TLyPgs4XPnzuFBHC8vr/v37+MgAXVGYZ43b55YLB41ahSTyTQ3N3dycgoODsavoLLpEELe3t66urpcLpfP5zs6Onb4ESCEmpqa8MBWQkJCeXk5FqY6ax/z+PHjoUOHqnyXpKQkT0/PgQMH4ku5XE41F0mSra2tXcvHEAQhkUjwMF8P0P86NwDQ10hLS1MnSfdlEhISbt261YUHLSwsdu/evWTJEnx+ZFxcnI6ODnVXLpf7+vpaW1u3+U1VSXNzc3JyckBAAEKopqZGKpUqT2Fqg5WV1ddff+3n56etrS0Wi9PT019ngqxYLFYoFDj2qKurUx4TAvos48aNa99t6hW++OILExOT0NDQHqiLGvV8l6GXPdvLhi0tLfr6+rizixByc3PLycnpGVfr6+txDxUhZGRkJBAIcLqysjI+Ph53Abs8JEz/Xp2ST1XKuVKpVKV9ehl59OjRFRUV+NVSU1M///xz6lanFGYfH5/w8PDJkycjhIRCIf5pQB01HZfLbdOJV/cRIIQWL16MExYWFrW1tThO6Kx9jDr1OyMjY8CAAd7e3lQOQRBUYalUymQyu5aPYTAYcrm8fb1vCIgTAAD4C5Ik23wfJScnC4XC0tJSIyMjY2PjadOm+fj4IITCwsI4HI62tnZzc/P06dP379/v4uLy8ccfI4RkMtnNmzc1+RY7evRobW0tQRDr1q1jsVgMBiMqKoq+3pCQkE2bNunp6Ukkkvnz59P7WV5efuzYsby8vKSkJCaTmZKSQpLk1KlTcSjy6aefrl+/XkdHRyqV2tnZKe9ZAQBAX6MLsmcbXkf5fB1wvXK5PDw8PDExEc/t6cbYr8vvpaGcS2XSy8hz587Nzs729vauqakxMzPrmkskSero6DQ0NNy/f5/aNbvDputwZJ2+ibpsn81mP3nypE1mdnb2kydPtmzZopxpZmZWWlqKwzahUEipK53NxygUCizd9AwQJwAA8Bft94JQtwZgxIgRyoNJ1AgNQojJZFZUVGhSnZ+fn5+fn8pb6uq1sLA4ePAgTp85c4YSH1SWt7S0vHjxInV5+vRp5btubm5ubm6a+AkAQL+DxWI1NTXV1NQMHz4cIfTLL79QY+ToDcuJenp69+7dGzt2LEJIKpXGx8cHBQW1tLSw2WzcE21oaCguLlZ+RHN/6N+rU6iUc9XZp5eREULTp0/fvHmzQqGYO3eucn6nFGaE0LJlyzIyMh49ekQdcUPfdCpR+RGoK9wF+xiSJA0NDZubmymZ5cKFC3fu3MEyo1gsZjAYeOjN29tbIBDExMQoFIpLly599tlnuHxn8xFCFRUVXQiSXweIEwAA6Jf85z//aTNmAwDAW08b2ZNGNoyKiuLxeDKZTCaTsdls5XFilXKiOhkzKyvr2rVreB0zQRDBwcF4o1J15bdv387j8UQiEV42vXHjRoSQrq6usbFxQEAAg8FobW01MDDYunVrbGwsjbypzr7K96KXT9tDI+eqazcaGRnj4OBw/PjxNiMymivMGEtLy5s3bxobG1NxCE3TRUdH37hxAyGUm5urr69PzURV+REIhcKTJ08WFRXx+fxnz56lpKRoa2uPGzdu8ODBnbVPsWLFilOnTq1atQpfhoaGuru74yXplZWVHA7HxcUFIcRms62srDZs2NDS0uLv70/NVupsPkIoIyODmi3WMxCwFhCgp6amxsbGpqGhobcd6aMwGIzGxsb+uz6hj+weozn4t/PVq1ceHh6LFi3qbXeAniMzMzMzM7PHZpnT08PrE0iSjIyM7IG6+iDjxo1LT0+nP7sd6Av89ttvv//+u7+/f2870nPI5fLly5cfO3asZ6qTSCRr165NS0vrFmscDkdPTy8iIkLl3bq6upEjR4pEItATAADoT2i4HSoAAADQk5w+fTo8PLy3vehR8F5PPVYdSZLKM357BogTAAAAAAAAgK6gUCi2bt0qkUiuXr1qZWWlvNnRuwBesNFj6Orq9mR1COIEAAAAAACAt5LQ0FCRSNQm09rauhuFWYIgqFPMgLcPiBMAAAAAAADeQmJiYnrbBaB/o/ZIIwAAAAAAAAAA3lkgTgAA4C1h5cqVt2/fVnlLLBYHBgaGhYV1wWxaWtr06dO7Vm+3lAcAAACAXgHiBAAA3hIWL16M9zVvj7a2Nj7MtQusXLmSfk9Gmnq7pTx13hAAAAAA9CQQJwAA8BdZWVnl5eW97UXX8fLyGjJkSN+vt7PlX7582XmnAAAAUGFhoYeHR1lZWfeaxSfBUchkMi6Xu3HjRn9//6tXr1L51dXVbm5ugYGBgYGB27dvV34kLS1tzZo1q1evLigooDIlEgk+pAzoO8A6ZgAA/qKxsfHVq1fKOX/++WdoaCg+/bS6uprH402YMOG3337jcrkxMTEODg45OTmpqakBAQEzZsxACOXk5KSnp/v7+xcVFdXV1cnlcoFAcO7cucjISA8Pj9jY2Orq6sjIyAcPHuzbt8/R0fHx48d79uyRy+Wtra0mJiZhYWFaWlpyudzT03PUqFECgYDFYmVkZOzZsyc5OdnZ2Vmd59XV1Xv37hUKhdgr5fzo6GgWiyWVSn19fZUfkUqlY8aMmTBhQnZ2tiaNc+bMmcuXLxMEoVAodu7cOWjQIJp6KysrY2JidHV1X7x4YW5uXlJSsnv3bnNzc5XlGxsbFy1aZGdn19DQwGQyTUxMuFwu5WRISMiVK1fwbydJkrGxscpncwIAQAOPx9uxY8ebK9/3cXZ2XrJkSffazM/PHzNmjHIOn8+fO3euk5MTQmjTpk2Ojo7U2aO+vr7tu/5VVVWlpaWHDh1CCK1evXrKlCn43GiSJEmSFAqF1tbW3esz0GUgTgAAQC3nzp1bvnz5Bx98gBDKy8szMDBACDk6Oi5fvhwX8Pb2JkmSKu/t7a2rq8vlcvl8vqOjI86cN2+eWCweNWoUk8k0Nzd3cnIKDg62sbFBCCUlJe3ZswfHIbdv3xYIBJs3b8Yn15w7d47FYiGEvLy87t+/TxMkIIRMTU33799/4sSJNvlRUVF79+7Fv1ihoaH4pwijpaXl4ODQ5tdOHXV1dbW1tYmJiQih6urq8PDw+Ph4mnqjo6MTExNZLJZYLJ46derevXvNzc3VlTcwMFi6dOnTp0/x3oJ8Pv/u3bu4fZhMZlxcXFBQUJcnTQHAW0ZWVpa9vb2lpaUmhTurxYF2pwkHDx7k8/nKOe7u7vb29jjt6upaUlIyadIkGgu5ubkrVqygyt+4cQPHGAghPz+/pKQk/AUL9AUgTgCAdx08aN3a2lpSUpKfnz9kyBA2m83hcBBCs2fPjoqKys3NHTZsmJeX16hRozQxyOVyqSAB4+PjEx4ePnnyZISQUCgMCAhACJWVlV2/fh1XhNHW1saJ0aNHV1RUyOVyBoORmpratYN7Hjx4oDysFRgYqHySJYPBOHPmjIamSJJct24dTpuamuro6MhkMnXj+qWlpZMnT8ZBjra2tob7lM+cORMnRo8e/fTpUxwnAG24e/fu0qVLe9sLhBD67bffqGgZ6Ek0lD1ptLji4uLMzEyFQiEWi93d3RcuXIjUa3c08qnKerFLmsuVZ8+eVSe3qvQTqZFttbS0WltbY2Ji6uvr5XK5lpYWk8mkjjU4f/68UChECJmZmW3btg1ndtY+viuTyWpqaoyNjZXfggoSEEIFBQWzZs3CaYIgvv/++4cPH0okkpEjRwYHB+P8qqoqKysrnLa1ta2srKTiBDs7u8LCQvpGA3oSiBMA4F0HD1ojhNLS0pycnMaPH0/dMjIy2rdvH0KoqqrqyJEjH330Ef24PkZZYaBydHR0Ghoa7t+/T60J1tHRmTRpUnR0tEojc+fOzc7O9vb2rqmpMTMz69qrEQShMt0FO8qPMxgMGmttbikUii7XC7TB0NBw2rRpve0FQghNmzaNfnU70GOolD1ptDgnJyeqV8rhcHD/WF15GvlUZb0YzeVKGrlVpZ9IjWyLENq1a5evr6+trS1C6MWLF8rrAZqamvAoSUJCQnl5OVZjOmsf8/jx46FDh6p7naSkJE9Pz4EDB+LL4cOHX7hwwdDQECGUmppaUFDg6uqKEMJjQLgMSZKtra3KRgiCkEgk7X9HgF4B4gQAANQSHh7O5XKZTOaIESMWLFjw448/4jhBX1//+fPnCCGFQnHt2jUPD48OTS1btiwjI+PRo0fU7j1sNvvhw4fUj5ZMJsvLy/Py8sJ3p0+fvnnzZoVCMXfu3K45b2FhsXv37iVLlujp6SGE4uLidHR0qLtyudzX19fa2nrXrl0dmmpubk5OTsYySE1NjVQqVZ7C1AYrK6uvv/7az89PW1tbLBanp6fv3Lmza6+AEYvFCoUChx91dXVtRvLeKYYNG7Z27dre9gLoBbpR9qysrIyPj8dd1dcZuqapt1NypUq5tUM/28u29fX1OEhACBkZGQkEAurW4sWLccLCwqK2thZ/5XbWPoZGSs3IyBgwYIC3tzeVQxAEDhLwax44cADHCQRBUHakUinWZCgYDIZcLldZBdDzQJwAAMBfkCTZ5vtaJBKFhITgdcYIIapL7enpGRgYmJOT09TUpK+vf+jQoQ8//FBLSys6OvrGjRsIodzcXH19feX+saWl5c2bN42NjZU76wKBgMvl4k6wWCz29/dXrt3BweH48eOnT5/u0PPk5GShUFhaWmpkZGRsbDxt2jQfHx+EUFhYGIfD0dbWbm5unj59+v79+11cXD7++GOEkEwmu3nzpia/RkePHq2trSUIYt26dSwWi8FgREVF0dcbEhKyadMmPT09iUQyf/58ej/Ly8uPHTuWl5eXlJTEZDJTUlJIkpw6dSoVinz66afr16/X0dGRSqV2dnZtdhoBgHeB7pI95XJ5eHh4YmIi3oqAmoTTBbomt7ZHpdzaoZ8dDrfTK6hdts9ms588edI+Pzs7+8mTJ1u2bFFXY3Nzs66uLk6bmZmVlpZi2UQoFLYRXhQKBZ63CfQFIE4AAOAv2m+LoW75rLa2Nt6qog1tdr5rw8GDB9vkDBo0KCEhQV15e3t7DUeV1K0BGDFihPKaBGpQDSHEZDIrKio0Me7n5+fn59epei0sLKiXPXPmDNXjV1ne0tLy4sWL1GX7uMjNzc3NzU0TVwHgHUSd7IlUaXEtLS1sNht3jhsaGoqLi5VNqdTu1MmnNPV2Sq5EquRWej9Voqend+/evbFjxyKEpFJpfHx8UFCQusJdsI8hSdLQ0LC5uZla+oUQunDhwp07d0JDQxFCYrGYwWDgIaeUlJQFCxZgSeHw4cPU4iJvb2+BQBATE6NQKC5duvTZZ59RpioqKpSDQKDXgTgBAIA+yunTp8PDw3vbi9flP//5D80YGwAAnUJz2ROp0uJ0dXWNjY0DAgIYDEZra6uBgcHWrVtjY2NxMK9Su1Mnn9LUq7lciWkvt9L4qU623b59O4/HE4lEBEFIpdKNGzcihIRC4cmTJ4uKivh8/rNnz1JSUrS1tceNGzd48ODO2qdYsWLFqVOnVq1aReWEhoa6u7vjJeCVlZUcDsfFxQUhNGvWrIiICIIgRCLRjBkzRo8ejcuz2WwrK6sNGza0tLT4+/srT2TKyMigNo0A+gIErLED6KmpqbGxsWloaOhtR/ooDAajsbFReWSlv5CQkHDr1q3Dhw/3tiNtUSgUW7dulUgkV69e3bRpU9c2O+p18BSjV69eeXh4LFq0qLfdeRvIzMzMzMzMycnpbUd6mm3btpEkGRkZ2duO9A7jxo1LT0+HVeN9B7lcvnz58mPHjnW7ZYlEsnbt2rS0tG63DLSHw+Ho6elFRESovFtXVzdy5EiRSAR6AgAAfQuCIKjt/JQJDQ0ViURtMq2trTXceLSH6ZteAQAAvCb4iJs3YZkkSeWZokBfAOIEAAD6BzExMb3tAgAAAIDwJnJvAmqtM9BHULu1HwAAAAAAAAAA7ywQJwAAAAAAAAAA0BaIEwAAAAAAAAAAaAvECQAA9FFWrlx5+/bt3vai2ygsLPTw8CgrK+t2y8onr8lkMi6Xu3HjRn9//6tXr1L51dXVbm5ugYGBgYGBbY65SEtLW7NmzerVqwsKCqhMiUSCdzkEAAAA3llgHTMAAL0Jj8fbsWOHyluLFy8eNmxYD/vz5nB2dm5/kt3rk5+fr3yaKZ/Pnzt3rpOTE0Jo06ZNjo6O1Ka9vr6+7bv+VVVVpaWl+NS81atXT5kyBW8kT5IkSZJCodDa2rrbfQYAAAD6BaAnAADwF1lZWeXl5T1c6cuXL9Xd8vLyGjJkSE860x85ePCg8nHR7u7uOEhACLm6upaUlNA/npubu2LFCqo8Pl8J4+fnB3sUAkDP0IvyqVgsDgwMDAsL65XagT4O6AkAAPxFY2Pjq1evlHOqqqp27tzJYrEaGxtdXFxSUlJ4PN7QoUO5XG5MTIyDg0NOTk5qampAQMCMGTMQQo8fP96zZw8+oNTExCQsLAwftPnnn3+GhobiU1Srq6t5PN6ECROkUmlISMiVK1fwIDdJkrGxsbh8dXX13r17hUIhroXyp7m5OSIiQiqVyuVyU1PT4OBggiAaGxsXLVpkZ2fX0NDAZDJNTEy4XC71iFQqHTNmzIQJE7Kzs+lf/+zZs5GRkR4eHrGxsdXV1ZGRkQ8ePNi3b5+jo2NxcXFmZqZCoRCLxe7u7gsXLsSP5OTkpKen+/v7FxUV1dXVyeVygUCgpaXV2toaExNTX18vl8u1tLSYTCZ1IsT58+eFQiFCyMzMbNu2bThTnX2aKvBdmUxWU1NjbGxMlbe3t6fSBQUFs2bNwmmCIL7//vuHDx9KJJKRI0cGBwdTH7GVlRVO29raVlZWUmGGnZ1dYWEhfaMBwLsAjezZXXZ6UT7V1taOi4trf+5ye7qrHYB+BMQJAACohcfjJSQk4Ikr//jHP7y8vD7++GOE0PLly3EBb29vkiSp8klJSXv27MHxwO3btwUCwebNmxFC586dW758+QcffIAQysvLMzAwQAgxmcy4uLigoKC4uLg29Zqamu7fv//EiRNt8rlcblBQEJvNRgj99NNPfD5/06ZNBgYGS5cuffr0Ke6L8/n8u3fv2tjY4Ee0tLQcHByUZ+aoY968eWKxeNSoUUwm09zc3MnJKTg4GNtxcnKies8cDofqx3t7e+vq6nK5XD6f7+joSJnatWuXr6+vra0tQujFixfK6wGamprwIH1CQkJ5ebmlpSWNfZoqMI8fPx46dKjK10lKSvL09Bw4cCC+HD58+IULFwwNDRFCqampBQUFrq6uCCG5XI4nGiGESJJsbW1VNkIQhEQiUf6IAaB3ycrKsre3x/84PQaN7Nlddry8vLqlijdKd7UD0I+AOAEA3nXwuH5ra2tJSUl+fv6QIUPYbDaHw6moqJg4cSI1uz04OJj+DM6ysrLr169zOBwqR1tbGydmz54dFRWVm5s7bNgwLy+vUaNGdcHPlpYWfX19HCQghNzc3HJycqi7M2fOxInRo0c/ffqUihMYDMaZM2c0rMLHxyc8PHzy5MkIIaFQGBAQgPMrKyvj4+Nxl7r9EDuXy23Tg6+vr8dBAkLIyMhIIBBQtxYvXowTFhYWtbW1uLtDb19lFRiZTEZpC8pkZGQMGDDA29ubyiEIAgcJ+DUPHDiA4wSCICgjUqkUx3gUDAZDLpe3tw8AvUV72VOdfKdOi1MnezGNTgoAACAASURBVKqU9WhkT3V2VNJZ+TQ2Nvaf//ynvb19c3Mzm80Wi8Vjxoz54osv6OvVXD7F9UZHR7NYLKlU6uvrS+V3th062xRA/wLiBAB418Hj+gihtLQ0Jyen8ePHU7cUCoXKtEp0dHQmTZoUHR3d/paRkdG+ffsQQlVVVUeOHPnoo4+cnZ1f33OCIF7fiDIkSero6DQ0NNy/f3/ixIk4Uy6Xh4eHJyYmDho0CCFETRZSfup1/OzQPk0VbDb7yZMnbTKzs7OfPHmyZcsWdTU2NzdTh56amZmVlpbisEooFLYRXhQKBYvFonEeAHoddfKdOi1OneypUtajkT3V2VFJZ+XTDRs2PHz48MCBA2lpaQYGBvPnz9+6dWuH9WounyKEoqKi9u7di0eCQkNDKV2xs+3Q2aYA+hcQJwAAoBpzc/PffvutubkZ/5AkJCRQXUZ9ff3nz58jhBQKxbVr1zw8PBBCbDb74cOH1FwamUyWl5eHxfTw8HAul8tkMkeMGLFgwYIff/yRihPEYrFCocA96bq6OuWp9m1gsVhNTU01NTXDhw9HCP3yyy+UtkCDXC739fW1trbetWuXJm+9bNmyjIyMR48e8Xg8nNPS0sJms3EnvqGhobi4uEMjenp69+7dGzt2LEJIKpXGx8cHBQWpK9wF+xQkSRoaGlKfEULowoULd+7cCQ0NRQiJxWIGg4F/vFNSUhYsWIAlhcOHDy9duhSX9/b2FggEMTExCoXi0qVLn332GWW8oqJCOWgEgF5EneyJaOU71E6Lo5E9O5T1lKGx011g3ZXFYpmZmaH/G26gr1dz+fTBgwfKm6EFBgZSmxZ0qh06dAno70CcAADAX5Ak2WbaSURExJYtW3R0dFpaWubMmfPrr7/ifE9Pz8DAwJycnKamJn19/UOHDn344YdaWloCgYDL5eJ+v1gs9vf3x+VFIlFISAhWpRFCyl32Tz/9dP369To6OlKp1M7ODh8FkJycLBQKS0tLjYyMjI2Np02b5uPjgxCKiori8XgymUwmk7HZbDz0Xl5efuzYsby8vKSkJCaTmZKSQpLk1KlT8fCYTCa7efOm5pNnLC0tb968aWxsrKOjg3N0dXWNjY0DAgIYDEZra6uBgcHWrVtjY2MZDEZ0dDTeICg3N1dfX59aCLh9+3YejycSiQiCkEqlGzduRAgJhcKTJ08WFRXx+fxnz56lpKRoa2uPGzdu8ODB6uwjhNRVQbFixYpTp06tWrUKX4aGhrq7u+O5AZWVlRwOx8XFBSE0a9asiIgIgiBEItGMGTNGjx6Ny7PZbCsrqw0bNrS0tPj7+yvPFsjIyFi3bp2G7QYAbxQa2bMNbeS7NlqcOtlTE1lPEztvmm6sV7mhqHRn26F7XQL6IBAnAADwF+139x8xYgS1JqGlpYWKE7S1tfGO+20YNGhQQkJC+3yVUjXGzc3Nzc2tTeaGDRtUFh44cCCev6SMpaXlxYsXqcvTp08r32UymRUVFepqV8nBgwfb5Hz11VcqS7Y5sIyCxWLt3r27Taa1tXVeXh5Om5qanj17tkP7NFVQ+Pj4LF++nIoTbt68qbLY8OHDv/nmG5W3Vq1aRT1OIZFIysrKYKtEoO/TKflOnexJL+u1lz1p5FMaNJdPO+s/vqu5fGphYbF79+4lS5bo6ekhhOLi4vDISGfboUOXgP4OxAkAAAD9GAaDQb++vGuQJAmHJwB9kPayp0r5DqnX4lTKnjSyIVIje6qTT2nQXD5NTk4+f/48HrtJTk4+fPhwU1PTsWPHli1bRlNvp+TTsLAwDoejra3d3Nw8ffr0/fv3u7i4fPzxx51th641BdBfIDpcmwi849TU1NjY2DQ0NPS2I30UBoPR2NhIzfLsRyQkJNy6devw4cOaFD558mRBQcGvv/7K4/Hw1qgA0MNkZmZmZmYqb3L1jrBt2zaSJCMjI3vbkd5h3Lhx6enp1L4CAAB0CxwOR09PLyIiQuXdurq6kSNHikQi0BMAAOiYRYsWLVq0qLe9AAAAAACg52D0tgMAAAAAAAAAAPQ5QE8AAAAAAADoBkJDQ0UiUZtMa2trdXszAEAfB+IEAAAAAACAbiAmJqa3XQCA7gTmHQEAAAAAAAAA0BaIEwAA6KOsXLny9u3bve3F20BhYaGHh0dZWVn3mqV2RUQIyWQyLpe7ceNGf3//q1evUvnV1dVubm6BgYGBgYFtzoJIS0tbs2bN6tWrCwoKqEyJRIIPiQMAAAB6HZh3BABAb8Lj8Xbs2KHy1uLFi4cNG9bz9b59ODs7tz9E7zXJz88fM2YMdcnn8+fOnevk5IQQ2rRpk6OjI7VZsK+vb/uuf1VVVWlpKT6tb/Xq1VOmTMEbtJMkSZKkUCi0trbuXocBAACAzgJ6AgAAf5GVlVVeXt7Dlb58+VLdLS8vryFDhvR8vYAmHDx40M/Pj7p0d3fHQQJCyNXVtaSkhP7x3NzcFStWUOXxeVgYPz8/OOINeMtIS0ubPn16D1QEMizQvYCeAADAXzQ2Nr569Uo5p6qqaufOnSwWq7Gx0cXFJSUlhcfjDR06lMvlxsTEODg45OTkpKamBgQEzJgxAyH0+PHjPXv2yOXy1tZWExOTsLAwLS0thNCff/4ZGhqKT1Gtrq7m8XgTJkyQSqUhISFXrlzBg80kScbGxuLy1dXVe/fuFQqFuBbKn+bm5oiICKlUKpfLTU1Ng4ODCYJobGxctGiRnZ1dQ0MDk8k0MTHhcrk0r6muXrlc7unpOWrUKIFAwGKxMjIy9uzZk5ycXFZWlp6e7uXlJRQK9fT0GAwGj8cbNGgQzfviWsaMGTNhwoTs7Gz6Zj979mxkZKSHh0dsbGx1dXVkZOSDBw/27dvn6OiIECouLs7MzFQoFGKx2N3dfeHChfipnJyc9PR0f3//oqKiuro6uVwuEAi0tLRaW1tjYmLq6+vlcrmWlhaTyfz666/xI+fPnxcKhQghMzOzbdu24czO2sd3ZTJZTU2NsbEx9Rb29vZUuqCgYNasWThNEMT333//8OFDiUQycuTI4OBg6k/LysoKp21tbSsrK6kww87OrrCwkL7RAKAneX35ceXKlffu3esuf2jolAz7TsmqQNeAOAEAALXweLyEhAQ8geQf//iHl5cXPox5+fLluIC3tzdJklT5pKSkPXv24Hjg9u3bAoFg8+bNCKFz584tX778gw8+QAjl5eUZGBgghJhMZlxcXFBQUFxcXJt6TU1N9+/ff+LEiTb5XC43KCiIzWYjhH766Sc+n79p0yYDA4OlS5c+ffoUd4j5fP7du3dtbGzUvZS6ehkMxrfffnvu3DkWi4UQ8vLyun//vrOzs7Oz87///W+SJPEkmZqamh07duzbt4/mfRFCWlpaDg4OyjNz1DFv3jyxWDxq1Cgmk2lubu7k5BQcHEz57+TkRHWgORwO1Y/39vbW1dXlcrl8Ph9HFJhdu3b5+vra2toihF68eKG8JKCpqQmP0yckJJSXl1taWnbBPubx48dDhw5V+TpJSUmenp4DBw7El8OHD79w4YKhoSFCKDU1taCgwNXVFSEkl8vxRCOEEEmSra2tykYIgpBIJMp/WgCAycrKsre3x3+9PUY/kh+9vLw0L9yP3gvoLSBOeLP88ccfs2fPvn//PkmSM2bMmDFjBjWMp8x777137Ngx/O89b948b2/vzz//vMedBd5R8Ph6a2trSUlJfn7+kCFD2Gw2h8OpqKiYOHEiNcs8ODj422+/pbFTVlZ2/fp1DodD5Whra+PE7Nmzo6KicnNzhw0b5uXlNWrUqC742dLSoq+vj4MEhJCbm1tOTg51d+bMmTgxevTop0+f0sQJNIwePbqiogJ3YVNTU6l/w4EDBwYEBOD08OHDWSyWXC5/8OCBuvdFCDEYjDNnzmhYr4+PT3h4+OTJkxFCQqGQqgshVFlZGR8fj11qP8rO5XLbdOLr6+txkIAQMjIyEggE1K3FixfjhIWFRW1tLe5pddY+RiaTUdqCMhkZGQMGDPD29qZyCILAQQJ+zQMHDuA4gSAIyohUKsWxFgWDwZDL5e3tA0B72VOdhqZOE1MnA6rU1mhkTxo5UR1nzpy5fPkyQRAKhWLnzp2DBg1SJ2M6OzujzsiSSI0Mq05upXkvAFAG4oQ3S0RExBdffIFHxWbOnDlu3LgOH+FwOEuXLl2+fPmAAfDpAD0BHl9HCKWlpTk5OY0fP566pVAoVKZVoqOjM2nSpOjo6Pa3jIyM8AB8VVXVkSNHPvroI/wr+JoQBPH6Rtowd+7c7Oxsb2/vmpoaMzMznNnm3fElzft2FpIkdXR0Ghoa7t+/P3HiRCpfLpeHh4cnJibiaU7tRxk6HHGnb6Iu22ez2U+ePGmTmZ2d/eTJky1btqirrrm5WVdXF6fNzMxKS0txOCcUCtsILwqFAqs6fZCWlpb2B2m96RplMll9fX1PVtp36DBiVKehqdPE1MmAKrU1GtmTRk5USV1dXW1tbWJiIkKouro6PDw8Pj5enYyJH9FclkRqZFh1civNewGAMtATfYNUV1fn5uZSC/KUxx1pcHFxIQji4sWLs2fPfpPeAUAHmJub//bbb83NzVhSSEhIoLpu+vr6z58/RwgpFIpr1655eHgghNhs9sOHD6kJLTKZLC8vD6tk4eHhXC6XyWSOGDFiwYIFP/74I/VDKBaLFQoF7s7W1dUpT3lvA4vFampqqqmpGT58OELol19+obSFLqCu3unTp2/evFmhUMydO1e58MGDB/GJqjU1NRKJhMFg0LwvQkgul/v6+lpbW+/atUsTf5YtW5aRkfHo0SMej0dltrS0sNls3IlvaGgoLi7u0I6ent69e/fGjh2LEJJKpfHx8UFBQeoKd8E+hiRJQ0ND6m8DIXThwoU7d+6EhoYihMRiMYPBwP2nlJSUBQsWYEnh8OHDS5cuxeW9vb0FAkFMTIxCobh06dJnn31GGa+oqFAOVvsaR44c2bRpU0+O48hkMoRQQkJCj9XYp8BfO+pkT0SroaF2mhiN7EmvrbWBxo46SJJct24dTpuamuro6GBJTZ2MiTopS9LQLXIr8G7Sv+OEhoYGf3//8+fPm5iY7N69e+PGjdTsndGjR+/cuZPS2Q0NDU+fPj1jxozW1taIiIjU1NRnz57Z2dnt37/fzc2NpjxCSN0jx48fj4iIePDggYGBwbRp09r/M2dnZ//tb38zMTHBl8rzjtp43ubBTz75JDMzs8txglgs/uGHH+bNm9e1x4F3FpIk20z/iIiI2LJli46OTktLy5w5c3799Vec7+npGRgYmJOT09TUpK+vf+jQoQ8//FBLS0sgEHC5XNz/FovF/v7+uLxIJAoJCcECPUJIuev86aefrl+/XkdHRyqV2tnZ4S35k5OThUJhaWmpkZGRsbHxtGnTfHx8EEJRUVE8Hk8mk8lkMjabjf+bysvLjx07lpeXl5SUxGQyU1JSSJKcOnUqNf1dJSrrxTg4OBw/fvz06dNUztChQw0MDAICAnDvcOfOnThf3fsihGQy2c2bNzWfPGNpaXnz5k1jY2MdHR0qU1dX19jYOCAggMFgtLa2GhgYbN26NTY2lsFgREdH4z2CcnNz9fX1KZe2b9/O4/FEIhFBEFKpdOPGjQghoVB48uTJoqIiPp//7NmzlJQUbW3tcePGDR48uLP2KVasWHHq1KlVq1bhy9DQUHd3dzyHobKyksPhuLi4IIRmzZoVERFBEIRIJJoxY8bo0aNxeTabbWVltWHDhpaWFn9/f+UJDxkZGVR3qm+ybNmy9PT0Hqtu27ZtJElGRkb2WI19CqzD08iebWijobXRxNTJgB1qa23ogpxIEISybwwGg7pUKWMCQF+gf8cJa9asKSsrKywsZDKZAQEBTU1NHT7y1VdfXb9+/fTp02w2+9SpU5988sm9e/fw8GSnHmEwGCtWrEhJSfH09GxqalI+J4ji559/Vjm1F3suFAp/+eUXJpO5YcOGNp5PnDixzYFEGvLy5UuBQLBr167vv/++C48D7zjtt9gfMWIEtSahpaWFihO0tbXxot42DBo0SOWoJ4207ebmhgNvZfDIfXsGDhyI5y8pY2lpefHiRepSuX9Pg8p6Mfb29u3790uXLqXGwinUvS9CiMlkVlRUaOIJxcGDB9tnfvXVVyoLq/uKYLFY7YcerK2t8/LycNrU1PTs2bNdtk/h4+OzfPlyKk64efOmymLDhw//5ptvVN5atWoV9TiFRCIpKysLCwujrx0AKDqloamTAem1tfbyI72cqJLm5ubk5GS8+qimpkYqlVJjGSplTNR5WbKzaC7nAu8s/ThOePbs2T//+c+ffvoJ78fH5/M7lKobGhoOHDjw3//+F3+hbNmyJTs7OysrKzAwsLOPfPjhhwih2bNn4/3dVR4JpE49x55fvnwZrzRKTExU3vkRIWRqavr48eOWlhbNZ+i+fPmSz+fHxMSIRKLx48djJQQAgC5w+vTp8PDw3vair4PnVXe7WZIk4fAEgIb2sqdKDQ0hpE4TUykD0mh3SI38SCMntufo0aO1tbUEQaxbt47FYjEYjKioKOUC7WVM1ElZUqUMSy+30siqAIDpx3HCvXv35HL5pEmT8KWtra2enh79IyUlJVKptM3MPLz5RmcfsbGxcXV1tbKymjVr1vTp0xcuXEjN06V4+fIltWivvefU/Gx7e3vlmQYIIfzUq1evNIkTqAihtbVVJBKxWKyZM2cePXq0wwc15M8//+wuU0D/5eTJkwUFBb/++uvkyZPx1qhvHwqFYuvWrRKJ5OrVq1ZWVtQs4e+++y4/P//LL7+cPXs2RODKdPiV2zVUfm0CAKa97KlSQ0PqNTF1MqA6bQ2pkR9p5MT2+Pn5KZ9L2B6VMmanZEmVMiy93EojqwIAph/HCfS0maGI9yfB/4QvXryg9umjL0//SH5+/pUrVy5duhQbG7tz584bN25gyZLCyMiosbFRnXvKy+DaLIlraGjQ0tKiNiCnp6SkJD09/dWrV3jmt0QiuXXrVmlpqSbPagisqAYWLVq0aNGi3vaic4SGhrbfl8ba2lrdpCaCIKgjyZRZvnw5dV4EAADAmwBkTKBv0o/jhLFjxzIYjOvXr0+ZMgUhdOfOHeUTQwwMDBoaGnD6+fPneAHAuHHjBgwY8MMPPyjvrUFTnv4RBoMxffr06dOnc7nc9957r6Cg4JNPPlEuYGNjU1ZWptJzgiBKSkrwrKSqqqo26xPu378/ZswYDffTmDhxYklJyb/+9S8OhyMUCltbW997771u1BMAoJ8SExPT2y4AAADQoU7GBIA+Qj+OE9577z0fH5/AwMC0tLQBAwZs2rRJeVsDd3f3jIyM5cuXMxiMbdu2YbnAyMho48aNmzdvZjKZkydPfv78+dmzZ+fMmePo6KiyPM0jeDvIjz/+eNCgQXl5eWKx2MLCoo2H06ZNi4iIUOf59u3bT548qaWlFRIS0mZjlqKiIk9Pz061xsyZM2fOnPmvf/1r69atJ06ciIyMNDc375QFAAAAAABeh+6SMQGgj9CP4wSEUEpKir+//+TJk4cOHbp79+7//ve/1C0ul7ts2bLhw4e///7727dvP3XqFM7ft2+fsbExh8Oprq4ePHiwu7s7Xnukrry6R5qbm8+fPx8VFdXU1GRlZZWent5+Q+LZs2evXbv29u3b7VczY8/NzMyGDBkSEBCgPH1QIpFcuHDh0qVLXWgQKlrIy8tbu3ZtFywAAAAAANA1QMYE3jL6d5yATzmgLpW3LTI0NMzNzaUuly1bhhNaWlphYWHtN91TV57mkfz8fHr3Bg4cuGbNmkOHDsXHxyOElLv+NJ5nZWXZ2tqq21BVE/4fe3ceEFW5/w/8mTPOwhKIhqSDC8giKkqBK4kGmVCukMqVNG6XmyRofhOUbUBlVUAvAkMLKuSC3gzE5da9hGabYlRWhA6BYCJcLgayCAwzc+b3x+nOnR8yw4DIsLxff515zrN8npPp+ZznLMovqgAMKr6+vkFBQdp/Qqu39QePu3fv7t+/XywWHzhwQDV+deWMoTtfAAAYljR9hwgeX2ho6G+//dbZ2al9k2+//bbbVzcADHXe3t7jx4/vUqj6+WFt6g8JEydOTE1NffTpZ3XljN7OV8OhAwAAeHzIE54sU1PTvLy8Lt+D1Cw5OZn5jinAAMvNza2oqHhy/bu7uzPfG1Gl+voBbeoPY72dr4ZDBzDCXb161dXVtdtXiQxOvr6+JSUlOhlaIpEEBgbi44bQraF931EX9+/f13UIAENYc3Nze3u78uexY8eys7Pd3d3FYrGBgQFFUVFRUczLf1tbW3fv3i2VSmmaNjc337lzJ/Po/4MHD8LCwpivIFVXV0dFRc2aNYvZTk5OFovFcXFxyq8KSqXS0NDQy5cvb9++nRDC5XLj4+PZbLa6+urGbW5uXr9+vb29fVNTE4fDMTMzEwqFyiZSqdTGxmbWrFn5+fk9HoFu44+Pj//4449nz57d2toqEAgkEomNjc3bb79NCCkuLs7JyVEoFBKJZMmSJWvXru3bkVc3X3VT03DoAIAQsmDBgke/tKBzUVFRe/bs6XaXDpdPeTxeUlKS8jt0GmiIH4arYZUnAEA/2rhx47/+9S8ul/vBBx8QQmpqavbs2XPgwAFCiFAoDAoKEggEhJAvv/wyLS1t69athJDz589v2rRp/vz5hJCCggIjIyOmK3Nz84MHD546dUq1fw6Hk5SUFBQUlJSU1GXobuurG9fIyMjHx6euro55bUhaWtrNmzeV7xVgs9kODg42NjbaTLnb+N966607d+68++67WVlZRkZGnp6eu3btYuo7OTk5OTkx28HBwX3OE9TNV93UNBw6gOEtNzd39uzZU6dO1XUgfaF5+XQgI+kbrGGOQMgTAEY65uK0TCYrLS0tLCwcO3asQCAIDg4mhDz11FMBAQFMtQkTJvD5fJqmOzs7DQ0NmZN1QsiiRYvOnTvHbC9fvjw6OvrChQvjx493d3efMmVKP8bZ0dGhblyi8vi+lZVVXV2dMk+gKCovL0/LIdTFz2zw+fxJkyYRlc8yVlVVpaSk0DRNUdTVq1cfb35qqZsawAjUZdmTECKTyeLi4hoaGmiaZrPZHA5H+abRixcvisViQsikSZNCQkKYwm6XATUsS1ZVVcXFxenr6zc2NlpYWJSWlu7bt8/CwuLevXuJiYk0TctkMjMzs4iICA1rer1dPtWwjKlh3F4tn1ZXV8fGxvL5fKlU6uXlpSzv9vhoXsPs1aGAoQV5AsBIx1ycJoRkZWU5OTmpvm9H+WHybn8qqX5vhFlwuHv37pEjR1566aUFCxY8qbgf+Yz64+tV/DRNR0ZGpqamMvdiKc9CAGAgJSQkeHl5zZgxgxDS2NgYHh6u3NXS0iISiQghhw4dqqioYFYhul0G1LAsGRsbm5qayufzJRKJi4tLcnIy83kikUiUmJjI3KZYUlKSnp6+bds2dUH2dvlUwzKmhnF7tXwaHR2dnJxsaGhICAkLC1N+x6nb46N5DbNXhwKGFuQJAKCWRCJ5//33mS8E1dTUdHZ2UhTF5/NbWlpqamomTJhACPnmm2+U1/gjIyOFQiGHw5k4ceKrr776+eef95gnSCQShULBnPHX19ebmpqqq6lhXA1omvby8rK1tU1ISOixcq/i7+joEAgETJLQ1NRUXFzcY//9S/tDBzDUaVj2bGhoYJIEQoiJiUl6erqylbe3N7NhaWlZW1vL5AkalgEfXbsrKyubN28en88nhPB4POXn0srLy69fv84EwODxeP075W6XMTWPq/3y6e3btx0dHZkkgRASGBjIJFSk98ukA3AoQIeQJwDAH7hcLnNBSGncuHFGRkYBAQGjRo0ihCgfdIuOjo6KipLL5XK5XCAQKC+lt7W1hYaGMqvPhBDlqXlGRoZYLC4rKzMxMTE1NV28ePGaNWuYXevWrfP399fT05NKpfb29v7+/hrqdztuRUXF8ePHCwoKRCIRh8PJzMzkcrkuLi7M5TG5XH7jxg2aprU5At3Gn5GRcfHiReaZyIyMjMOHD7e0tBw/fvy1114zNTUNCAigKEomkxkZGe3atSs+Pp6iqPT09F9//fXWrVv//Oc/x44du2TJktWrVxNC1JWrm6/mqXV76ACGJQ3Lnl1oXmbs7TJgl96Ua6p6enpz586NjY3VMv7+0o/jqk5Nud2HZVJdHQoYGMgTAOAP3b4exMfHx8fHp0vhU089xdyf04W6x2qVF+EetWjRokWLFmlZv9txp06dqvpFc9UvGBJCOBxOZWWlutG76Db+0NDQ0NBQQsikSZOYy5PKC5bvvPNOt/0oH+rQslzdfDVPrdtDBzDSGBgY3Lp1a9q0aYQQqVSakpISFBSkrnJvlwGtra3379+/ceNGHo8nkUiys7OZyyUCgeDOnTvKe5nkcnlBQUGPzyI//hqg5nG1Xz61tLTct2/fhg0bDAwMCCFJSUl6enqkp+PTbfx9OxQwVCBPAAAAgKHh0WXP8PDwqKiotrY2FosllUq3bNlCCBGLxadPn7527VpaWtr9+/czMzN5PN706dPHjBnT7TJgZWWlurW70NDQrVu3GhgYdHZ2enp6KsdNT08XCoXMebNEIvHz8+sxeO2XTzUsY2oYt1fLpxEREcHBwTwer7W11c3N7eDBg87Ozh4eHuqWSdXF37dDAUMFS92DiQCgDYqimpublXd5DiGHDh368ccfDx8+rK7Chx9+mJqa6uzsvHz58hdffHEgYwN4VE5OTk5OjupLrnRCJBIVFRVlZ2cP2IghISFcLnfv3r0DNuKgMn369Ozs7Dlz5ug6EEIIycvLMzMzW7hwoa4DAXhcwcHBBgYGu3fv7nZvfX395MmT29rasJ4AAN3btGnTpk2bdB0FAMBgUVRUtGPHDl1HATBwkCcAAAAAqMXcGtTe3u7q6ooXi8GIgjwBAAAAQC0NrNANgAAAIABJREFUb2LoIiwsrK2trUuhra2t9j0ADCrIEwAAAAD6QVxcnK5DAOhPlK4DAAAAAACAQQd5AgAMPRKJJDAwMCIiYpD0AwAAMPwgTwAAXYqKiupDKx6Pp+6bbk+on77FCQAAMHQhTwCAP+Tm5lZUVAzwoA8fPhzgEftmqMQJAISQq1evurq6lpeX6zqQP2RlZbm5uQ3AQL6+viUlJQMwEIwQeI4ZAP7Q3Nzc3t6uWiKTyeLi4hoaGmiaZrPZHA5n//79hJBz585lZ2f7+fldu3atvr6epun09HQ2m33v3r3ExESapmUymZmZWUREBJvNJoQUFxfn5OQoFAqJRLJkyZK1a9cSQqRSaWho6OXLl7dv304I4XK58fHxTH11/VRXV8fGxvL5fKlU6uXlpRqqVCq1sbGZNWtWfn5+jzNV109/xQkAurVgwQLmY8aDhK+v761btwZgIG9v7/Hjx2tZOSoqas+ePU80HhjqkCcAgFoJCQleXl4zZswghDQ2NoaHhzPlK1eu1NfXFwqFaWlpjo6OyvoikSgxMZHD4RBCSkpK0tPTt23bRghxcnJycnJi6gQHBzPn3xwOJykpKSgo6NE7f9T1Ex0dnZyczHz9OiwsjKL+tyLKZrMdHBxsbGy0mZe6fvorTgB4QnJzc2fPnj116lRdBzJIubu7a18Zy6TQI+QJACMdc71cJpOVlpYWFhaOHTtWIBAEBwcTQhoaGpgkgRBiYmKSnp6u2lAoFKomCeXl5devX2caMng8HrNRVVWVkpJC0zRFUVevXtUcj7p+bt++7ejoyJzcE0ICAwNFIpGyDkVReXl52sxXQz/9EicAPDnaL3sSQi5evCgWiwkhkyZNCgkJYQq7XTZsbm5ev369vb19U1MTh8MxMzMTCoVM/aqqqri4OH19/cbGRgsLi9LS0n379llYWPRhOTEvL+/SpUssFkuhUMTExBgbG9M0vXTp0ilTpqSnp/P5/BMnTiQmJmZkZCxYsID0fpk0OTlZLBbHxcU5ODgoD1e389KwTAqgCnkCwEjHXC8nhGRlZTk5Oc2cOVNdTRaLpfqTy+Wq/tTT05s7d25sbGyXVjRNR0ZGpqamGhsbE0KU/1qro66fLgF0CaZXuu2nH+MEgAGjbtmTENLS0sJcBTh06FBFRQWzCtHtsqGRkZGPj09dXR2TY6Slpd28edPOzo4QEhsbm5qayufzJRKJi4tLcnKyhYUF6f1yYn19fW1tbWpqKiGkuro6MjIyJSWFoqj33nvv/PnzfD6fEOLu7v7rr78ySQLp5TKpubn5wYMHT506pVqobl4alkkBVCFPAAC1DAwMbt26NW3aNEKIVCpNSUkJCgpSV1kgENy5c0f5j7FcLi8oKHB3d+/o6BAIBMzJd1NTU3FxsWoriUSiUCiYk/X6+npTU1N1/VhaWu7bt2/Dhg0GBgaEkKSkJD09PWU/NE17eXnZ2tomJCRonpS6fvorTu0PLwxF5eXl165dG8jP6167do3NZtfX1w/YiIPKgwcPSF+XPb29vZkNS0vL2tpa5n9VDcuGy5YtYzasrKzq6urs7OzKysrmzZvHnMTzeDzlf/c+LCdyudzNmzcz2+bm5np6enK5nM1mW1lZVVZWMvEcPXr0jTfeUDbRfplUs0fn9fh9wgiBPAEA/sDlcplrY0rh4eFRUVFtbW0sFksqlW7ZsoUpj42N/f777wkhFy5cMDQ0jImJYcrT09OFQiFzPi2RSPz8/Agh+vr6pqamAQEBFEXJZDIjI6Ndu3bFx8czTwWsW7fO399fT09PKpXa29v7+/ur64cQEhERERwczOPxWltb3dzcDh486Ozs7OHhQQiRy+U3btygaVqbmarrp7/ihGGspqbm999/H8j748ViMZvNHrF35DM3w/R52bOL3i4bdulNoVAwG31YTmSxWKq9URSl/Llq1ar8/PyVK1fW1NRMmjRJ+z4BnjTkCQDwh0dfD8Ln8/ft2/doTdWVfVXGxsaHDh16tPydd95RN+iiRYsWLVqkZT8TJ05UfSZBebGQEMLhcCorK9WNomU//RUnDG+jR4/WsLDW7+7fv8/lcgdyxEHlyJEjmiv0atlT87Lho6ytrffv379x40YejyeRSLKzs5nLIn1YTmxtbc3IyAgICCCE1NTUSKVS5RsU3Nzctm3bplAoVq1apdpE+2XSvnl0mfRJjAJDGvIEAAAAGBq0XPYUi8WnT5++du1aWlra/fv3MzMzeTze9OnTx4wZ0+2yYWVl5fHjxwsKCkQiEYfDyczM5HK5Li4uFEWFhoZu3brVwMCgs7PT09NTOW6vlhOPHTtWW1vLYrE2b97M5/MpioqOjlat4ODgcPLkyTNnzqgW9mqZNCMjQywWl5WVmZiYmJqaLl68eM2aNRUVFermRdQskwKoQp4AAAAAQ4OWy562trYFBQXMtrm5+dmzZ5W7ul02nDp16qeffqr8qXq+bmlp+f777zPbeXl5ykWAXi0nbty4cePGjRoqzJ49+9F8oFfLpN0+M6NhXkTNMimAKnyPGQAAAKBnRUVF1tbWT6LnM2fO+Pj4PImeAR4H1hMAAAAA1GJu6Wlvb3d1de3fm/gVCsWuXbs6OzuvXLlibW2t+rIjgMEAeQIAAACAWtq/BjcsLKytra1Loa2trboeWCyW8qtwAIMQ8gQAAACAfhAXF6frEAD6E/IEAAAAGKQ6Ozs///zze/fu6ToQgGGlvLzcysqqx2rIEwBg6JFIJDt27Bg9erTyE2+PysrKOnbsWGFh4ZMOxtfXNygoSMOHnwCgz7hc7t/+9jcul6vrQACGlcbGxvb29h6rIU8AAF2Kioras2dPb1vxeLykpCQNSQIhxNfX99atW48Rmra8vb3Hjx+vZeW+zRdgJDt79uycOXN0HQXAsBIcHGxgYNBjNbwXFQD+kJubW1FRMcCDPnz4cIBH7Hfu7u5jx47VsvIwmC8AAIwQWE8AgD80Nzd3WYWUyWRxcXENDQ00TbPZbA6Hw7ya49y5c9nZ2X5+fteuXauvr6dpOj09nc1m37t3LzExkaZpmUxmZmYWERHBZrMJIcXFxTk5OQqFQiKRLFmyZO3atYQQqVQaGhp6+fLl7du3E0K4XG58fDxTX10/1dXVsbGxfD5fKpV6eXlpM6m8vLxLly6xWCyFQhETE2NsbEzT9NKlS6dMmZKens7n80+cOJGYmJiRkbFgwQImKhsbm1mzZuXn5/fYeXV1dXJyslgsjouLc3BwUB7G9evX29vbNzU1cTgcMzMzoVCoeb4AAACDEPIEAFArISHBy8trxowZhJDGxsbw8HCmfOXKlfr6+kKhMC0tzdHRUVlfJBIlJiZyOBxCSElJSXp6+rZt2wghTk5OTk5OTJ3g4GAmT+BwOElJSUFBQUlJSV3GVddPdHR0cnKyoaEhISQsLEz5YVR16uvra2trU1NTCSHV1dWRkZEpKSkURb333nvnz5/n8/mEEHd3919//ZVJEgghbDbbwcHBxsZGm+Njbm5+8ODBU6dOqRYaGRn5+PjU1dUxOVVaWtrNmzft7Ow0zBcANJg/fz6LxdJ1FADDCk3TkZGRPVZDngAwuPz0008uLi4DMJBEIvH09CT/vc4tk8lKS0sLCwvHjh0rEAiCg4MJIQ0NDUySQAgxMTFJT09X7UEoFKomCeXl5devX2caMng8HrNRVVWVkpJC0zRFUVevXtUcmLp+bt++7ejoyCQJhJDAwECRSKS5Ky6Xu3nzZmbb3NxcT09PLpez2WwrK6vKykomnqNHj6p+24iiqLy8PM3damPZsmXMhpWVVV1dnZ2d3eP3CTACXb9+XS6X6zoKgGGIuVimGfIEgMFFLpePHTv2iy++eNIDHTlypLKykvz3uj4hJCsry8nJScN7e7pc0uvyBhI9Pb25c+fGxsZ2acVctEhNTTU2NiaEhISEaA5MXT9dAtDm+iKLxVKtRlGU8ueqVavy8/NXrlxZU1MzadKkHrsCAJ1QXhoAgIGHPAFg0Bk1apRAIHjSoxgbG/d4qm1gYHDr1q1p06YRQqRSaUpKSlBQkLrKAoHgzp07FRUVU6dOJYTI5fKCggJ3d/eOjg6BQMAkCU1NTcXFxaqtJBKJQqFgIqmvrzc1NVXXj6Wl5b59+zZs2MC8oiEpKUlPT09z/K2trRkZGQEBAYSQmpoaqVSqvFXJzc1t27ZtCoVi1apVqk1omvby8rK1tU1ISNDced88Ot8nMQoAAMDjQ54AAH/gcrnMIwFK4eHhUVFRbW1tLBZLKpVu2bKFKY+Njf3+++8JIRcuXDA0NFS+nzQ9PV0oFDLnwRKJxM/PjxCir69vamoaEBBAUZRMJjMyMtq1a1d8fDxzyr5u3Tp/f389PT2pVGpvb+/v76+uH0JIREREcHAwj8drbW11c3M7ePCgs7Ozh4dHt9M5duxYbW0ti8XavHkzn8+nKCo6Olq1goODw8mTJ8+cOaNaKJfLb9y4QdO0NkcsIyNDLBaXlZWZmJiYmpouXrx4zZo1FRUVx48fLygoEIlEHA4nMzOTy+W6uLhomC8AAMAgxFIoFLqOAWAIoyiqubm5H1fGf/jhB29vb7FY3F8dqnPo0KEff/zx8OHDT3qgQeu777774YcflEkIDHI5OTk5OTnnzp3TbRje3t7FxcXl5eUDNmJISAiXy927d++AjQgAI1x9ff3kyZPb2trw/QQAGKHOnDnj4+Oj6ygAAAAGKdx3BAAji0Kh2LVrV2dn55UrV6ytrVVfdgQAAABKyBMAYGgLCwtra2vrUmhra/vWW291W5/FYjFfNgAAAAANkCcAwNAWFxen6xAAAACGITyfAAAAAAAAXSFPAAAAAACArpAnAAAAAABAV8gTAKB3rl696urqOpDvj3+URCIJDAyMiIgYJP0AAAAMP8gTAKB3FixYsGHDBt3GwOPxkpKSBrKfqKioxx8OAABgCEGeAAB/yM3Nraio0HUUg9TDhw91HQIAAMCAwntRAeAPzc3N7e3tqiUymSwuLq6hoYGmaTabzeFwlF8euHjxolgsJoRMmjQpJCSEKSwuLs7JyVEoFBKJZMmSJWvXrmW6Xb9+vb29fVNTE4fDMTMzEwqFTP2qqqq4uDh9ff3GxkYLC4vS0tJ9+/ZZWFjcu3cvMTGRpmmZTGZmZhYREcFmswkh1dXVsbGxfD5fKpV6eXmphiqVSm1sbGbNmpWfn9/jTNX10238Uqk0NDT08uXL27dvJ4Rwudz4+HgmHnVxAgAADAPIEwBArYSEBC8vrxkzZhBCGhsbw8PDlbtaWlpEIhEh5NChQxUVFVOnTiWEODk5OTk5MRWCg4OZ82wjIyMfH5+6ujomx0hLS7t586adnR0hJDY2NjU1lc/nSyQSFxeX5ORkCwsLQohIJEpMTORwOISQkpKS9PT0bdu2EUKio6OTk5MNDQ0JIWFhYRT1vxVRNpvt4OBgY2OjzbzU9dNt/BwOJykpKSgo6NE7lNTFCQAAMAwgTwAY6Zjr5TKZrLS0tLCwcOzYsQKBIDg4mBDS0NDAJAmEEBMTk/T0dGUrb29vZsPS0rK2tpbJE6qqqlJSUmiapijq6tWrqqMsW7aM2bCysqqrq7OzsysrK5s3bx6fzyeE8Hg85eeTy8vLr1+/zgTA4PF4hJDbt287OjoyJ/eEkMDAQCZRYVAUlZeXp818NfSjIf5HqYsTAABgeECeADDSMdfLCSFZWVlOTk4zZ85UV5PFYmnoh6bpyMjI1NRUY2NjQojyZiQte1MoFMyGnp7e3LlzY2NjNTfRHIz2Qyu3exu/hjgBAACGATzHDABqGRgY3Lp1i9mWSqWaXw3U0dEhEAiYk+ympqbi4mLNnVtbWxcVFUkkEkKIRCLJzs5mygUCwZ07d5RPVMvl8k8//ZQQYmlpWVxcrHyeuEswNE2vWbOmx5N7Df1ojl8ikSgzmfr6eg1xAgAADA9YTwCAP3C5XOZWe6Xw8PCoqKi2tjYWiyWVSrds2UIIEYvFp0+fvnbtWlpa2v379zMzM3k83vTp08eMGWNqahoQEEBRlEwmMzIy2rVrV3x8fGVl5fHjxwsKCkQiEYfDyczM5HK5Li4uFEWFhoZu3brVwMCgs7PT09NTOW56erpQKFQoFCwWSyKR+Pn5MeURERHBwcE8Hq+1tdXNze3gwYPOzs4eHh6EELlcfuPGDZqmtZmpun66jZ95emHdunX+/v56enpSqdTe3t7f319DnAAAAMMAS3mFDAD6gKKo5uZm5c3uj++HH37w9vZmXiX0RB06dOjHH388fPjwkx5IS3l5eWZmZgsXLtR1IDBI5eTk5OTknDt3TrdheHt7FxcXD+R3BkNCQrhc7t69ewdsRAAY4err6ydPntzW1ob7jgBgUCgqKrK2ttZ1FAAAAPAH3HcEALqUkZEhFovb29tdXV1NTU11HQ4AAAD8AXkCAOiS8nWoAAAAMKjgviMAAAAAAOgKeQIAAAAAAHSFPAEAAAAAALpCngAAvXP16lVXV9eBfC/koyQSSWBgYEREhIY6WVlZbm5uAxCMr69vSUnJAAwEg4RMJtN1CAAAAwF5AgD0zoIFCzZs2KDbGHg8nuaPQxNCfH1958yZMwDBeHt7jx8/XsvKUVFRTzQYeNLYbHZtba2uowAAGAh43xEA/CE3N3f27NlTp07VdSBDjLu7u/aVHz58+OQigQHg7Ow8ahT+6QSAEQF/2QHAH5qbm9vb21VLZDJZXFxcQ0MDTdNsNpvD4ezfv5/ZdfHiReaj0ZMmTQoJCWEKi4uLc3JyFAqFRCJZsmTJ2rVrmW7Xr19vb2/f1NTE4XDMzMyEQiFTv6qqKi4uTl9fv7Gx0cLCorS0dN++fRYWFvfu3UtMTKRpWiaTmZmZRUREsNlsQkh1dXVsbCyfz5dKpV5eXtpMKi8v79KlSywWS6FQxMTEGBsb0zS9dOnSKVOmpKen8/n8EydOJCYmZmRkLFiwgBAilUptbGxmzZqVn5/fY+fV1dXJyclisTguLs7BwUF5GLudr1QqDQ0NvXz58vbt2wkhXC43Pj6emRcAAMAghDwBANRKSEjw8vKaMWMGIaSxsTE8PFy5q6WlRSQSEUIOHTpUUVHBrEI4OTk5OTkxFYKDg5k8wcjIyMfHp66ujskx0tLSbt68aWdnRwiJjY1NTU3l8/kSicTFxSU5OdnCwoIQIhKJEhMTORwOIaSkpCQ9PX3btm2EkOjo6OTkZENDQ0JIWFgYRfVw52R9fX1tbW1qaiohpLq6OjIyMiUlhaKo99577/z583w+nxDi7u7+66+/MkkCIYTNZjs4ONjY2GhzfMzNzQ8ePHjq1CnVQnXz5XA4SUlJQUFBPd4xBQAAMBggTwAYDnJzcysqKnrV5OuvvzY2Nib/vc4tk8lKS0sLCwvHjh0rEAiCg4MJIQ0NDUySQAgxMTFJT09XNvf29mY2LC0ta2trmTyhqqoqJSWFpmmKoq5evao63LJly5gNKyururo6Ozu7srKyefPmMSfrPB5P+cG18vLy69evMwEweDweIeT27duOjo5MkkAICQwMZBIVDbhc7ubNm5ltc3NzPT09uVzOZrOtrKwqKyuZOI8ePfrGG28om1AUlZeXp/1hVOfR+T5+nwAAAAMJeQLAcHD06FGJRGJtba19k99//93IyIgQwlznJoRkZWU5OTnNnDlTXRMWi6WhQ5qmIyMjU1NTmfRDeTOSlr0pFApmQ09Pb+7cubGxsZqbaA5GWUe1GkVRyp+rVq3Kz89fuXJlTU3NpEmTeuwKAABgpEGeADBMvPHGG8pr/No4dOjQjz/+qLmOgYHBrVu3pk2bRgiRSqUpKSlBQUHqKnd0dAgEAiZJaGpqKi4u1ty5tbX1/v37N27cyOPxJBJJdnZ2TEwMIUQgENy5c0d5L5NcLi8oKHB3d7e0tNy3b9+GDRsMDAwIIUlJSXp6epqHaG1tzcjICAgIIITU1NRIpVLlrUpubm7btm1TKBSrVq1SbULTtJeXl62tbUJCgubO+0YikSgUCiZdqa+vNzU1fRKjAAAAPD7kCQDwBy6XyzwSoBQeHh4VFdXW1sZisaRS6ZYtWwghYrH49OnT165dS0tLu3//fmZmJo/Hmz59+pgxY0xNTQMCAiiKkslkRkZGu3btio+Pr6ysPH78eEFBgUgk4nA4mZmZXC7XxcWFoqjQ0NCtW7caGBh0dnZ6enoqx01PTxcKhcz5tEQi8fPzY8ojIiKCg4N5PF5ra6ubm9vBgwednZ09PDy6nc6xY8dqa2tZLNbmzZv5fD5FUdHR0aoVHBwcTp48eebMGdVCuVx+48YNmqa1OWIZGRlisbisrMzExMTU1HTx4sVr1qypqKhQN19CyLp16/z9/fX09KRSqb29vb+/vzYDAQAADDyWcq0fAPqAoqjm5mblTfOP74cffvD29mZeJaS9FStW+Pj49GE94fDhw70M8EnJy8szMzNbuHDhgI343Xff/fDDD8okBAa5nJycnJycc+fO6TYMkUhUVFSUnZ09YCOGhIRwudy9e/cO2IgAMMLV19dPnjy5ra0N31kDgEGhqKioV89XPL4zZ874+PgM5IgAAABDCO47AgBdYm7daW9vd3V1HZib9RUKxa5duzo7O69cuWJtba36siMAAABQQp4AALqkfB1qn4WFhbW1tXUptLW1Vdczi8VSfi0OAAAA1EGeAABDW1xcnK5DAAAAGIaQJwCMUHK5vKOjo76+XteBAGilublZy/dQAQBAv0CeADBCff311x9//PHJkyd1HQiAtlasWKHrEGDghIWF9fgZFhghRCKRlZWVrqMYiZAnAIxQLi4uxsbGmZmZug4EQCs5OTmnTp3SdRQwcH744QcHB4cFCxboOhDQscDAwObmZl1HMUIhTwAY0ZgPAwMMfvizOgLNmzdvzZo1uo4CdCwkJETXIYxc+H4CAAAAAAB0hfUEgJHrzJkzX3zxha6jANBKS0vL3LlzdR0FAMAIgjwBYIT605/+5OLiousoAHrB2NhY1yEAAIwgyBMARihTU9OB+f4xAAAADEV4PgEAAAAAALpCngAAAAAAAF0hTwAAAAAAgK6QJwAAAAAAQFfIEwAAAGDEKSkpefnll42MjDgczrPPPnvx4kWm/JlnnomJiVFWO3PmDIvFevDgAfNz2rRpf/vb35KSkoyMjFgslrm5OU3Tysp+fn5jxoyRSCSEEIVCkZWVNXPmzFGjRpmZmb399tstLS2EEKFQaGho2NHRoWz16quv2tvb9xhwS0vLtm3bzM3NKYoyMTFZtWpVZWUls2vmzJmJiYmpqanm5uajRo2aPXv25cuXNU/z+eefd3Z2Zrbb2tq4XO6YMWOUc5k2bdqKFSs0zKLLocjKytL+yMMQgjwBAAAARpa2tjY3N7d79+5lZGTk5OSMHj3a09Ozurpam7Znzpz529/+9te//jUqKurevXvffvstU97Z2Zmbm7thwwYej0cISUtL+/Of/zxnzpyPPvpo+/bthw8fXrFiBU3Tnp6eDx8+LCwsZFq1tLRcvHjRx8enx3G3bNmSmZn59ttvnzt3Ljo6+ptvvvnzn/+s3Hv8+PGPPvrovffe++ijjzo6OtasWdPe3q5hmu7u7tevX29tbSWEFBUVSaXSxsbGkpISQkhtba1YLPbw8NAwiy6H4tlnn9X62MNQgveiAgAAwMhy8+bN//znP4cPH16+fDkhZM6cOdHR0ffv3zc3N++xbUlJyc2bN8ePH9/R0XHgwIHc3Nx58+YRQgoKChobG319fQkh7e3tERERr7/++tGjR5lW06ZN8/T0LCgoeOmll6ZMmXL27NlXXnmFEHL+/PmOjg5vb+8ex6VpOj4+/u2332Z+1tXVffDBB8q9tbW1X3/9taGhIfPT09Pzt99+a21tVTdNd3d3oVD41Vdfubu7f/nll3Pnzr1169aVK1dmzZp15coVQoiHh4eGWSxbtkz1UGh10GEIwnoCAAAAjCxTp041NjYODQ398MMPq6qqJk2alJmZ6eDgoE1bDw8P5syYz+evXr06NzdXoVAQQk6fPj1jxgxHR0dCyLffftvc3Kx6vX/lypX6+vrXrl1jsVienp7nz5+Xy+VMK2dn5ylTpvQ47okTJ95++22pVFpRUfHJJ5988sknqnuXLl2qTBKYb+MoFAoN03zuuedMTU0vXbpECPnyyy9feOGFRYsWMRnC559/Pm3aNAsLCw2z6HIoYLhCngAAAAAjy+jRo69everg4LBjxw4LC4vJkyfv2bNHKpU+WpPJAVSNGzdOub1+/fry8vKff/65o6MjPz/f19eXxWIRQn7//XdCyNKlS/n/ZWBg0NbW1tDQQAjx9PSsq6srKipqamr69NNPN2zYoE3MhYWFCxYs0NPTW7hwYUJCwqhR/98tIaNHj+7VNCmKWrZs2eXLl2Uy2dWrVxctWvTCCy988cUXCoXi888/Z2460jyLLocChiXcdwQAAAAjjp2d3bFjxxQKxc2bN8+ePRsZGUlRlFAo7FKtsbGxSwmTCTCWLl1qYmKSm5vr4ODw8OFD5WMGY8aMIYScPXvW0tJStS1zNj9//nwzM7P8/Pzy8nK5XL527doeo62pqXnllVdeffXVjz/+eMKECYSQ6Ojo9PT0bqPScpoeHh4nT568fPlyW1ubs7PzM888ExQUdPnyZbFYnJqa2uMsNAwKwwbWEwAAAGBkycnJeeaZZyorK1ks1vTp08PCwmxtbZmneFkslvJ6OSHk3LlzGvrhcrmenp65ubmnT592d3dX3oTj6OhoYGDwyy+/TPsvuVzu6+t7+/ZtQgibzV6zZs3Zs2dPnz790ksvMbcJafbTTz9JJJIdO3YwSQIhpKys7HGmSQhZunSpQqGIiYmxt7cfPXq0g4ODsbHxnj179PX1XVxcepwFjARYTwAAAICRZeHChQ0NDevWrQsICHjqqaf++c9/lpZjnFT1AAAgAElEQVSWhoSEEEJmzpyZmZk5c+ZMCwuLnJycW7duae7K29v78OHDYrH4xIkTykJDQ8Pw8PDQ0NCamhoXF5eampqEhAQTExMnJyemgqen57vvvvvrr79++OGH2gQ8Y8aMUaNGxcTE7Ny5UyKRHD58+OzZs3K5vKioiHmKurfTJISYmprOmTPniy++CAgIIISw2WwXF5fz58+vWLGCeWVTj7OAYQ/rCQAAADCyTJ48+cKFCxRF+fv7/+lPfyoqKjp8+PBrr71GCHn//ffnzZv31ltvrVq1SiaTKV/1o86SJUvGjRtnYGDAfHBAKSQkJDU19ZNPPlm3bt3u3buXLl362WefcblcZavRo0fz+fxVq1ZpE/DEiRNPnz79yy+/LFy4cMOGDVZWVp9//rmBgcHq1av7Nk2Gu7s7IWTRokXMzxdeeIEQwjycoM0sYNhjPfqADgBoj6Ko5uZm5VsmHt8PP/zg7e0tFot71WrFihU+Pj7avFkPAB6HSCQqKirKzs4esBFDQkK4XO7evXsHbMRBwsPDw8/Pz8vLS9eBPCkODg7Tpk07deqUrgMZ7GxtbXNycp577jldBzKC1NfXT548ua2tDesJAAAAAANKLBb/+OOPWr7pCEBX8HwCAAAAwABpbW09efLkyZMnzczMmK+VEULOnj0bERGhrsnSpUsPHjw4UAEC/A/yBAAAAIAB0tHRsX379nHjxp08eZJ5XJgQsnr1as1PGgDoBPIEAAAAgAHy9NNPt7W16ToKAK0gTwAAAIBBZ+nSpRcvXrx48aKuAwEdc3Z2rq2t1XUUIxTyBAAAABh0CgoKJkyY4ODgoOtAQMdiYmKUH7qGAYY8AQAAAAajl19+eRi/FxW0lJaWZmJiousoRii8FxUAAAAAALpCngAAAABDla+vb0lJSbe7JBJJYGCghveNapCVleXm5ta3cfulPsBggDwBAAAAhipvb+/x48d3u4vH4yUlJfWtW19f3zlz5vRt3MevHxUVpX3PAE8Onk8AAACAwS43N3f27NlTp07tUu7u7q6TeHo7bq/qP3z4sJfhADwRyBMAAABgsGtubm5vb1ctqa6uTk5OFovFcXFxqq9Fqq6ujo2N5fP5Uqm0y2PQUqnUxsZm1qxZ+fn52gyal5d36dIlFoulUChiYmKMjY01jFtVVRUXF6evr9/Y2GhhYVFaWrpv3z4LC4tu6zc3N69fv97e3r6pqYnD4ZiZmQmFQibC0NDQy5cvb9++nRDC5XLj4+PZbHYfjxrA40GeAAAAAEOPubn5wYMHT5061aU8Ojo6OTnZ0NCQEBIWFkZR/7vFms1mOzg42NjYaNN/fX19bW1tamoqIaS6ujoyMjIlJUXDuLGxsampqXw+XyKRuLi4JCcnW1hYqKtvZGTk4+NTV1e3f/9+QkhaWtrNmzft7Ow4HE5SUlJQUFCf75gC6EfIEwAAAGCQYq6vy2Sy0tLSwsLCsWPHCgSC4OBgdfVv377t6OjIJAmEkMDAQJFIpNxLUVReXp6WQ3O53M2bNzPb5ubmenp6crlc3aX9srKyefPm8fl8QgiPx3vrrbe0GWLZsmXMhpWVVV1dnZ2dnZaxAQwM5AkAAAAwSDHX1wkhWVlZTk5OM2fO7LEJi8Xqdru3WCyWanOKojT01mWXQqHo87gAgwfedwQAAADDhKWlZXFxsfI54C5379A0vWbNmpCQEG26am1tzcjIYLZramqkUqnqLUxdWFtbFxUVSSQSQohEIsnOzu7jBAhhelBmGvX19Y/TFcDjwHoCAAAADHZcLpfD4aiWZGRkiMXisrIyExMTU1PTxYsXr1mzhhASERERHBzM4/FaW1vd3NwOHjzo7Ozs4eFBCJHL5Tdu3KBpusfhjh07Vltby2KxNm/ezOfzKYqKjo7WPG5oaOjWrVsNDAw6Ozs9PT01x1lRUXH8+PGCggKRSMThcDIzM7lcrouLC5OKrFu3zt/fX09PTyqV2tvb+/v799+BBOgF5AkAAAAw2G3YsKFLibpnACZOnKj6TIK3t7dym8PhVFZWajPcxo0bN27c2O0udeNaWlq+//77zHZeXp5y8aHb+lOnTv3000+VP8+cOaO6d9GiRYsWLdImToAnCvcdAQAAAPSnoqIia2trXUcB8LiwngAAAADQD5hbjNrb211dXU1NTXUdDsDjQp4AAAAA0A+0fB0qwFCB+44AAAAAAKAr5AkAAAAAANAV8oS++PnnnydPntzZ2cn8fPHFFxMSEh6t9vTTTyvfZrB69eojR44MXIgAAAAAAI8BeUJf7N69++233+ZyuczPZcuW2dvba24SHBy8d+9emUz25KMDAIAn5dq1a3fu3NF1FAAAAwF5wv+H+ZKiZtXV1RcuXPDx8VGWBAcHv/LKK5pbOTs7s1gs1ZclPzk//fRTcHCwXC4fgLEAAEaUzs7O6upqXUcBuufr61tSUqKT/iUSSWBgYERERB+6zcrKcnNz69u4/dgEhoohnCdYWVmdOnVK+XP06NGfffYZs33y5EkbG5tRo0aNGTOG+UqiTCaLiIgQCAQ8Hs/JyenLL79UNpw/f35ERMTy5ctHjx4dHx//aNsu8vPzn332WTMzM2WJ8r6jpqamtWvX6uvrW1hY/P3vf+/S8JVXXsnJyem/A9CNH3/88ZVXXnFwcLCzs2Oz2U90LAAAgOEtKipK3S5vb+/x48c/uaE19M/j8ZKSkvrWra+v75w5c/o2br800XBIYRAahu9F/fe///36669nZmYuXbq0paXlq6++IoS88847169fP3PmjEAg+Oijj1555ZVbt25NmDCBaZKWlpabm3vhwoWKiopp06Z1advF119/7ejo2O3Qf/3rX8Vi8TfffMPhcN56662WlhbVvXPmzAkPD+/v6f7hxx9/DAkJKSwslMvlZmZm6r4iCQAAMBTl5ubOnj176tSpAznow4cP1e1yd3d/okM/6f77cdxeNdFwSGEQGoZ5wu+//04IWb58+dixYwkhtra2TU1N77777k8//TRt2jRCyI4dO/Lz83NzcwMDA5km69evd3V1JYR0dHR0afto/5WVlTNnzny0/P79+x9//PGlS5ccHBwIIampqcyGkrm5+b179zo6Ovh8fj/O9z//+c/mzZvz8/MpipLL5Tweb/To0S+//HI/DgEaKBSKlStX9tfqTVVVVX19fUdHB/MnUHstLS1VVVWHDx/ulzAAQJ2ff/7Z0NBQ11GMRM3Nze3t7aold+/ejYmJ4fP5zc3Nzs7OmZmZUVFR48aNEwqFcXFxDg4O586dO3r0aEBAwIsvvkgIuXfvXmJiIk3TMpnMzMwsIiKC+av7wYMHYWFhHA6HEFJdXR0VFTVr1iypVBoaGnr58uXt27cTQrhcbnx8PFO/uro6OTlZLBYzoyjjaW1t3b17t1QqpWna3Nx8586dLBarubl5/fr19vb2TU1NHA7HzMxMKBRqnqm6/qurq2NjY/l8vlQq9fLyUm0ilUptbGxmzZqVn5+vzcHMy8u7dOkSi8VSKBQxMTHGxsYaxq2qqoqLi9PX129sbLSwsCgtLd23b5+FhYW6JuqmrOGQwqA1DPMEOzu7559/3tra+uWXX3Zzc1u7dm1paalUKrWzs1Ot9vzzz6s2Udf20X8PHj58qK+v/+i4t27doml6wYIFzM/Zs2fr6empVmBatbe392+eMG7cuK1bt/7222+3bt1qb2+naXrChAkBAQH9OARoUFhY+Oabb/bXf9Py8vLff/+9vb29yx8ebVhZWfU2uwCA3vr000/xfMIgERUVdejQIeaf6f/7v/9zd3f38PAghGzatImpsHLlSuUbRwghIpEoMTGRyQdKSkrS09O3bdtGCDl//vymTZvmz59PCCkoKDAy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H/T09CZPnrx582Ytz1nC9QQAAAAAgD4llUpFIlFzc/Pt27ctLCx0nU7bsD4BAAAAAKBPxcfHNzQ0eHt799sigeB6AgAAAABA3/j999/3799fU1Pz7bffCoXCwsLCMWPG6DqpdmF9AgAAAABAX6iurj58+LC+vr6Dg8PevXv7c5FAcD0BAAAAAABaw/oEAAAAAADQhDoBAAAAAAA0oU4AAAAAAABNqBMAAAAAAEAT6gQAAAAAANCEOgEAAAAAADShTgAAAAAAAE2oEwAAAAAAQBPqBAAAAAAA0IQ6AQAAAAAANKFOAAAAAAAATagTAAAAAAB06dy5cyNGjDAxMZkyZUpVVdWDBw/c3NwGDRrk7OxcUVFRXl4+duxYPT29Tz75hBCisVU9jsZIjbDssF9++UUkEhkbeXqF8AAAAYZJREFUGzs4OJSWlmrsxUKdAAAAAACgS3Z2dsXFxbdv37558+ZXX32VlJRUWVn54MEDIyOjnTt3WlpalpSUmJub08EaW9XjaIzUCMsOe/HFF2/fvi2RSP7973//9ttvGnuxUCcAAAAAAOiSlZXVoEGDPvroI2tr66VLl5aXl1tZWfF4PGtr67KyMn19fX19fXawxlZCyNatW4cOHbp+/XqNkRph2WFCoTAqKsrGxsbS0nLmzJkae7FQJwAAAAAA6NLDhw8XLVp07dq1K1euDB06dPTo0VVVVQqFory8fMyYMRqDW2+NiIgoKiras2eP9rDssIcPH+7YsePevXsNDQ0a9xqp46hUqh4/VAAAAAAA6KTk5OSAgAA9PT1CSFRU1IYNG7y8vG7cuGFtbZ2ZmcnhcCZNmvTgwQNDQ8O33357x44d6lvVC4mKigr1kc8//7x62NDQUDrsk08+2blzZ3Nz85gxYz777DNDQ0P1vRITE+kw1AkAAAAAAKAJ9x0BAAAAAICm/wtvLFccLGpL7QAAAABJRU5ErkJggg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9jc19TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBjc19TdXJ2ZXkucG0sdiAxLjggMjAxMi8xMS8yMCAxOToxMTozNyBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpjc19TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIE5vIHF1ZXN0aW9ucyBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFN1YmplY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEJvZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBCeSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWNlaXZlZCBzdXJ2ZXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFJlc3VsdHMgR3JhcGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3RhdCByZXN1bHRzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXNlIGFyZSB5b3VyIGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Ftb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGJvZHkgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHN1cnZleSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyB0aGF0IGdldCBzZW50IHRvIGEgY3VzdG9tZXIgcGVyIDMwIGRheXMuICggMCBtZWFucyBubyBtYXhpbXVtLCBhbGwgc3VydmV5IHJlcXVlc3RzIHdpbGwgYmUgc2VudCkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgYW1vdW50IGluIGhvdXJzIGEgdGlja2V0IGhhcyB0byBiZSBjbG9zZWQgdG8gdHJpZ2dlciB0aGUgc2VuZGluZyBvZiBhIHN1cnZleSwgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBpbiB0aGUgcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYSBzcGVjaWZpYyBzdXJ2ZXkgcmVzdWx0IHdoZW4gdGhlIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSB0aGUgc2Vjb25kIHRpbWUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3Igc3VydmV5IHpvb20gaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgUHVibGljU3VydmV5IG9iamVjdCBpbiB0aGUgcHVibGljIFN1cnZleSBhcmVhLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICcnOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwoKfQoKMTsK
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9ydV9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBydV9TdXJ2ZXkucG0sdiAxLjggMjAxMi8xMS8yMCAxOToxMTo0OCBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpydV9TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIE5vIHF1ZXN0aW9ucyBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKCn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9ubF9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBubF9TdXJ2ZXkucG0sdiAxLjEzIDIwMTIvMTEvMjAgMTk6MTE6NDQgbWggRXhwICQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bmxfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICctIFN0YXR1cyB3aWp6aWdlbiAtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOZXcgU3VydmV5J30gPSAnTmlldXdlIGVucXXDqnRlIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJ0Jld2VyayBlbnF1w6p0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICdCZXdlcmsgdnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICdCZXdlcmsgdnJhYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICdCZXdlcmsgYW50d29vcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdLYW4gc3RhdHVzIG5pZXQgd2lqemlnZW4sIHZvZWcgZWVyc3QgdnJhZ2VuIHRvZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnU3RhdHVzIGJpamdld2Vya3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICdCZWRhbmt0IHZvb3IgdXcgZmVlZGJhY2suJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBzdXJ2ZXkgaXMgZmluaXNoZWQuJ30gPSAnRGUgZW5xdcOqdGUgaXMgaW5nZXN0dXVyZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICdWb2xsZWRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnT252b2xsZWRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICdTZWxlY3RpZXZhayAobGlqc3QpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvJ30gPSAnS2V1emVyb25kamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnS2V1emVyb25kamUgKGxpanN0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyd9ID0gJ1N0YXRpc3RpZWtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGVzY3JpcHRpb24nfSA9ICdPbXNjaHJpanZpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEludHJvZHVjdGlvbid9ID0gJ0ludHJvZHVjdGllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJ0phL05lZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJ0phTmVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnYmVhbnR3b29yZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICduaWV0IGJlYW50d29vcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnRGV0YWlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICdVIGhlZWZ0IGRlemUgZW5xdcOqdGUgYWwgYmVhbnR3b29yZC4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ05pZXV3ZSBlbnF1w6p0ZSBhYW5tYWtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1Y3RpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJ0ludGVybmUgb21zY2hyaWp2aW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgR2VuZXJhbCBJbmZvJ30gPSAnQmV3ZXJrIGFsZ2VtZW5lIGluZm9ybWF0aWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnQWxnZW1lbmUgaW5mb3JtYXRpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyBvZid9ID0gJ0RldGFpbG92ZXJ6aWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ1ZlcnpvZWtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW5kIFRpbWUnfSA9ICdWZXJzdHV1cmQgb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSBUaW1lJ30gPSAnSW5nZXZ1bGQgb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ0RldGFpbG92ZXJ6aWNodCBzdGF0aXN0aWVrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBzdGF0cyBvdmVydmlldyd9ID0gJ2dhIHRlcnVnIG5hYXIgaGV0IG92ZXJ6aWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyBCYWNrJ30gPSAnR2EgdGVydWcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICdCZXdlcmsgdnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBRdWVzdGlvbid9ID0gJ1ZyYWFnIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIHRoZSBxdWVzdGlvbid9ID0gJ1ZyYWFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICdWcmFnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICdWcmFhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJ0VyIHppam4gZ2VlbiB2cmFnZW4gb3BnZXNsYWdlbiB2b29yIGRlemUgZW5xdcOqdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0Jld2VyayB2cmFhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJ2dhIHRlcnVnIG5hYXIgZGUgdnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnTW9nZWxpamtlIGFudHdvb3JkZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0FudHdvb3JkIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGRvZXNuXCd0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnRGV6ZSBoZWVmdCBuaWV0IG1lZXJkZXJlIGFudHdvb3JkZW4uIEVyIHphbCBlZW4gdGVrc3R2YWsgZ2V0b29uZCB3b3JkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQW5zd2VyJ30gPSAnQW50d29vcmQgYmV3ZXJrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnZ2EgdGVydWcgbmFhciBkZSB2cmFhZyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnTWF4aW1hYWwgYWFudGFsIGVucXXDqnRlcyBwZXIgcGFnaW5hJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICdBZnplbmRlciBub3RpZmljYXRpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU3ViamVjdCd9ID0gJ09uZGVyd2VycCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ0JvZHkgdGV4dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnR2V3aWp6aWdkIGRvb3InOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnRGV0YWlscyBlbnF1w6p0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW50IHJlcXVlc3RzJ30gPSAnVmVyc3R1dXJkZSB2ZXJ6b2VrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJ09udHZhbmdlbiBlbnF1w6p0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlscyd9ID0gJ0RldGFpbHMgc3RhdGlzdGlla2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnRGV0YWlscyBlbnF1w6p0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJ1Jlc3VsdGF0ZW4gKGdyYWZpZWspJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICdHZWVuIHJlc3VsdGF0ZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJ0VucXXDqnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAnQmVhbnR3b29yZHQgdSBkZSB2b2xnZW5kZSB2cmFnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnVG9vbiBtaWpuIGFudHdvb3JkZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJ0RpdCB6aWpuIHV3IGFudHdvb3JkZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnRW5xdcOqdGV0aXRlbCc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICdFZW4gbW9kdWxlIG9tIGVucXXDqnRlcyB0ZSBvbmRlcmhvdWRlbiBlbiB0ZSB2ZXJzdHVyZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJ0VlbiBtb2R1bGUgb20gZW5xdcOqdGVzIHRlIG9uZGVyaG91ZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9kYV9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBkYV9TdXJ2ZXkucG0sdiAxLjEwIDIwMTIvMTEvMjAgMTk6MTE6MzggbWggRXhwICQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdLYW4gaWtrZSBzw6Z0dGUgbnkgc3RhdHVzISBEZXIgZXIgaWtrZSBkZWZpbmVyZXQgbm9nZW4gc3DDuHJnc23DpWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXR1cyBjaGFuZ2VkLid9ID0gJ1N0YXR1cyDDpm5kcmV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnVGFrIGZvciBkaW4gYmVzdmFyZWxzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJ0phTmVqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnYmVzdmFyZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAnaWtrZSBiZXN2YXJldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnVW5kZXJzw7hnZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnRXQgdW5kZXJzw7hnZWxzZXNtb2R1bC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdVbmRlcnPDuGdlbHNlIyc7Cgp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9mcl9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBmcl9TdXJ2ZXkucG0sdiAxLjggMjAxMi8xMS8yMCAxOToxMTo0MSBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpmcl9TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIE5vIHF1ZXN0aW9ucyBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFN1YmplY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEJvZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBCeSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWNlaXZlZCBzdXJ2ZXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFJlc3VsdHMgR3JhcGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3RhdCByZXN1bHRzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXNlIGFyZSB5b3VyIGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Ftb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGJvZHkgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHN1cnZleSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyB0aGF0IGdldCBzZW50IHRvIGEgY3VzdG9tZXIgcGVyIDMwIGRheXMuICggMCBtZWFucyBubyBtYXhpbXVtLCBhbGwgc3VydmV5IHJlcXVlc3RzIHdpbGwgYmUgc2VudCkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgYW1vdW50IGluIGhvdXJzIGEgdGlja2V0IGhhcyB0byBiZSBjbG9zZWQgdG8gdHJpZ2dlciB0aGUgc2VuZGluZyBvZiBhIHN1cnZleSwgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBpbiB0aGUgcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYSBzcGVjaWZpYyBzdXJ2ZXkgcmVzdWx0IHdoZW4gdGhlIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSB0aGUgc2Vjb25kIHRpbWUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3Igc3VydmV5IHpvb20gaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgUHVibGljU3VydmV5IG9iamVjdCBpbiB0aGUgcHVibGljIFN1cnZleSBhcmVhLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICcnOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwoKfQoKMTsK
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9kZV9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBkZV9TdXJ2ZXkucG0sdiAxLjE3IDIwMTIvMTEvMjEgMTA6NTk6NTMgamggRXhwICQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICctIFN0YXR1cyDDhG5kZXJuIC0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICdOZXVlIFVtZnJhZ2UgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdVbWZyYWdlIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnRnJhZ2VuIGRlciBVbWZyYWdlIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJ0ZyYWdlIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICdBbnR3b3J0IGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdTdGF0dXMga29ubnRlIG5pY2h0IGdlc2V0enQgd2VyZGVuISBLZWluZSBGcmFnZW4gZGVmaW5pZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICdTdGF0dXMgZ2XDpG5kZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnRGFua2UgZsO8ciBJaHIgRmVlZGJhY2suJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBzdXJ2ZXkgaXMgZmluaXNoZWQuJ30gPSAnRGllIFVtZnJhZ2UgaXN0IGJlZW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbXBsZXRlJ30gPSAnVm9sbHN0w6RuZGlnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUnfSA9ICdVbnZvbGxzdMOkbmRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICdLb250cm9sbGvDpHN0Y2hlbiAoTGlzdGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvJ30gPSAnT3B0aW9uc3NjaGFsdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvIChMaXN0KSd9ID0gJ09wdGlvbnNzY2hhbHRlciAoTGlzdGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnU3RhdGlzdGlrIMOcYmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnVW1mcmFnZSBCZXNjaHJlaWJ1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEludHJvZHVjdGlvbid9ID0gJ1VtZnJhZ2UgRWlubGVpdHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXMvTm8nfSA9ICdKYS9OZWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnSmFOZWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnYmVhbnR3b3J0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAnbmljaHQgYmVhbnR3b3J0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnU3RhdGlzdGlrIERldGFpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IGFuc3dlcmVkIHRoZSBzdXJ2ZXkuJ30gPSAnU2llIGhhYmVuIGRpZSBVbWZyYWdlIHNjaG9uIGJlYW50d29ydGV0Lic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnTmV1ZSBVbWZyYWdlIGVyc3RlbGxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICdFaW5sZWl0dW5nc3RleHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdJbnRlcm5lIEJlc2NocmVpYnVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJ0FsbGdlbWVpbmUgQW5nYWJlbiBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgSW5mbyd9ID0gJ0FsbGdlbWVpbmUgQW5nYWJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyBvZid9ID0gJ1N0YXRpc3RpayDDnGJlcnNpY2h0IHZvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ0FuZnJhZ2VuLVRhYmVsbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnU2VuZGV6ZWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJ0Fic3RpbW11bmdzemVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnRGV0YWlscyBVbWZyYWdlc3RhdGlzdGlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICdadXLDvGNrIHp1ciDDnGJlcnNpY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICdadXLDvGNrJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnRnJhZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnRnJhZ2UgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICdGcmFnZSBlaW5nZWJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUXVlc3Rpb25zJ30gPSAnVW1mcmFnZS1GcmFnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICdGcmFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJ0bDvHIgZGllc2UgVW1mcmFnZSBzaW5kIGtlaW5lIEZyYWdlbiBnZXNwZWljaGVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0ZyYWdlIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBxdWVzdGlvbnMnfSA9ICdadXLDvGNrIHp1IGRlbiBGcmFnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUG9zc2libGUgQW5zd2VycyBGb3InfSA9ICdNw7ZnbGljaGUgQW50d29ydGVuIGbDvHInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0FudHdvcnQgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ0RpZXNlIEZyYWdlIGhhdCBuaWNodCBtZWhyZXJlIEFudHdvcnRlbiwgZWluIFRleHRlaW5nYWJlZmVsZCB3aXJkIGhpbnp1Z2Vmw7xndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICdBbnR3b3J0IGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnWnVyw7xjayB6dW0gQmVhcmJlaXRlbiBkZXIgRnJhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIHJlcXVpcmVkJ30gPSAnQW50d29ydCBlcmZvcmRlcmxpY2gnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdLb250ZXh0LUVpbnN0ZWxsdW5nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnTWF4aW1hbGUgQW56YWhsIGFuZ2V6ZWlndGVyIFVtZnJhZ2VuIHBybyBTZWl0ZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnQmVuYWNocmljaHRpZ3VuZyBBYnNlbmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU3ViamVjdCd9ID0gJ0JlbmFjaHJpY2h0aWd1bmcgQmV0cmVmZic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ0JlbmFjaHJpY2h0aWd1bmcgVGV4dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnR2XDpG5kZXJ0IHZvbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICdVbWZyYWdlLUluZm9ybWF0aW9uZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJ0dlc2VuZGV0ZSBBbmZyYWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWNlaXZlZCBzdXJ2ZXlzJ30gPSAnRXJoYWx0ZW5lIFVtZnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICdTdGF0aXN0aWstRGV0YWlscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGV0YWlscyd9ID0gJ1VtZnJhZ2UtRGV0YWlscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJ0dyYWZpayBVbWZyYWdlZXJnZWJuaXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdGF0IHJlc3VsdHMuJ30gPSAnS2VpbmUgU3RhdGlzdGlrLUVyZ2Vibmlzc2UuJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJ1VtZnJhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICdCaXR0ZSBiZWFudHdvcnRlbiBTaWUgZGllc2UgRnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJ1plaWdlIG1laW5lIEFudHdvcnRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnRGllcyBzaW5kIElocmUgQW50d29ydGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJ1VtZnJhZ2UgVGl0ZWwnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnRWluIFVtZnJhZ2UtTW9kdWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJ0VpbiBNb2R1bCwgdW0gVW1mcmFnZW4genUgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0FsbGUgUGFyYW1ldGVyIGbDvHIgZGFzIFVtZnJhZ2UtTW9kdWwgaW0gQWdlbnRlbi1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Ftb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC4nfSA9CiAgICAgICAgJ0FuemFobCBhbiBUYWdlbiBuYWNoIGRlbSBWZXJzYW5kIGVpbmVzIFVtZnJhZ2UgTWFpbHMgaW4gZGVuZW4ga2VpbiBuZXVlcyBVbWZyYWdlIE1haWwgYW4gZGVuIGdsZWljaGVuIEt1bmRlbiB2ZXJzZW5kZXQgd2lyZC4gV8OkaGxlbiBzaWUgMCB1bSBpbW1lciBVbWZyYWdlIE1haWxzIHp1IHZlcnNlbmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnVm9yZWluZ2VzdGVsbHRlciBUZXh0IGbDvHIgQmVuYWNocmljaHRpZ3VuZ3MtTWFpbHMgYW4gZGVuIEt1bmRlbiDDvGJlciBuZXVlIFVtZnJhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ1ZvcmVpbmdlc3RlbGx0ZXIgQWJzZW5kZXIgZsO8ciBCZW5hY2hyaWNodGlndW5ncy1NYWlscyBhbiBkZW4gS3VuZGVuIMO8YmVyIG5ldWUgVW1mcmFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICdVbWZyYWdlbiB3ZXJkZW4gbmljaHQgYW4gZGllIGtvbmZpZ3VyaWVydGVuIEUtTWFpbC1BZHJlc3NlbiBnZXNlbmRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnVm9yZWluZ2VzdGVsbHRlciBCZXRyZWZmIGbDvHIgQmVuYWNocmljaHRpZ3VuZ3MtTWFpbHMgYW4gZGVuIEt1bmRlbiDDvGJlciBuZXVlIFVtZnJhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPQogICAgICAgICdEZWZpbmllcnQgZWluIMOcYmVyc2ljaHRzLU1vZHVsLCBkYXNzIGVpbmUgTGlzdGUgYWxsZXIgVW1mcmFnZW4gYW56ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgbWF4aW1hbGUgQW56YWhsIHZvbiBVbWZyYWdlbiBkaWUgZWluIEt1bmRlIGlubmVyaGFsYiB2b24gMzAgVGFnZW4genVnZXNhbmR0IGJla29tbXQuICggMCBzdGVodCBmw7xyIGtlaW4gTWF4aW11bSwgYWxsZSBVbWZyYWdlIE1haWxzIHdlcmRlbiB2ZXJzYW5kdC4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIEFuemFobCBhbiBTdHVuZGVuIGbDvHIgZGllIGVpbiBUaWNrZXQgZ2VzY2hsb3NzZW4gc2VpbiBtdXNzIHVtIGRlbiBWZXJzYW5kIGVpbmVyIFVtZnJhZ2UgYXVzenVsw7ZzZW4gKCAwIGJlZGV1dGV0LCBkYXNzIFVtZnJhZ2Ugc29mb3J0IG5hY2ggU2NobGllw59lbiBlaW5lcyBUaWNrZXRzIHZlcnNhbmR0IHdpcmQgKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSAgU3RhbmRhcmRow7ZoZSBlaW5lcyBXWVNJV1lHLUJlcmVpY2hzIGbDvHIgZGllIFVtZnJhZ2UtRGV0YWlsYW5zaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgYW5nZXplaWd0ZW4gU3BhbHRlbiBkZXIgVW1mcmFnZSDDnGJlcnNpY2h0LiBEaWVzZSBPcHRpb24gaGF0IGtlaW5lIEF1c3dpcmt1bmcgYXVmIGRpZSBQb3NpdGlvbiBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnQWt0aXZpZXJlbiBvZGVyIGRlYWt0aXZpZXJlbiBkaWUgU2hvd1ZvdGVEYXRhIHNjcmVlbnMgaW0gUHVibGljIEludGVyZmFjZSwgdW0gQWJzdGltbXVuZ3MtRGF0ZW4gYW56dXplaWdlbiwgd2VuIGVpbiBLdW5kZSB2ZXJzdWNodCwgZWluIHp3ZWl0ZXMgbWFsIGFienVzdGltbWVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRnJvbnRlbmQtTW9kdWwtUmVnaXN0cmllcnVuZyBmw7xyIGRpZSBVbWZyYWdlLURldGFpbGFuc2ljaHQgaW0gQWdlbnRlbi1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICdGcm9udGVuZC1Nb2R1bC1SZWdpc3RyaWVydW5nIGbDvHIgZGllIMO2ZmZlbnRsaWNoZSBVbWZyYWdlLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICdXZW5uIGRpZXNlciByZWd1bMOkcmUgQXVzZHJ1Y2sgenV0cmlmZnQsIHdpcmQga2VpbmUgVW1mcmFnZSBhbiBkZW4gS3VuZGVuIGdlc2VuZGV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBzdXJ2ZXlzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIHN1cnZleSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlciBmw7xyIGRpZSBTZWl0ZW4gZGVyIFVtZnJhZ2Utw5xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICfDlmZmZW50bGljaGUgVW1mcmFnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdVbWZyYWdlLcOcYmVyc2ljaHQgTGltaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJ01vZHVsIFVtZnJhZ2UtRGV0YWlsYW5zaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnVW1mcmFnZS1MaW1pdCBwcm8gU2VpdGUgaW4gZGVyIFVtZnJhZ2Utw5xiZXJzaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnRGllIGVpbmRldXRpZ2UgQmV6ZWljaG51bmcgZsO8ciBlaW5lIFVtZnJhZ2UsIHouIEIuIFN1cnZleSMgb2RlciBNeVN1cnZleSMuIFN0YW5kYXJkIGlzdCBTdXJ2ZXkjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgZXZlbnQgbW9kdWxlIHRvIHNlbmQgYXV0b21hdGljYWxseSBzdXJ2ZXkgZW1haWwgcmVxdWVzdHMgdG8gY3VzdG9tZXJzIGlmIGEgdGlja2V0IGlzIGNsb3NlZC4nfSA9CiAgICAgICAgJ1RpY2tldC1FdmVudC1Nb2R1bCwgdW0gYXV0b21hdGlzY2ggVW1mcmFnZS1FLU1haWxzIGFuIEt1bmRlbiB6dSBzZW5kZW4sIHdlbm4gZWluIFRpY2tldCBnZXNjaGxvc3NlbiB3aXJkLic7CgogICAgIwogICAgIyBPQlNPTEVURSBFTlRSSUVTIEZPUiBSRUZFUkVOQ0UsIERPIE5PVCBUUkFOU0xBVEUhCiAgICAjCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIFRpbWUnfSA9ICfDhG5kZXJ1bmdzLVplaXRwdW5rdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnRXJzdGVsbHQgdm9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgVGltZSd9ID0gJ0Vyc3RlbGwtWmVpdHB1bmt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgc3RhcnRpbmcgZnJvbSB0aGUgbGF0ZXN0IGN1c3RvbWVyIHN1cnZleSBlbWFpbCBiZXR3ZWVuIG5vIGN1c3RvbWVyIHN1cnZleSBlbWFpbCBpcyBzZW50LCAoIDAgbWVhbnMgQWx3YXlzIHNlbmQgaXQgKSAuJ30gPQogICAgICAgICdBbnphaGwgVGFnZSwgdm9uIGRlciBsZXR6dGVuIFVtZnJhZ2UtRS1NYWlsIGFuIGRlbiBLdW5kZW4sIGluIGRlciBrZWluZSB3ZWl0ZXJlIFVtZnJhZ2UtRW1haWwgYW4gZGVuIEt1bmRlbiB2ZXJzZW5kZXQgd2lyZCAoMCBiZWRldXRldCwgZGFzcyBkaWUgRS1NYWlsIGltbWVyIHZlcnNlbmRldCB3aXJkKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cywgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgbWF4aW1hbGUgQW56YWhsIGFuIFVtZnJhZ2VuIGRpZSBlaW4gS3VuZGUgcHJvIDMwIFRhZ2UgZXJow6RsdCAgKCAwIGJlZGV1dGV0IGtlaW4gTGltaXQsIGFsbGUgVW1mcmFnZWFuZnJhZ2VuIHdlcmRlbiBnZXNlbmRldCApLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFNwYWx0ZW4gaW4gZGVyIFVtZnJhZ2Utw5xiZXJzaWNodC4gRGllIEVpbnN0ZWxsdW5nIGhhdCBrZWluZW4gRWZmZWt0IGF1ZiBkaWUgYW5nZXplaWd0ZSBSZWloZW5mb2xnZSBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gb24gcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYW4gc3BlY2lmaWMgdm90YXRpb24gd2hlbiBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgYnkgc2Vjb25kIHRpbWUuJ30gPQogICAgICAgICdBa3RpdmllcmVuIG9kZXIgZGVha3RpdmllcmVuIGRlcyBTaG93Vm90ZURhdGEgc2NyZWVucyBpbSBQdWJsaWMgSW50ZXJmYWNlLCB1bSBBYnN0aW1tdW5ncy1EYXRlbiBhbnp1emVpZ2VuLCB3ZW5uIGVpbiBLdW5kZSB2ZXJzdWNodCBlaW4gendlaXRlcyBtYWwgYWJ6dXN0aW1tZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlIG5leHQgcXVlc3Rpb25zJ30gPSAnQml0dGUgYmVhbnR3b3J0ZW4gU2llIGRpZSBmb2xnZW5kZW4gRnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdVbWZyYWdlIyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ30gPSAnRGllc2VzIEZlbGQgd2lyZCBiZW7DtnRpZ3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBnZXRzIGNsb3NlZC4nfSA9CiAgICAgICAgJ1RpY2tldC1FdmVudC1Nb2R1bCwgdW0gYXV0b21hdGlzY2ggVW1mcmFnZS1FLU1haWxzIGFuIEt1bmRlbiB6dSBzZW5kZW4sIHdoZW4gZWluIFRpY2tldCBnZXNjaGxvc3NlbiB3aXJkLic7Cgp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9pdF9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBpdF9TdXJ2ZXkucG0sdiAxLjUgMjAxMi8xMS8yMCAxOToxMTo0MiBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjppdF9TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnQ3JlYXppb25lIG51b3ZvIHNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1emlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdEZXNjcml6aW9uZSBhZCB1c28gaW50ZXJubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJ01vZGlmaWNhIFNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICdJbmZvcm1hemlvbmkgR2VuZXJhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICdSaXN1bHRhdGkgc3RhdGlzdGljaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ1RhYmVsbGEgZGVsbGUgcmljaGllc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJ0RhdGEgZSBPcmEgZGkgaW52aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSBUaW1lJ30gPSAnRGF0YSBlIE9yYSBkaSBjb21waWxhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0YWlscyd9ID0gJ0RldHRhZ2xpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHF1ZXN0aW9ucyBzYXZlZCBmb3IgdGhpcyBzdXJ2ZXkuJ30gPSAnTm9uIGNpIHNvbm8gdm9jaSBwZXIgcXVlc3RvIHNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnRGV0dGFnbGkgc3RhdGlzdGljaSBzdWwgU29uZGFnZ2lvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICdSaXRvcm5hIGFsbGUgc3RhdGlzdGljaGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJ0luZGlldHJvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBFZGl0IFF1ZXN0aW9ucyd9ID0gJ01vZGlmaWNhIGxlIGRvbWFuZGUgZGVsIHNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICdBZ2dpdW5naSBkb21hbmRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnSW5zZXJpc2NpIGxhIGRvbWFuZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJ1ZvY2kgZGVsIFNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJ0RvbWFuZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ01vZGlmaWNhIGRvbWFuZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBxdWVzdGlvbnMnfSA9ICdSaXRvcm5hIGFsbGUgZG9tYW5kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJ1Bvc3NpYmlsaSByaXNwb3N0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQW5zd2VyJ30gPSAnQWdnaXVuZ2kgcmlzcG9zdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ05vbiBzb25vIHByZXZpc3RlIHJpc3Bvc3RlIG11bHRpcGxlLCBpbCBkZXN0aW5hdGFyaW8gaW5zZXJpc2NlIGRlbCB0ZXN0byBsaWJlcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICdNb2RpZmljYSByaXNwb3N0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICdSaXRvcm5hIGEgbW9kaWZpY2FyZSBsZSBkb21hbmRlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnSW1wb3N0YXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJ051bWVybyBtYXNzaW1vIGRpIHNvbmRhZ2dpIHBlciBwYWdpbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFNlbmRlcid9ID0gJ01pdHRlbnRlIGRlbCBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFN1YmplY3QnfSA9ICdPZ2dldHRvIGRlbCBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEJvZHknfSA9ICdDb3JwbyBkZWwgc29uZGFnZ2lvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgVGltZSd9ID0gJ0RhdGEgZSBPcmEgZGkgY3JlYXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICdDcmVhdG8gZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBUaW1lJ30gPSAnRGF0YSBlIE9yYSBkaSBtb2RpZmljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnTW9kaWZpY2F0byBkYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hemlvbmkgc3VsIHNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW50IHJlcXVlc3RzJ30gPSAnU29uZGFnZ2kgaW52aWF0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWNlaXZlZCBzdXJ2ZXlzJ30gPSAnU29uZGFnZ2kgcmljZXZ1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBHZW5lcmFsIEluZm8nfSA9ICdNb2RpZmljYSBsZSBpbmZvcm1hemlvbmkgZ2VuZXJhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICdNb2RpZmljYSBsZSBkb21hbmRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICdEZXR0YWdsaSBzdGF0aXN0aWNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnRGV0dGFnbGkgc3VsIHNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJ0dyYWZpY2kgc3VsIHNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdGF0IHJlc3VsdHMuJ30gPSAnTm9uIGNpIHNvbm8gcmlzdWx0YXRpIGRhIG1vc3RyYXJlJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJ1NvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZSBuZXh0IHF1ZXN0aW9ucyd9ID0gJ1BlciBjb3J0ZXNpYSwgcmlzcG9uZGV0ZSBhbGxlIHNlZ3VlbnRpIGRvbWFuZGUnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnVW4gbW9kdWxvIHBlciBpIHNvbmRhZ2dpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnVW4gbW9kdWxvIHBlciBtb2RpZmljYXJlIGxlIGRvbWFuZGUgZGVpIHNvbmRhZ2dpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHN0YXJ0aW5nIGZyb20gdGhlIGxhdGVzdCBjdXN0b21lciBzdXJ2ZXkgZW1haWwgYmV0d2VlbiBubyBjdXN0b21lciBzdXJ2ZXkgZW1haWwgaXMgc2VudCwgKCAwIG1lYW5zIEFsd2F5cyBzZW5kIGl0ICkgLid9ID0KICAgICAgICAnR2lvcm5pIGRhbGxcJ3VsdGltbyBzb25kYWdnaW8gcHJpbWEgY2hlIHZlbmdhIGludmlhdG8gdW4gbnVvdm8gc29uZGFnZ2lvICgwIGluZGljYSBkaSBtYW5kYXJsbyBzZW1wcmUpIC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnQ29ycG8gZGVsIHRlc3RvIGRpIGRlZmF1bHQgcGVyIGxhIG5vdGlmaWNhIHZpYSBlbWFpbCBhbCBjbGllbnRlIHJpZ3VhcmRvIHVuIG51b3ZvIHNvbmRhZ2dpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdNaXR0ZW50ZSBkaSBkZWZhdWx0IHBlciBsYSBub3RpZmljYSB2aWEgZW1haWwgYWwgY2xpZW50ZSByaWd1YXJkbyB1biBudW92byBzb25kYWdnaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnT2dnZXR0byBkaSBkZWZhdWx0IHBlciBsYSBub3RpZmljYSB2aWEgZW1haWwgYWwgY2xpZW50ZSByaWd1YXJkbyB1biBudW92byBzb25kYWdnaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBpbCBtb2R1bG8gcGVyIG1vc3RyYXJlIGxhIHZpc3VhbGl6emF6aW9uZSBjb21wYXR0YSBkaSB1bmEgbGlzdGEgZGkgc29uZGFnZ2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBsZSBjb2xvbm5lIHZpc2liaWxpIG5lbGxhIHZpc3VhbGl6emF6aW9uZSBTb25kYWdnaS4gTFwnb3B6aW9uZSBub24gaGEgZWZmZXR0byBzdWwgcG9zaXppb25hbWVudG8gZGVsbGUgY29sb25uZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnVHV0dGkgaSBwYXJhbWV0cmkgcGVyIGkgc29uZGFnZ2kgbmVsbFwnYXJlYSBBZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb2R1bG8gZGkgcmVnaXN0cmF6aW9uZSBwZXIgaWwgc29uZGFnZ2lvIG5lbGxcJ2FyZWEgQWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgUHVibGljU3VydmV5IG9iamVjdCBpbiB0aGUgcHVibGljIFN1cnZleSBhcmVhLid9ID0KICAgICAgICAnTW9kdWxvIGRpIHJlZ2lzdHJhemlvbmUgcGVyIGlsIHNvbmRhZ2dpbyBuZWxsXCdhcmVhIGRpIFNvbmRhZ2dpIFB1YmJsaWNpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPQogICAgICAgICdTZSBxdWVzdGEgc290dG9zdHJpbmdhIHZpZW5lIHJpY29ub3NjaXV0YSwgaWwgc29uZGFnZ2lvIG5vbiB2aWVuZSBpbnZpYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBzdXJ2ZXlzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIHN1cnZleSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRyaSBwZXIgbGEgdmlzdWFsaXp6YXppb25lICJjb21wYXR0YSIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPQogICAgICAgICdTb25kYWdnaW8gcHViYmxpY28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnTGltaXRlIHBlciB2aXN1YWxpenphemlvbmUgImNvbXBhdHRhIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJ01vZHVsbyBkaSB6b29tIHBlciBpIHNvbmRhZ2dpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiLid9ID0KICAgICAgICAnTnVtZXJvIGRpIHNvbmRhZ2dpIHBlciBwYWdpbmEgcGVyIHZpc3RhICJjb21wYXR0YSIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICdJZGVudGlmaWNhdGl2byBwZXIgaWwgc29uZGFnZ2lvLCBwZXIgZXNlbXBpbyBTb25kYWdnaW8jLCBJbmNoaWVzdGEjLiBJbCBkZWZhdWx0IFNvbmRhZ2dpbyMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgZ2V0cyBjbG9zZWQuJ30gPQogICAgICAgICdNb2R1bG8gcGVyIGdlc3RpcmUgbFwnaW52aW8gYXV0b21hdGljbyBkaSBlbWFpbCBhbCBjbGllbnRlIHF1YW5kbyB1biB0aWNrZXQgdmllbmUgY2hpdXNvLic7CgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCd9ID0gJ0NhbXBvIE9iYmxpZ2F0b3Jpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnSW50cm9kdXppb25lIGRlbCBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnRGVzY3JpemlvbmUgZGVsIHNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJ1NvbmRhZ2dpIGNvbXBsZXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUnfSA9ICdTb25kYWdnaSBpbmNvbXBsZXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdTb25kYWdnaW8jJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUnfSA9ICdWYWxvcmUgZGkgZGVmYXVsdCc7CgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gb24gcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYW4gc3BlY2lmaWMgdm90YXRpb24gd2hlbiBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgYnkgc2Vjb25kIHRpbWUuJ30gPQogICAgICAgICdBYmlsaXRhIG8gRGlzYWJpbGl0YSBsYSBzY2hlcm1hdGEgZGkgdm90YXppb25lIHN1bGxcJ2ludGVyZmFjY2lhIHB1YmJsaWNhIHBlciBtb3N0cmFyZSBpIGRhdGkgZGkgdW4gc29uZGFnZ2lvIHNwZWNpZmljbyBzZSBzaSB0ZW50YSBkaSBpbnNlcmlyZSBpIGRhdGkgcGVyIGR1ZSB2b2x0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUdXR0aSBpIHBhcmFtZXRyaSBkZWwgc29uZGFnZ2lvIG5lbGxcJ2ludGVyZmFjY2lhIEFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnRGVmaW5pc2NlIGxcJ2FsdGV6emEgZGkgZGVmYXVsdCBwZXIgbGEgdmlzdGEgY29tcGxldGEgcGVyIGdsaSBlbGVtZW50aSBTdXJ2ZXlab29tLic7Cgp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9qYV9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBqYV9TdXJ2ZXkucG0sdiAxLjEgMjAxMy8wNi8xMSAxMDo0MjozMiBqaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpqYV9TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJy0g44K544OG44O844K/44K55aSJ5pu0IC0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICfmlrDopo/oqr/mn7vjga7ov73liqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICfoqr/mn7vjga7nt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAn6Kq/5p+76LOq5ZWP44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICfos6rllY/jga7nt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICflm57nrZTjga7nt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICfmlrDjgZfjgYTnirbmhYvjgpLoqK3lrprjgafjgY3jgb7jgZvjgpMhIOizquWVj+OBjOWumue+qeOBleOCjOOBpuOBhOOBvuOBm+OCk+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICfnirbmhYvjgYzlpInmm7TjgZXjgozjgb7jgZfjgZ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJ+ODleOCo+ODvOODieODkOODg+OCr+OBhOOBn+OBoOOBjeOBguOCiuOBjOOBqOOBhuOBlOOBluOBhOOBvuOBl+OBn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJ+iqv+afu+OBjOWujOS6huOBl+OBvuOBl+OBn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJ+WujOaIkCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAn5pyq5a6M5oiQJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJ+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCuSAo5LiA6KanKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJ+ODqeOCuOOCquODnOOCv+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICfjg6njgrjjgqrjg5zjgr/jg7MgKOS4gOimpyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICfntbHoqIjkuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAn6Kq/5p+744Gu6Kqs5piOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICfoqr/mn7vjga7ntLnku4vmlocnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAn44Gv44GEL+OBhOOBhOOBiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJ+OBr+OBhC/jgYTjgYTjgYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnYW5zd2VyZWQnfSA9ICflm57nrZTjgYLjgoonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAn5Zue562U44Gq44GXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbCd9ID0gJ+e1seioiOOBruips+e0sCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IGFuc3dlcmVkIHRoZSBzdXJ2ZXkuJ30gPSAn6Kq/5p+744Gr5Zue562U5riI44G/44Gn44GZ44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIE5ldyBTdXJ2ZXknfSA9ICfmlrDopo/oqr/mn7vjga7kvZzmiJAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50cm9kdWN0aW9uJ30gPSAn57S55LuL5paHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVybmFsIERlc2NyaXB0aW9uJ30gPSAn5YaF6YOo5ZCR44GR6Kqs5piOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgR2VuZXJhbCBJbmZvJ30gPSAn5LiA6Iis5oOF5aCx44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgSW5mbyd9ID0gJ+S4gOiIrOaDheWgsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyBvZid9ID0gJ+e1seioiOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ+WbnuetlOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW5kIFRpbWUnfSA9ICfpgIHkv6Hml6XmmYInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSBUaW1lJ30gPSAn6L+U5L+h5pel5pmCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBTdGF0IERldGFpbHMnfSA9ICfoqr/mn7vntbHoqIjjga7oqbPntLAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBzdGF0cyBvdmVydmlldyd9ID0gJ+e1seioiOS4gOimp+OBq+aIu+OCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyBCYWNrJ30gPSAn5oi744KLJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAn6LOq5ZWP44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBRdWVzdGlvbid9ID0gJ+izquWVj+OBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIHRoZSBxdWVzdGlvbid9ID0gJ+izquWVj+OBruWFpeWKmyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUXVlc3Rpb25zJ30gPSAn6Kq/5p+76LOq5ZWPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uJ30gPSAn6LOq5ZWPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHF1ZXN0aW9ucyBzYXZlZCBmb3IgdGhpcyBzdXJ2ZXkuJ30gPSAn44GT44Gu6Kq/5p+744Gr5a++44GZ44KL6LOq5ZWP44GM5L+d5a2Y44GV44KM44Gm44GE44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb24nfSA9ICfos6rllY/nt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBxdWVzdGlvbnMnfSA9ICfos6rllY/jgbjmiLvjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUG9zc2libGUgQW5zd2VycyBGb3InfSA9ICfpgbjmip7ogqInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ+WbnuetlOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGRvZXNuXCd0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAn44GT44Gu6LOq5ZWP44Gr44Gv6YG45oqe6IKi44GM44GC44KK44G+44Gb44KT44CC44OG44Kt44K544OI44Ko44Oq44Ki44GM6KGo56S644GV44KM44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQW5zd2VyJ30gPSAn5Zue562U44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gZWRpdCBxdWVzdGlvbid9ID0gJ+izquWVj+OBrue3qOmbhuOBq+aIu+OCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgcmVxdWlyZWQnfSA9ICflm57nrZTlv4XpoIjjgafjgZknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICfmlofohIjoqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnMeODmuODvOOCuOOBq+ihqOekuuOBmeOCi+iqv+afu+OBruacgOWkp+aVsCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAn6YCa55+l44Gu6YCB5L+h6ICFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAn6YCa55+l44Gu5Lu25ZCNJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAn6YCa55+l44Gu5pys5paHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICfmm7TmlrDogIUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAn6Kq/5p+744Gu5oOF5aCxJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICfpgIHkv6HmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJ+i/lOS/oeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAn57Wx6KiI44Gu6Kmz57SwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAn6Kq/5p+744Gu6Kmz57SwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAn6Kq/5p+757WQ5p6c44Gu44Kw44Op44OVJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICfntbHoqIjntZDmnpzjgYzjgYLjgorjgb7jgZvjgpPjgIInOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAn6Kq/5p+7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAn44GT44KM44KJ44Gu6LOq5ZWP44Gr5Zue562U44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJ+mBjuWOu+OBruWbnuetlOOCkuihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAn44GT44KM44KJ44Gv6YGO5Y6744Gr5Zue562U44GV44KM44Gf44KC44Gu44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJ+iqv+afu+OBruOCv+OCpOODiOODqyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICfoqr/mn7vjg6Ljgrjjg6Xjg7zjg6snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJ+iqv+afu+izquWVj+OCkue3qOmbhuOBmeOCi+ODouOCuOODpeODvOODqyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+aLheW9k+iAheOCpOODs+OCv+ODleOCp+ODvOOCueOBq+OBiuOBkeOCi+iqv+afu+OCquODluOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+WFqOOBpuOBruODkeODqeODoeODvOOCvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICfoqr/mn7vjg6Hjg7zjg6vjgpLpgIHkv6HjgZfjgZ/lvozjgIHlkIzjgZjpoaflrqLjgavmlrDjgZfjgYToqr/mn7vopoHmsYLjgYzpgIHkv6HjgZXjgozjgarjgYTml6XmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAn5paw44GX44GE6Kq/5p+744Gr44Gk44GE44Gm6aGn5a6i44Gr6YCa55+l44GZ44KL44Oh44O844Or44Gu5pys5paH44Gu44OH44OV44Kp44Or44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAn5paw44GX44GE6Kq/5p+744KS44Gr44Gk44GE44Gm6aGn5a6i44Gr6YCa55+l44GZ44KL44Oh44O844Or44Gu6YCB5L+h6ICF44Gu44OH44OV44Kp44Or44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICfoqr/mn7vjga/oqK3lrprjgZXjgozjgZ/pm7vlrZDjg6Hjg7zjg6vjgqLjg4njg6zjgrnjgavjga/pgIHkv6HjgZXjgozjgb7jgZvjgpPjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAn5paw44GX44GE6Kq/5p+744KS44Gr44Gk44GE44Gm6aGn5a6i44Gr6YCa55+l44GZ44KL44Oh44O844Or44Gu5Lu25ZCN44Gu44OH44OV44Kp44Or44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJ+iqv+afu+S4gOimpyhTKeOCkuihqOekuuOBmeOCi+OBn+OCgeOBruS4gOimp+ODouOCuOODpeODvOODq+OBruWumue+qSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnMzDml6Xjga7plpPjgavpoaflrqLjgavpgIHkv6HjgZnjgovoqr/mn7vjga7mnIDlpKfmlbDjgpLlrprnvqnjgZfjgb7jgZnjgIIoMOOBr+eEoeWItumZkOOCkuaEj+WRs+OBl+OAgeWFqOOBpuOBruiqv+afu+imgeaxguOBjOmAgeS/oeOBleOCjOOBvuOBmSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgYW1vdW50IGluIGhvdXJzIGEgdGlja2V0IGhhcyB0byBiZSBjbG9zZWQgdG8gdHJpZ2dlciB0aGUgc2VuZGluZyBvZiBhIHN1cnZleSwgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJ+WujOS6huW+jOiqv+afu+OCkumAgeS/oeOBmeOCi+ODiOODquOCrOODvOOBjOaZgumWk+aVsOOCkuWumue+qeOBl+OBvuOBmeOAgigw44Gv5a6M5LqG5b6M55u044Gh44Gr6YCB5L+h44GZ44KL44GT44Go44KS5oSP5ZGz44GX44G+44GZKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICfoqr/mn7vmi6HlpKfnlLvpnaLjga7opoHntKDjgavlr77jgZfjgabjg6rjg4Pjg4Hjg4bjgq3jgrnjg4jjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7pq5jjgZXjgpLlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4nfSA9CiAgICAgICAgJ+iqv+afu+S4gOimp+OBp+ihqOekuuOBleOCjOOCi+WIl+aVsOOCkuWumue+qeOBl+OBvuOBmeOAguOBk+OBruOCquODl+OCt+ODp+ODs+OBr+WIl+OBruS9jee9ruOBq+OBr+S9nOeUqOOBl+OBvuOBm+OCk+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBpbiB0aGUgcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYSBzcGVjaWZpYyBzdXJ2ZXkgcmVzdWx0IHdoZW4gdGhlIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSB0aGUgc2Vjb25kIHRpbWUuJ30gPQogICAgICAgICflhazplovjgqTjg7Pjgr/jg7zjg5Xjgqfjg7zjgrnjgavjgYrjgYTjgabjgIHpoaflrqLjgYwy5bqm5Zue562U44GX44KI44GG44Go44GX44Gf6Zqb44Gr44CB44GT44KM44G+44Gn44Gu5Zue562U44OH44O844K/44KS6KGo56S644GZ44KLU2hvd1ZvdGVEYXRh55S76Z2i44KS5pyJ5Yq544Gr44GZ44KL44GL5ZCm44GLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5Xjgqfjg7zjgrnjga7oqr/mn7vmi6HlpKfjgavlr77jgZnjgovjg5Xjg63jg7Pjg4jjgqjjg7Pjg4njg7vjg6Ljgrjjg6Xjg7zjg6vjga7nmbvpjLLjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJ+WFrOmWi+OCpOODs+OCv+ODvOODleOCp+ODvOOCueOBrlB1YmxpY1N1cnZleeOCquODluOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+ODleODreODs+ODiOOCqOODs+ODieODu+ODouOCuOODpeODvOODq+OBrueZu+mMsuOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAn44GT44Gu5q2j6KaP6KGo54++44Gr44Oe44OD44OB44GZ44KL5aC05ZCI44CB6Kq/5p+744Gv6aGn5a6i44Gr6YCB5L+h44GV44KM44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAn6Kq/5p+75LiA6KanIChTbWFsbCkg44GuICjoqr/mn7vjgYzooajnpLrjgZXjgozjgospIOODmuODvOOCuOOBq+WvvuOBmeOCi+ODkeODqeODoeODvOOCvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgU3VydmV5Lid9ID0gJ+WFrOmWi+OCpOODs+OCv+ODvOODleOCp+ODvOOCueOBrlB1YmxpY1N1cnZleeOCquODluOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+ODleODreODs+ODiOOCqOODs+ODieODouOCuOODpeODvOODq+eZu+mMsuOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ+iqv+afu+S4gOimpyhTKeOBruihqOekuuaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgWm9vbSBNb2R1bGUuJ30gPSAn6Kq/5p+744Gu5ouh5aSn44Oi44K444Ol44O844OrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBsaW1pdCBwZXIgcGFnZSBmb3IgU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCInfSA9ICfoqr/mn7vkuIDopqcoUynjgafjga4x44Oa44O844K45q+O44Gu6Kq/5p+75pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICfkvovjgYjjgbBTdXJ2ZXkjLCBNeVN1cnZleSPjgarjganjga7jg4HjgrHjg4Pjg4jjga7orZjliKXlrZDjgafjgZnjgILjg4fjg5Xjgqnjg6vjg4jjga9TdXJ2ZXkj44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAn44OB44Kx44OD44OI44GM5a6M5LqG44GX44Gf6Zqb44Gr44CB6aGn5a6i44Gr6Ieq5YuV55qE44Gr6Kq/5p+744Oh44O844Or44KS6YCB5L+h44GZ44KL44OB44Kx44OD44OI44Kk44OZ44Oz44OI44Oi44K444Ol44O844Or44CCJzsKCn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9ydV9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBydV9TdXJ2ZXkucG0sdiAxLjggMjAxMi8xMS8yMCAxOToxMTo0OCBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpydV9TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIE5vIHF1ZXN0aW9ucyBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKCn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9kYV9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBkYV9TdXJ2ZXkucG0sdiAxLjEwIDIwMTIvMTEvMjAgMTk6MTE6MzggbWggRXhwICQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdLYW4gaWtrZSBzw6Z0dGUgbnkgc3RhdHVzISBEZXIgZXIgaWtrZSBkZWZpbmVyZXQgbm9nZW4gc3DDuHJnc23DpWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXR1cyBjaGFuZ2VkLid9ID0gJ1N0YXR1cyDDpm5kcmV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnVGFrIGZvciBkaW4gYmVzdmFyZWxzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJ0phTmVqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnYmVzdmFyZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAnaWtrZSBiZXN2YXJldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnVW5kZXJzw7hnZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnRXQgdW5kZXJzw7hnZWxzZXNtb2R1bC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdVbmRlcnPDuGdlbHNlIyc7Cgp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9lc19TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBlc19TdXJ2ZXkucG0sdiAxLjEwIDIwMTIvMTEvMjAgMTk6MTE6NDAgbWggRXhwICQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdFZGl0YXIgRW5jdWVzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnRWRpdGFyIFByZWd1bnRhcyBkZSBFc3RhZMOtc3RpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIE5vIHF1ZXN0aW9ucyBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJ0NvbXBsZXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUnfSA9ICdJbmNvbXBsZXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICdyZXPDum1lbiBFc3RhZGlzdGljYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnRGVzY3JpcGNpw7NuIGRlIGxhIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1Y2Npw7NuIGRlIGxhIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ0NyZWFyIE51ZXZhIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJ0ludHJvZHVjY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdEZXNjcmlwY2nDs24gSW50ZXJuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJ0VkaXRhciBpbmZvcm1hY2nDs24gR2VuZXJhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICdJbmZvcm1hY2nDs24gR2VuZXJhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyBvZid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ1RhYmxhIGRlIFNvbGljaXR1ZGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJ1RpZW1wbyBkZSBFbnbDrW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSBUaW1lJ30gPSAnVGllbXBvIGRlIFZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ0RldGFsbGVzIGRlIEVzdGFkaXN0aWNhcyBkZSBFbmN1ZXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAncmVncmVzYXIgYSByZXPDum1lbiBkZSBlc3RhZGlzdGljYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJ1JlZ3Jlc2FyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnRWRpdGFyIFByZWd1bnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICdBZ3JlZ2FyIFByZWd1bnRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnRXNjcmliYSBsYSBwcmVndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUXVlc3Rpb25zJ30gPSAnUHJlZ3VudGFzIGRlIEVzdGFkaXN0aWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uJ30gPSAnUHJlZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICdObyBoYXkgcHJlZ3VudGFzIGFsbWFjZW5hZGFzIHBhcmEgZXN0YSBlbmN1ZXN0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0VkaXRhciBQcmVndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJ3JlZ3Jlc2FyIGEgcHJlZ3VudGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnUG9zaWJsZXMgcmVzcHVlc3RhcyBwYXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICdBZ3JlZ2FyIFJlc3B1ZXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGRvZXNuXCd0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnRXN0YSBwcmVndW50YSBubyB0aWVuZSB2YXJpYXMgcmVzcHVlc3RhcywgdW4gYXJlYSBkZSB0ZXh0byBzZXLDoSBtb3N0cmFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJ0VkaXRhciBSZXNwdWVzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAndm9sdmVyIGEgZWRpdGFyIHByZWd1bnRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnQ29uZmlndXJhY2lvbmVzIGRlIENvbnRleHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJ051bWVybyBtw6F4aW1vIGRlIGVuY3Vlc3RhcyBtb3N0cmFkYXMgcG9yIHDDoWdpbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFNlbmRlcid9ID0gJ1JlbWl0ZW50ZSBkZSBOb3RpZmljYWNpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFN1YmplY3QnfSA9ICdBc3VudG8gZGUgTm90aWZpY2FjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ0N1ZXJwbyBkZSBOb3RpZmljYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICdNb2RpZmljYWNvIHBvcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hY2nDs24gZGUgRW5jdWVzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJ1NvbGljaXR1ZGVzIGVudmlhZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlY2VpdmVkIHN1cnZleXMnfSA9ICdTb2xpY2l0dWRlcyByZWNpYmlkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlscyd9ID0gJ0RldGFsbGUgZGUgRXN0YWTDrXN0aWNhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGV0YWlscyd9ID0gJ0RldGFsbGVzIGRlIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnR3JhZmljYSBkZSBSZXN1bHRhZG9zIGRlIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICdObyBoYXkgZ3JhZmljYXMgZGUgcmVzdWx0YWRvcy4nOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnRW5jdWVzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXNlIGFyZSB5b3VyIGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJ1VuIE3Ds2R1bG8gZGUgRW5jdWVzdGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnVW4gbcOzZHVsbyBwYXJhIGVkaXRhciBsYXMgcHJlZ3VudGFzIGRlIHVuYSBlbmN1ZXN0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUb2RvcyBsb3MgcGFyYW1ldHJvcyBwYXJhIGVsIG9iamV0byBFbmN1ZXN0YSBlbiBsYSBpbnRlcmZhc2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnQ3VlcnBvIGRlZmF1bHQgcGFyYSBlbCBlbWFpbCBkZSBub3RpZmljYWNpw7NuIGEgbG9zIGNsaWVudGVzIHNvYnJlIGxhIGVuY3Vlc3RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ1JlbWl0ZW50ZSBkZWZhdWx0IHBhcmEgZWwgZW1haWwgZGUgbm90aWZpY2FjacOzbiBhIGxvcyBjbGllbnRlcyBzb2JyZSBsYSBlbmN1ZXN0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdBc3VudG8gZGVmYXVsdCBwYXJhIGVsIGVtYWlsIGRlIG5vdGlmaWNhY2nDs24gYSBsb3MgY2xpZW50ZXMgc29icmUgbGEgZW5jdWVzdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZSB1bmEgbcOzZHVsbyByZXN1bWVuIHBhcmEgbW9zdHJhciBsYSB2aXN0YSBwZXF1ZcOxYSBkZSBsYSBsaXN0YSBkZSBlbmN1ZXN0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyB0aGF0IGdldCBzZW50IHRvIGEgY3VzdG9tZXIgcGVyIDMwIGRheXMuICggMCBtZWFucyBubyBtYXhpbXVtLCBhbGwgc3VydmV5IHJlcXVlc3RzIHdpbGwgYmUgc2VudCkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgYW1vdW50IGluIGhvdXJzIGEgdGlja2V0IGhhcyB0byBiZSBjbG9zZWQgdG8gdHJpZ2dlciB0aGUgc2VuZGluZyBvZiBhIHN1cnZleSwgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICdEZWZpbmUgbGEgYWx0dXJhIHByZWRlZmluaWRhIHBhcmEgbGEgdmlzdGEgZGUgdGV4dG8gZW5yaXF1ZWNpZG8gcGFyYSBsb3MgZWxlbWVudG9zIGRlIGxhIHBhbnRhbGwgZGUgZGV0YWxsZSBkZSBlc3RhZGlzdGljYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdSZWdpc3RybyBkZSBtw7NkdWxvIGZyb250ZW5kIFN1cnZleVpvb20gZW4gbGEgaW50ZXJmYWNlIGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICdSZWdpc3RybyBkZSBtw7NkdWxvIGZyb250ZW5kIFB1YmxpY1N1cnZleSBlbiBsYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICdTaSBlc3RhIGV4cHJlc2nDs24gcmVndWxhciBjb25jdWVyZGEsIGxhIGVuY3Vlc3RhIG5vIHNlcsOhIGVudmlhZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyYW1ldHJvcyBwYXJhIGxhcyBww6FnaW5hcyAoZW4gcXVlIGxhcyBlbmN1ZXN0YXMgc29uIG1vc3RyYWRhcykgZGUgbGEgdmlzdGEgZGUgcmVzdW1lbiBwZXF1ZcOxYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICdFbmN1ZXN0YSBQw7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdMaW1pdGUgZGUgbGEgdmlzdGEgZGUgcmVzdW1lbiBwZXF1ZcOxYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJ01vZHVsbyBkZSBEZXRhbGxlIGRlIEVuY3Vlc3RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICdFbCBpZGVudGlmaWNhZG9yIHBhcmEgdW5hIGVuY3Vlc3RhLCBlamVtcGxvIFN1cnZleSMsIE15U3VydmV5Iy4gUG9yIGRlZmVjdG8gZXMgU3VydmV5Iy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICcnOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBUaW1lJ30gPSAnVGllbXBvIGRlIG1vZGlmaWNhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0NyZWFkbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBUaW1lJ30gPSAnVGllbXBvIGRlIENyZWFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHN0YXJ0aW5nIGZyb20gdGhlIGxhdGVzdCBjdXN0b21lciBzdXJ2ZXkgZW1haWwgYmV0d2VlbiBubyBjdXN0b21lciBzdXJ2ZXkgZW1haWwgaXMgc2VudCwgKCAwIG1lYW5zIEFsd2F5cyBzZW5kIGl0ICkgLid9ID0KICAgICAgICAnRGlhcyBjb21lbnphbmRvIGRlc2RlIGxhIMO6bHRpbWEgZW4gY3Vlc3RhIGVudmlhZGEgYWwgY2xpZW50ZSAoIDAgc2lnbmlmaWNhIGVudmlhbGEgc2llbXByZSApIC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGxhcyBjb2x1bW5hcyBtb3N0cmFkYXMgZW4gbGEgdmlzdGEgXCdSZXN1bWVuIGRlIEVzdGFkaXN0aWNhc1wnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBvbiBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhbiBzcGVjaWZpYyB2b3RhdGlvbiB3aGVuIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSBieSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJ0hhYmlsaXRhciBvIGRlc2hhYmlsaXRhciBsYSBwYW50YWxsYSBkZSBTaG93Vm90ZURhdGEgc2NyZWVuIGVuIGxhIGludGVyZmFzZSBwdWJsaWNhIHBhcmEgbW9zdHJhciBsb3MgZGF0b3MgZGUgdW4gdm90ZW8gY3VhbmRvIGVsIGNsaWVudGUgaW50ZW50YSBjb250ZXN0YXIgbGEgZW5jdWVzdGEgcG9yIHNlZ3VuZGEgdmV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZSBuZXh0IHF1ZXN0aW9ucyd9ID0gJ1BvciBmYXZvciBjb250ZXN0ZSBsYXMgc2lndWllbnRlcyBwcmVndW50YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICdMaW1pdGUgZGUgZW5jdWVzdGFzIHBvciBww6FnaW5hIHBhcmEgbGEgdmlzdGEgZGUgcmVzdW1lbiBwZXF1ZcOxYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5Iyd9ID0gJ0VuY3Vlc3RhIyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ30gPSAnRXN0ZSBjYW1wbyBlcyByZXF1ZXJpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBnZXRzIGNsb3NlZC4nfSA9CiAgICAgICAgJ01vZHVsbyBkZSBldmVudG8gZGUgVGlja2V0IHBhcmEgZW52aWFyIGF1dG9tYXRpY2FtZW50ZSBjb3JyZW9zIGRlIHNvbGljaXR1ZGVzIGRlIGVuY3Vlc3RhIGEgY2xpZW50ZXMgc2kgZWwgdGlja2V0IHNlIGhhIGNlcnJhZG8uJzsKCn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9iZ19TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBiZ19TdXJ2ZXkucG0sdiAxLjggMjAxMi8xMS8yMCAxOToxMTozNiBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpiZ19TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIE5vIHF1ZXN0aW9ucyBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFN1YmplY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEJvZHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBCeSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWNlaXZlZCBzdXJ2ZXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERldGFpbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFJlc3VsdHMgR3JhcGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3RhdCByZXN1bHRzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXNlIGFyZSB5b3VyIGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Ftb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGJvZHkgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHN1cnZleSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyB0aGF0IGdldCBzZW50IHRvIGEgY3VzdG9tZXIgcGVyIDMwIGRheXMuICggMCBtZWFucyBubyBtYXhpbXVtLCBhbGwgc3VydmV5IHJlcXVlc3RzIHdpbGwgYmUgc2VudCkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgYW1vdW50IGluIGhvdXJzIGEgdGlja2V0IGhhcyB0byBiZSBjbG9zZWQgdG8gdHJpZ2dlciB0aGUgc2VuZGluZyBvZiBhIHN1cnZleSwgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBpbiB0aGUgcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYSBzcGVjaWZpYyBzdXJ2ZXkgcmVzdWx0IHdoZW4gdGhlIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSB0aGUgc2Vjb25kIHRpbWUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3Igc3VydmV5IHpvb20gaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgUHVibGljU3VydmV5IG9iamVjdCBpbiB0aGUgcHVibGljIFN1cnZleSBhcmVhLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICcnOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwoKfQoKMTsK
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9wbF9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIENvcHlyaWdodCAoQykgMjAxMS0yMDEyIEluZm9ybWF0eWthIEJvZ3VzbGF3c2tpIHNwLiB6IG8uby4gc3Auay4sIGh0dHA6Ly93d3cuaWIucGwvCiMgLS0KIyAkSWQ6IHBsX1N1cnZleS5wbSx2IDEuOSAyMDEyLzExLzIwIDE5OjExOjQ1IG1oIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnBsX1N1cnZleTsKCnVzZSB1dGY4OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBQUFTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57Jy0gQ2hhbmdlIFN0YXR1cyAtJ30gPSAnWm1pZcWEIHN0YXR1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJ0RvZGFqIG5vd8SFIGFua2lldMSZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBFZGl0J30gPSAnRWR5Y2phIGFua2lldHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnRWR5Y2phIHB5dGHFhCBhbmtpZXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICdFZHljamEgcHl0YcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Fuc3dlciBFZGl0J30gPSAnRWR5Y2phIG9kcG93aWVkemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdOaWUgbW/FvG5hIHptaWVuacSHIHN0YXR1c3UhIEJyYWsgemRlZmluaW93YW55Y2ggcHl0YcWELic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICdTdGF0dXMgem1pZW5pb255Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnRHppxJlrdWrEmW15IHphIHd5cGXFgm5pZW5pZSBhbmtpZXR5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJ0Fua2lldGEgemFrb8WEY3pvbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbXBsZXRlJ30gPSAnS29tcGxldG5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUnfSA9ICdOaWVrb21wbGV0bmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hlY2tib3ggKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvIChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyd9ID0gJ1N0YXR5c3R5a2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnT3BpcyBhbmtpZXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICdXc3TEmXAgYW5raWV0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXMvTm8nfSA9ICdUYWsvTmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnVGFrTmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnb2Rwb3dpZWR6aWFubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICduaWUgb2Rwb3dpZWR6aWFubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICdTemN6ZWfDs8WCeSBzdGF0dXN1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICdKdcW8IG9kcG93aWVkemlhxYJlxZsgbmEgdMSZIGFua2lldMSZLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnVXR3w7NyeiBub3fEhSBhbmtpZXTEmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICdXcHJvd2FkemVuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdXZXduxJl0cnpueSBvcGlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgR2VuZXJhbCBJbmZvJ30gPSAnRWR5dHVqIGluZm9ybWFjamUgb2fDs2xuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICdJbmZvcm1hY2plIG9nw7NsbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICdQcnplZ2zEhWQgc3RhdHlzdHlraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ1RhYmVsYSDFvMSFZGHFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW5kIFRpbWUnfSA9ICdDemFzIHd5c8WCYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICdDemFzIGfFgm9zb3dhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBTdGF0IERldGFpbHMnfSA9ICdTemN6ZWfDs8WCeSBzdGF0eXN0eWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICdXc3RlY3ogZG8gcHJ6ZWdsxIVkdSBzdGF0eXN0eWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICdXc3RlY3onOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICdFZHl0dWogcHl0YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICdEb2RhaiBweXRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnV3Byb3dhZMW6IHB5dGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJ1B5dGFuaWEgYW5raWV0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJ1B5dGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICdCcmFrIHB5dGHFhCB6YXBpc2FueWNoIHcgdGVqIGFua2llY2llLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnRWR5dHVqIHB5dGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBxdWVzdGlvbnMnfSA9ICdwb3dyw7N0IGRvIHB5dGHFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJ01vxbxsaXdlIG9kcG93aWVkemkgZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0RvZGFqIG9kcG93aWVkxbonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ05pZSBwb3NpYWRhIHdpZWx1IG9kcG93aWVkemksIGLEmWR6aWUgd3nFm3dpZXRsYW5lIHBvbGUgdGVrc3Rvd2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQW5zd2VyJ30gPSAnRWR5dHVqIG9kcG93aWVkxbonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAncG93csOzdCBkbyBlZHljamkgcHl0YW5pYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ1VzdGF3aWVuaWEga29udGVrc3Rvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnTWFrcy4gbGljemJhIHd5xZt3aWV0bGFueWNoIGFua2lldCBuYSBzdHJvbsSZJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICdOYWRhd2NhIHBvd2lhZG9taWVuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFN1YmplY3QnfSA9ICdUZW1hdCBwb3dpYWRvbWllbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnVHJlxZvEhyBwb3dpYWRvbWllbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICdabWllbmlvbmUgcHJ6ZXonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYWNqZSBvIGFua2llY2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICdXeXPFgmFuZSDFvMSFZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJ090cnp5bWFuZSBhbmtpZXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICdTemN6ZWfDs8WCeSBzdGF0eXN0eWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERldGFpbHMnfSA9ICdTemN6ZWfDs8WCeSBhbmtpZXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnV3lrcmVzIHd5bmlrw7N3IGFua2lldHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3RhdCByZXN1bHRzLid9ID0gJ0JyYWsgd3luaWvDs3cgYW5raWV0eS4nOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnQW5raWV0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJ1Byb3N6xJkgb2Rwb3dpZWR6aWXEhyBuYSB0ZSBweXRhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJ1Bva2HFvCBtb2plIG9kcG93aWVkemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJ090byBUd29qZSBvZHBvd2llZHppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJ1R5dHXFgiBhbmtpZXR5JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJ01vZHXFgiBhbmtpZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbW9kdWxlIHRvIGVkaXQgc3VydmV5IHF1ZXN0aW9ucy4nfSA9ICdNb2R1xYIgZG8gZWR5Y2ppIHB5dGHFhCBhbmtpZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdXc3p5c3RraWUgcGFyYW1ldHJ5IGRsYSBhbmtpZXQgdyBpbnRlcmZlanNpZSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Ftb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC4nfSA9CiAgICAgICAgJ0xpY3piYSBkbmkgcG8ga3TDs3J5Y2ggbmFzdMSFcGkgd3lzxYJhbmllIMW8xIVkYW5pYSB3eXBlxYJuaWVuaWEgYW5raWV0eS4gV3Byb3dhZHplbmllICIwIiBzcG93b2R1amUgd3lzxYJhbmllIGUtbWFpbGEgemF3c3plLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGJvZHkgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdEb215xZtsbmEgYnVkb3dhIGluZm9ybWFjamkgZGwgdcW8eXRrb3duaWthIG9kbm/Fm25pZSBub3dlaiBhbmtpZXR5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ0RvbXnFm2xueSBuYWRhd2NhIGluZm9ybWFjamkgbyBub3dlaiBhbmtpZWNpZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnRG9tecWbbG55IHRlbWF0IGluZm9ybWFjamkgbyBub3dlaiBhbmtpZXRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPQogICAgICAgICdEZWZuaXVqZSBtb2R1xYIgcHJ6ZWdsxIVkdSB3ecWbd2lldGxhbmlhIGxpc3QgYW5raWV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnRGVmaW5pdWplIG1ha3N5bWFsbsSFIGxpY3pixJkgYW5raWV0IHd5c3nFgmFuaXUgZG8gS2xpZW50YSB3IGNpxIVndSAzMCBkbmkuICgwIG96bmFjemEgYnJhayBvZ3JhbmljemVuaWEsIHdzenlzdGtpZSDFvMSFZGFuaWEgYsSZZMSFIHd5c3nFgmFuZSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICdVc3RhbGEgbGljemLEmSBnb2R6aW4ga3TDs3JlIG11c3rEhSBtaW7EhcSHIG9kIHphbWtuacSZY2lhIHpnxYJvc3plbmlhIGRvIHd5c8WCYW5pYSBhbmtpZXR5ICgwIG96bmFjemEgYmV6enfFgm9jem7EhSB3eXN5xYJrxJkgcHJ6eSB6YW15a2FuaXUgemfFgm9zemVuaWEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICdEZWZpbml1amUgZG9tecWbbG7EhSB3eXNva2/Fm8SHIHdpZG9rw7N3IFJpY2h0ZXh0IGRsYSBlbGVtZW50w7N3IFN1cnZleVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICdEZWZpbml1amUgd2lkb2N6bmUga29sdW1ueSB3IHByemVnbMSFZHppZSBhbmtpZXQuIFRhIG9wY2phIG5pZSB3cMWCeXdhIG5hIHBvenljasSZIGtvbHVtbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnV8WCxIVjeiBsdWIgd3nFgsSFY3ogZWtyYW4gU2hvd1ZvdGVEYXRhIHcgaW50ZXJmZWpzaWUgcHVibGljem55bSBhYnkgcG9rYXphxIcgd3luaWtpIGFua2lldHkgZ2R5IGtsaWVudCBwcsOzYnVqZSBvZHBvd2llZHppZcSHIG5hIGFraWV0xJkgZHJ1Z2kgcmF6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9kdcWCIGZyb250ZW5kIHJlamVzdHJ1asSFY3kgcG9kZ2zEhWQgYW5raWV0IHcgcGFuZWx1IGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJ01vZHXFgiBmcm9udGVuZCByZWplc3RydWrEhWN5IG9iaWVrdCBQdWJsaWNTdXJ2ZXkgdyBvYnN6YXJ6ZSBwdWJsaWN6bnltIGFua2lldHkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICdHZHkgdG8gd3lyYcW8ZW5pZSByZWd1bGFybmUgamVzdCBzcGXFgm5pb25lLCBuaWUgem9zdGFuaWUgd3lzxYJhbmEgxbxhZG5hIGFua2lldGEgZG8ga2xpZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0cnkgZGxhIHN0cm9uIChuYSBrdMOzcnljaCBwb2thenl3YW5lIHPEhSBhbmtpZXR5KSBkbGEgbWHFgmVnbyBwcnplZ2zEhWR1IGFua2lldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICdBbmtpZXRhIHB1YmxpY3puYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdMaW1pdCAibWHFgmVnbyIgcHJ6ZWdsxIVkdSBhbmtpZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJ1BvZGdsxIVkIGFua2lldHkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBsaW1pdCBwZXIgcGFnZSBmb3IgU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCInfSA9ICdMaW1pdCBpbG/Fm2NpIGFua2lldCB3ICJtYcWCeW0iIHByemVnbMSFZHppZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnSWRlbnR5ZmlrYWNqYSBkbGEgYW5raWV0eSwgbnAuIFN1cnZleSMsIE15U3VydmV5Iy4gRG9tecWbbG5pZTogU3VydmV5Iy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICdaZGFyemVuaWUgemfFgm9zemVuaWEgd3lzecWCYSBhdXRvbWF0eWN6bmllIGUtbWFpbGEgeiBwcm/Fm2LEhSBvIHd5cGXFgm5pZW5pZSBhbmtpZXR5IHBvIHphbWtuacSZY2l1IHpnxYJvc3plbmlhLic7CgogICAgIwogICAgIyBPQlNPTEVURSBFTlRSSUVTIEZPUiBSRUZFUkVOQ0UsIERPIE5PVCBUUkFOU0xBVEUhCiAgICAjCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgU3RhdHVzJ30gPSAnWm1pZcWEIHN0YXR1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIFRpbWUnfSA9ICdDemFzIHptaWFueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnVXR3b3J6b25lIHByemV6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgVGltZSd9ID0gJ0N6YXMgdXR3b3J6ZW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHN0YXJ0aW5nIGZyb20gdGhlIGxhdGVzdCBjdXN0b21lciBzdXJ2ZXkgZW1haWwgYmV0d2VlbiBubyBjdXN0b21lciBzdXJ2ZXkgZW1haWwgaXMgc2VudCwgKCAwIG1lYW5zIEFsd2F5cyBzZW5kIGl0ICkgLid9ID0KICAgICAgICAnTGljemJhIGRuaSBiZXogd3lzecWCYW5pYSDFvMSFZGHFhCB3eXBlxYJuaWVuaWEgYW5raWV0eSBkbyBrbGllbnRhLCBwb2N6xIV3c3p5IG9kIG9zdGF0bmllaiB0YWtpZWogd3lzecWCa2kgZG8gdGVnbyBrbGllbnRhICgwIG96bmFjemEgd3lzecWCYW5pZSB6YSBrYcW8ZHltIHJhemVtKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5pdWplIHdpZG9jem5lIGtvbHVtbnkgdyBwcnplZ2zEhWR6aWUgYW5raWV0LiBUYSBvcGNqYSBuaWUgd3DFgnl3YSBuYSBwb3p5Y2rEmSBrb2x1bW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIG9uIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGFuIHNwZWNpZmljIHZvdGF0aW9uIHdoZW4gY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IGJ5IHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnV8WCxIVjeiBsdWIgd3nFgsSFY3ogZWtyYW4gU2hvd1ZvdGVEYXRhIHcgaW50ZXJmZWpzaWUgcHVibGljem55bSBhYnkgcG9rYXphxIcgd3luaWtpIGFua2lldHkgZ2R5IGtsaWVudCBwcsOzYnVqZSBvZHBvd2llZHppZcSHIG5hIGFraWV0xJkgZHJ1Z2kgcmF6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZSBuZXh0IHF1ZXN0aW9ucyd9ID0gJ1Byb3NpbXksIG9kcG93aWVkeiBuYSBuYXN0w6pwbmUgcHl0YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZCd9ID0gJ1N0YXR1cyB6bWllbmlvbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5Iyd9ID0gJ0Fua2lldGEjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnfSA9ICdUbyBwb2xlIGplc3Qgd3ltYWdhbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBnZXRzIGNsb3NlZC4nfSA9CiAgICAgICAgJ01vZHXFgiB6ZGFyemVuaW93eSB6Z8WCb3N6ZW5pYSBkbyBhdXRvbWF0eWN6bmVnbyB3eXN5xYJhbmlhIMW8xIVkYcWEIGUtbWFpbCB3eXBlxYJuaWVuaWEgYW5raWV0eSBkbyBrbGllbnTDs3csIHByenkgemFta25pxJljaXUgemfFgm9zemVuaWEuJzsKCn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9tc19TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBtc19TdXJ2ZXkucG0sdiAxLjEgMjAxMy8wNC8xNSAxMTo1ODowMCBqaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjptc19TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJy0gVWJhaCBTdGF0dXMgLSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJ1RhbWJhaCBVa3VyIEJhcnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdVa3VyIEVkaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnUGVueWlhc2F0YW4gRWRpdCBTb2FsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJ0VkaXQgc29hbGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Fuc3dlciBFZGl0J30gPSAnRWRpdCBKYXdhcGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzZXQgbmV3IHN0YXR1cyEgTm8gcXVlc3Rpb25zIGRlZmluZWQuJ30gPSAnVGlkYWsgYm9sZWggbWVuZXRhcGthbiBzdGF0dXMgYmFydSEgVGlhZGEgc29hbGFuIHlhbmcgZGl0YWtyaWZrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXR1cyBjaGFuZ2VkLid9ID0gJ3N0YXR1cyBiZXJ1YmFoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnVGVyaW1hIGthc2loIGF0YXMgbWFrbHVtIGJhbGFzIGFuZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBzdXJ2ZXkgaXMgZmluaXNoZWQuJ30gPSAnS2FqaSBzZWxpZGlrIGl0dSBzZWxlc2FpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJ2xlbmdrYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJ3RpZGFrIGxlbmdrYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hlY2tib3ggKExpc3QpJ30gPSAnQ2hlY2tib3ggKFNlbmFyYWkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvJ30gPSAnUmFkaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnUmFkaW8gKFNlbmFyYWkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnU3RhdGlzdGlrIFRpbmphdWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJ0h1cmFpYW4gcGVueWlhc2F0YW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEludHJvZHVjdGlvbid9ID0gJ1BlbnlpYXNhdGFuIFBlbmdlbmFsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnWWEvVGlkYWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzTm8nfSA9ICdZYVRpZGFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnRGlqYXdhYic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICdUaWRhayBkaWphd2FiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbCd9ID0gJ1N0YXRpc3RpayBUZXJwZXJpbmNoaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IGFuc3dlcmVkIHRoZSBzdXJ2ZXkuJ30gPSAnQW5kYSB0ZWxhaCBtZW5qYXdhYiBrYWppIHNlbGlkaWsuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIE5ldyBTdXJ2ZXknfSA9ICdCdWF0IFN1cnZleSBCYXJ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJ1BlbmdlbmFsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdEZXNjcmlwdGlvbiBkYWxhbWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgR2VuZXJhbCBJbmZvJ30gPSAnRWRpdCBNYWtsdW1hdCBVbXVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgSW5mbyd9ID0gJ01ha2x1bWF0IFVtdW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICdHYW1iYXJhbiBLZXNlbHVydWhhbiBTdGF0aXN0aWsgZGFyaXBhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICdKYWR1YWwgcGVybWludGFhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW5kIFRpbWUnfSA9ICdNYXNhIEhhbnRhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICdNYXNhIFVuZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ1BlbnlpYXNhdGFuIERldGFpbHMgU3RhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAna2VtYmFsaSBrZSBTdGF0aXN0aWsgZ2FtYmFyYW4ga2VzZWx1cnVoYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJ0tlbWJhbGknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICdFZGl0IFNvYWxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICdUYW1iYWggU29hbGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnVGFpcCBzb2FsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJ1BlbnlpYXNhdGFuIFNvYWxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJ1NvYWxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJ1RpYWRhIHNvYWxhbiB5YW5nIGRpc2ltcGFuIHVudHVrIGthamlhbiBpbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb24nfSA9ICdFZGl0IFNvYWxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJ2tlbWJhbGkga2VwYWRhIHNvYWxhbi1zb2FsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUG9zc2libGUgQW5zd2VycyBGb3InfSA9ICdKYXdhcGFuIEtlbXVuZ2tpbmFuIFVudHVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICdUYW1iYWggSmF3YWInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ0luaSB0aWRhayBtZW1wdW55YWkgYmViZXJhcGEgamF3YXBhbiwgdGV4dGFyZWEgYWthbiBkaXBhcGFya2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJ0VkaXQgSmF3YXBhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICdrZW1iYWxpIHVudHVrIG1lbmdlZGl0IHNvYWxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgcmVxdWlyZWQnfSA9ICdKYXdhcGFuIGRpcGVybHVrYW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdrb250ZWtzIFRldGFwYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnTWF4LiBVa3VyIGRpdHVuanVra2FuIHNldGlhcCBoYWxhbWFuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICdQZW1iZXJpdGFodWFuIFBlbmdpcmltJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnVGVydGFrbHVrIFBlbWJlcml0YWh1YW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEJvZHknfSA9ICdCYWRhbiBQZW1iZXJpdGFodWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICdEaXR1a2FyIGRlbmdhbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICdNYWtsdW1hdCBVa3VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICdtZW5naGFudGFyIHBlcm1pbnRhYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJ2RpdGVyaW1hIGthamkgc2VsaWRpayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnU3RhdGlzdGlrIHRlcnBlcmluY2hpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnUGVueWlhc2F0YW4gdGVycGVyaW5jaGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFJlc3VsdHMgR3JhcGgnfSA9ICdVa3VyIEtlcHV0dXNhbiBHcmFmJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICdUaWFkYSBzdGF0IGtlcHV0dXNhbi4nOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnUGVueWlhc2F0YW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICdTaWxhIGphd2FiIHNvYWxhbi1zb2FsYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnVHVuanVra2FuIGphd2FwYW4gc2F5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnSW5pIGFkYWxhaCBqYXdhcGFuIGFuZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnVGFqdWsgVWt1cic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICdTYXR1IE1vZHVsIFBlbnlpYXNhdGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbW9kdWxlIHRvIGVkaXQgc3VydmV5IHF1ZXN0aW9ucy4nfSA9ICdTYXR1IG1vZHVsIHVudHVrIG1lbmdlZGl0IHNvYWxhbiB0aW5qYXVhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1NlbXVhIHBhcmFtZXRlciBiYWdpIG9iamVrIFVrdXIgZGFsYW0gYW50YXJhIG11a2EgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW1vdW50IG9mIGRheXMgYWZ0ZXIgc2VuZGluZyBhIHN1cnZleSBtYWlsIGluIHdoaWNoIG5vIG5ldyBzdXJ2ZXkgcmVxdWVzdHMgYXJlIHNlbnQgdG8gdGhlIHNhbWUgY3VzdG9tZXIuIFNlbGVjdGluZyAwIHdpbGwgYWx3YXlzIHNlbmQgdGhlIHN1cnZleSBtYWlsLid9ID0KICAgICAgICAnSnVtbGFoIGhhcmkgc2VsZXBhcyBtZW5naGFudGFyIG1lbCBrYWppIHNlbGlkaWsgZGkgbWFuYSB0aWFkYSBwZXJtaW50YWFuIGthamkgc2VsaWRpayBiYXJ1IGRpaGFudGFyIGtlcGFkYSBwZWxhbmdnYW4geWFuZyBzYW1hLiBNZW1pbGloIDAgYWthbiBzZW50aWFzYSBtZW5naGFudGFyIG1lbCBrYWppIHNlbGlkaWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgYm9keSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ0RlZmF1bHQgYmFkYW4gdW50dWsgcGVtYmVyaXRhaHVhbiBlLW1lbCBrZXBhZGEgcGVsYW5nZ2FuIHRlbnRhbmcga2FqaSBzZWxpZGlrIGJhcnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnUGVuZ2hhbnRhciBsYWxhaSB1bnR1ayBwZW1iZXJpdGFodWFuIGUtbWVsIGtlcGFkYSBwZWxhbmdnYW4gdGVudGFuZyBrYWppIHNlbGlkaWsgYmFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJ1VrdXIgdGlkYWsgYWthbiBkaWhhbnRhciBrZSBhbGFtYXQgZS1tZWwgeWFuZyBkaWtvbmZpZ3VyYXNpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdUZXJ0YWtsdWsgbGFsYWkgdW50dWsgcGVtYmVyaXRhaHVhbiBlLW1lbCBrZXBhZGEgcGVsYW5nZ2FuIHRlbnRhbmcga2FqaSBzZWxpZGlrIGJhcnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBtb2R1bCBnYW1iYXJhbiB1bnR1ayBtZW51bmp1a2thbiBwYW5kYW5nYW4geWFuZyBrZWNpbCBzZW5hcmFpIGthamkgc2VsaWRpay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBqdW1sYWggbWFrc2ltdW0ga2FqaSBzZWxpZGlrIHlhbmcgbWVuZGFwYXQgZGloYW50YXIga2VwYWRhIHBlbGFuZ2dhbiBzZXRpYXAgMzAgaGFyaS4gKDAgYmVybWFrbmEgdGlkYWsgbWFrc2ltdW0sIHNlbXVhIHBlcm1pbnRhYW4ga2FqaSBzZWxpZGlrIGFrYW4gZGloYW50YXIpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBhbW91bnQgaW4gaG91cnMgYSB0aWNrZXQgaGFzIHRvIGJlIGNsb3NlZCB0byB0cmlnZ2VyIHRoZSBzZW5kaW5nIG9mIGEgc3VydmV5LCAoIDAgbWVhbnMgc2VuZCBpbW1lZGlhdGVseSBhZnRlciBjbG9zZSApLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGp1bWxhaCBqYW0gdGlrZXQgYWthbiBkaXR1dHVwIHVudHVrIG1lbmNldHVza2FuIHBlbmdoYW50YXJhbiBrYWppIHNlbGlkaWssICgwIGNhcmEgbWVuZ2hhbnRhciBzZWdlcmEgc2VsZXBhcyBwZW51dHVwYW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4ga2V0aW5nZ2lhbiBsYWxhaSB1bnR1ayBwZW5vbnRvbiBUZWtzIEtheWEgdW50dWsgZWxlbWVuIFpvb20gVWt1ci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBydWFuZ2FuIG1lbnVuanVra2FuIGRhbGFtIGdhbWJhcmFuIGthamlhbi5QaWxpaGFuIGluaSB0aWRhayBtZW1wdW55YWkga2VzYW4ga2UgYXRhcyBrZWR1ZHVrYW4gdGlhbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhIHNwZWNpZmljIHN1cnZleSByZXN1bHQgd2hlbiB0aGUgY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IHRoZSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJ0RheWFrYW4gYXRhdSBueWFoZGF5YWthbiBVbmRpIFBhcGFyIERhdGEgc2tyaW4gZGFsYW0gYW50YXJhIG11a2EgYXdhbSB1bnR1ayBtZW51bmp1a2thbiBkYXRhIGhhc2lsIGthamlhbiB0ZXJ0ZW50dSBhcGFiaWxhIHBlbGFuZ2dhbiBjdWJhIHVudHVrIG1lbmphd2FiIGthamkgc2VsaWRpayBrYWxpIGtlZHVhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRnJvbnRlbmQgcGVuZGFmdGFyYW4gbW9kdWwgdW50dWsgem9vbSBrYWppIHNlbGlkaWsgZGFsYW0gYW50YXJhIG11a2EgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJ0Zyb250ZW5kIHBlbmRhZnRhcmFuIG1vZHVsIGJhZ2kgb2JqZWsgVWt1ciBBd2FtIGRpIGthd2FzYW4gVWt1ciBhd2FtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnSmlrYSBwZXJsYXdhbmFuIHJlZ2V4IGluaSwgdGlhZGEga2FqaWFuIHBlbGFuZ2dhbiBha2FuIGRpaGFudGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBzdXJ2ZXlzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIHN1cnZleSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlciB1bnR1ayBoYWxhbWFuIChkaSBtYW5hIGthamkgc2VsaWRpayBkaXR1bmp1a2thbikgZ2FtYmFyYW4ga2FqaWFuIGtlY2lsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgU3VydmV5Lid9ID0gJ1BlbnlpYXNhdGFuIGF3YW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnVWt1ciBUaW5qYXVhbiBIYWQgIktlY2lsIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgWm9vbSBNb2R1bGUuJ30gPSAnUGVueWlhc2F0YW4gWm9vbSBNb2R1bCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnSGFkIFBlbnlpYXNhdGFuIHNldGlhcCBoYWxhbWFuIHVudHVrIFRpbmphdWFuIFN1cnZleSAiS2VjaWwiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICdQZW5nZWNhbSB1bnR1ayBrYWppIHNlbGlkaWssIG1pc2FsbnlhIFBlbnlpYXNhdGFuICMgTXlTdXJ2ZXkgIy4gTGFsYWkgYWRhbGFoIFBlbnlpYXNhdGFuIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICdUaWtldCBtb2R1bCBhY2FyYSB1bnR1ayBtZW5naGFudGFyIHBlcm1pbnRhYW4gZS1tZWwgc2VjYXJhIGF1dG9tYXRpayBrYWppIHNlbGlkaWsga2VwYWRhIHBlbGFuZ2dhbiBqaWthIHRpa2V0IGRpdHV0dXAuJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgVGltZSd9ID0gJ1dha3R1IGJlcnViYWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0RpYnVhdCBPbGVoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgVGltZSd9ID0gJ1dha3R1IERpY2lwdGFrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBzdGFydGluZyBmcm9tIHRoZSBsYXRlc3QgY3VzdG9tZXIgc3VydmV5IGVtYWlsIGJldHdlZW4gbm8gY3VzdG9tZXIgc3VydmV5IGVtYWlsIGlzIHNlbnQsICggMCBtZWFucyBBbHdheXMgc2VuZCBpdCApIC4nfSA9CiAgICAgICAgJ0hhcmkgYmVybXVsYSBkYXJpIHBlbGFuZ2dhbiB0ZXJiYXJ1IGthamkgc2VsaWRpayBlLW1lbCBhbnRhcmEgdGlhZGEga2FqaWFuIHBlbGFuZ2dhbiBlLW1lbCBkaWhhbnRhciwgKDAgYmVybWFrbmEgU2VudGlhc2EgaGFudGFyKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cywgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBqdW1sYWggbWFrc2ltdW0ga2FqaSBzZWxpZGlrIHlhbmcgbWVuZGFwYXQgZGloYW50YXIga2VwYWRhIHBlbGFuZ2dhbiBzZXRpYXAgMzAgaGFyaSwgKDAgY2FyYSBtZW5naGFudGFyIHNlZ2VyYSBzZWxlcGFzIHBlbnV0dXBhbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHJ1YW5nYW4gbWVudW5qdWtrYW4gZGFsYW0gZ2FtYmFyYW4ga2FqaWFuLiBQaWxpaGFuIGluaSB0aWRhayBtZW1wdW55YWkga2VzYW4ga2UgYXRhcyBrZWR1ZHVrYW4gdGlhbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIG9uIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGFuIHNwZWNpZmljIHZvdGF0aW9uIHdoZW4gY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IGJ5IHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnRGF5YWthbiBhdGF1IG55YWhkYXlha2FuIFVuZGkgUGFwYXIgRGF0YSBza3JpbiBwYWRhIGFudGFyYSBtdWthIGF3YW0gdW50dWsgbWVudW5qdWtrYW4gZGF0YSBwdXRhcmFuIHRlcnRlbnR1IGFwYWJpbGEgcGVsYW5nZ2FuIGN1YmEgdW50dWsgbWVuamF3YWIga2FqaSBzZWxpZGlrIG9sZWgga2FsaSBrZWR1YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGUgbmV4dCBxdWVzdGlvbnMnfSA9ICdTaWxhIGphd2FiIHNvYWxhbiBzZXRlcnVzbnlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdQZW55aWFzYXRhbiMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCd9ID0gJ0JpZGFuZyBpbmkgZGlwZXJsdWthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgZXZlbnQgbW9kdWxlIHRvIHNlbmQgYXV0b21hdGljYWxseSBzdXJ2ZXkgZW1haWwgcmVxdWVzdHMgdG8gY3VzdG9tZXJzIGlmIGEgdGlja2V0IGdldHMgY2xvc2VkLid9ID0KICAgICAgICAnVGlrZXQgbW9kdWwgYWNhcmEgdW50dWsgbWVuZ2hhbnRhciBwZXJtaW50YWFuIGUtbWVsIHNlY2FyYSBhdXRvbWF0aWsga2FqaSBzZWxpZGlrIGtlcGFkYSBwZWxhbmdnYW4gamlrYSB0aWtldCBtZW5kYXBhdCBkaXR1dHVwLic7Cgp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9uYl9OT19TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBuYl9OT19TdXJ2ZXkucG0sdiAxLjkgMjAxMi8xMS8yMCAxOToxMTo0MyBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpuYl9OT19TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJ1JlZGlnZXIgc3DDuHJyZXVuZGVyc8O4a2Vsc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnUmVkaWdlciBzcMO4cnNtw6VsIHRpbCBzcMO4cnJldW5kZXJzw7hrZWxzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIE5vIHF1ZXN0aW9ucyBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICdTdGF0aXN0aWtrb3ZlcnNpa3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnTGFnIG55IHNww7hycmV1bmRlcnPDuGtlbHNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJ0ludHJvZHVrc2pvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJ0ludGVybiBiZXNrcml2ZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJ1JlZGlnZXIgZ2VuZXJlbGwgaW5mb3JtYXNqb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnR2VuZXJlbGwgaW5mb3JtYXNqb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICdUYWJlbGxmb3Jlc3DDuHJzZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnVGlkIHNlbmR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJ1RpZCBzdmFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnRGV0YWxqc3RhdGlzdGlrayBmb3Igc3DDuHJyZXVuZGVyc8O4a2Vsc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBzdGF0cyBvdmVydmlldyd9ID0gJ2fDpSB0aWxiYWtlIHRpbCBzdGF0aXN0aWtrb3ZlcnNpa3Rlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyBCYWNrJ30gPSAnR8OlIHRpbGJha2UnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICdSZWRpZ2VyIHNww7hyc23DpWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnTGVnZyB0aWwgc3DDuHJzbcOlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIHRoZSBxdWVzdGlvbid9ID0gJ1Nrcml2IGlubiBzcMO4cnNtw6VsZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJ1Nww7hyc23DpWwgdGlsIHNww7hycmV1bmRlcnPDuGtlbHNlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJ1Nww7hyc23DpWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICdJbmdlbiBzcMO4cnNtw6VsIGxhZ3JldCBmb3IgZGVubmUgc3DDuHJyZXVuZGVyc8O4a2Vsc2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnUmVkaWdlciBzcMO4cnNtw6VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAndGlsYmFrZSB0aWwgc3DDuHJzbcOlbGVuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJ011bGlnZSBzdmFyYWx0ZXJuYXRpdmVyIGZvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQW5zd2VyJ30gPSAnTGVnZyB0aWwgc3ZhcmFsdGVybmF0aXZlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGRvZXNuXCd0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnRGV0dGUgc3DDuHJzbcOlbGV0IGhhciBpa2tlIG11bGlnaGV0IGZvciBzdmFyYWx0ZXJuYXRpdmVyLiBIZXIgdmlsIGRldCBrdW4gYmxpIHZpc3QgZW4gdGVrc3Rib2tzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJ1JlZGlnZXIgc3Zhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICdnw6UgdGlsYmFrZSBmb3Igw6UgcmVkaWdlcmUgc3DDuHJzbcOlbCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXguIHNob3duIFN1cnZleXMgcGVyIHBhZ2UnfSA9ICdNYXggYW50YWxsIHNww7hycmV1bmRlcnPDuGtlbHNlciBwciBzaWRlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICdBdnNlbmRlciBhdiB2YXJzZWwtZS1wb3N0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnVGl0dGVsIGkgdmFyc2VsLWUtcG9zdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ01lbGRpbmcgaSB2YXJzZWwtZS1wb3N0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICdFbmRyZXQgYXYnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYXNqb24gb20gc3DDuHJyZXVuZGVyc8O4a2Vsc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICdTZW5kdGUgZm9yZXNww7hyc2xlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWNlaXZlZCBzdXJ2ZXlzJ30gPSAnTW90dGF0dGUgc3DDuHJyZXVuZGVyc8O4a2Vsc2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICdEZXRhbGplciBvbSBzdGF0aXN0aWtrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERldGFpbHMnfSA9ICdEZXRhbGplciBvbSBzcMO4cnJldW5kZXJzw7hrZWxzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFJlc3VsdHMgR3JhcGgnfSA9ICdHcmFmaXNrIGZyZW1zdGlsbGluZyBhdiBzdmFyZW5lIGkgc3DDuHJyZXVuZGVyc8O4a2Vsc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICdJbmdlbiByZXN1bHRhdGVyJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJ1Nww7hycmV1bmRlcnPDuGtlbHNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICdFbiBtb2R1bCBmb3Igc3DDuHJyZXVuZGVyc8O4a2Vsc2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbW9kdWxlIHRvIGVkaXQgc3VydmV5IHF1ZXN0aW9ucy4nfSA9ICdFbiBtb2R1bCBmb3Igw6UgcmVkaWdlcmUgc3DDuHJyZXVuZGVyc8O4a2Vsc2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Ftb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGJvZHkgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdTdGFuZGFyZCBtZWxkaW5nIGkgdmFyc2VsLWUtcG9zdCB0aWwga3VuZGVyIG9tIGVuIG55IHNww7hycmV1bmRlcnPDuGtlbHNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ1N0YW5kYXJkIGF2c2VuZGVyIGkgdmFyc2VsLWUtcG9zdCB0aWwga3VuZGVyIG9tIGVuIG55IHNww7hycmV1bmRlcnPDuGtlbHNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXlzIHdpbGwgbm90IGJlIHNlbnQgdG8gdGhlIGNvbmZpZ3VyZWQgZW1haWwgYWRkcmVzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3ViamVjdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ1N0YW5kYXJkIG92ZXJza3JpZnQgaSB2YXJzZWwtZS1wb3N0IHRpbCBrdW5kZXIgb20gZW4gbnkgc3DDuHJyZXVuZGVyc8O4a2Vsc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnSHZpcyBkZW5uZSByZWdleGVuIHN0ZW1tZXIsIHZpbCBkZXQgaWtrZSBibGkgc2VuZHQgdXQgZW4gc3DDuHJyZXVuZGVyc8O4a2Vsc2UgdGlsIGt1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICdTdGFuZGFyZCBpZGVudGlmaWthdG9yIGZvciBlbiB1bmRlcnPDuGtsc2UsIGYuZWtzLiBTcMO4cnJldW5kZXJzw7hrZWxzZSMsIE1pblNww7hycmV1bmRlcnPDuGtlbHNlIy4gU3RhbmRhcmQgZXIgU3VydmV5Iy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICcnOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBUaW1lJ30gPSAnVGlkIGVuZHJldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnT3BwcmV0dGV0IGF2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgVGltZSd9ID0gJ1RpZCBvcHByZXR0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGUgbmV4dCBxdWVzdGlvbnMnfSA9ICdWZW5ubGlnc3Qgc3ZhciBww6UgZGUgbmVzdGUgc3DDuHJzbcOlbGVuZSc7Cgp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9wdF9CUl9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBwdF9CUl9TdXJ2ZXkucG0sdiAxLjYgMjAxMi8xMS8yMCAxOToxMTo0NiBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpwdF9CUl9TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJy0gQWx0ZXJhciBTdGF0dXMgLSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJ0VkaXRhciBQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICdFZGl0YXIgUHJlZ3VudGFzIGRhIFBlc3F1aXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICdPYnJpZ2FkbyBwZWxhIHN1YSBwYXJ0aWNpcGHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICdBIHBlc3F1aXNhIGVzdMOhIGZpbmFsaXphZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbXBsZXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hlY2tib3ggKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvIChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyd9ID0gJ1Jlc3VtbyBkZSBFc3RhdMOtc3RpY2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJ0Rlc2NyacOnw6NvIGRhIFBlc3F1aXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1w6fDo28gZGEgUGVzcXVpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnUmVzcG9uZGlkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICdOw6NvIHJlc3BvbmRpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ0NyaWFyIE5vdmEgUGVzcXVpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50cm9kdWN0aW9uJ30gPSAnSW50cm9kdcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVybmFsIERlc2NyaXB0aW9uJ30gPSAnRGVzY3Jpw6fDo28gSW50ZXJuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJ0VkaXRhciBJbmZvcm1hw6fDtWVzIEdlcmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICdJbmZvcm1hw6fDo28gR2VyYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICdUYWJlbGEgZGUgUmVxdWlzacOnw7Vlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW5kIFRpbWUnfSA9ICdIb3JhIGRlIEVudmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJ0hvcmEgZG8gVm90byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnRGV0YWxoZXMgZGUgRXN0YXTDrXN0aWNhcyBkYSBQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAndm9sdGFyIGFvIHJlc3VtbyBkZSBlc3RhdMOtc3RpY2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICdWb2x0YXInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICdFZGl0YXIgUHJlZ3VudGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBRdWVzdGlvbid9ID0gJ0FkaWNpb25hciBQcmVndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIHRoZSBxdWVzdGlvbid9ID0gJ0VzY3JldmEgYSBwZXJndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUXVlc3Rpb25zJ30gPSAnUGVyZ3VudGFzIGRhIFBlc3F1aXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uJ30gPSAnUHJlZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICdOZW5odW1hIHF1ZXN0w6NvIHNhbHZhIHBhcmEgZXN0YSBwZXNxdWlzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0VkaXRhciBQcmVndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJ3ZvbHRhciDDoHMgcHJlZ3VudGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnUG9zc8OtdmVpcyBSZXNwb3N0YXMgUGFyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQW5zd2VyJ30gPSAnQWRpY2lvbmFyIFJlc3Bvc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZG9lc25cJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdFc3RhIHBlcmd1bnRhIG7Do28gcG9zc3VpIHbDoXJpYXMgcmVzcG9zdGFzLCB1bWEgw6FyZWEgZGUgdGV4dG8gc2Vyw6EgbW9zdHJhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICdFZGl0YXIgUmVzcG9zdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAndm9sdGFyIHBhcmEgZWRpdGFyIHBlcmd1bnRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIENvbnRleHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJ03DoXhpbW8gZGUgUGVzcXVpc2FzIG1vc3RyYWRhcyBwb3IgcMOhZ2luYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnUmVtZXRlbnRlIGRhIE5vdGlmaWNhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFN1YmplY3QnfSA9ICdBc3N1bnRvIGRhIE5vdGlmaWNhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEJvZHknfSA9ICdDb3JwbyBkYSBOb3RpZmljYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICdNb2RpZmljYWRvIHBvcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hw6fDo28gZGEgUGVzcXVpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJ1NvbGljaXRhw6fDtWVzIGVudmlhZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlY2VpdmVkIHN1cnZleXMnfSA9ICdTb2xpY2l0YcOnw7VlcyByZWNlYmlkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlscyd9ID0gJ0RldGFsaGVzIGRlIEVzdGF0w61zdGljYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERldGFpbHMnfSA9ICdEZXRhbGhlcyBkYSBQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJ0dyw6FmaWNvcyBkZSBSZXN1bHRhZG9zIGRhIFBlc3F1aXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICdTZW0gcmVzdWx0YWRvcyBkZSBlc3RhdMOtc3RpY2FzLic7CgogICAgIyBUZW1wbGF0ZTogUHVibGljU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXknfSA9ICdQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbW9kdWxlIHRvIGVkaXQgc3VydmV5IHF1ZXN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW1vdW50IG9mIGRheXMgYWZ0ZXIgc2VuZGluZyBhIHN1cnZleSBtYWlsIGluIHdoaWNoIG5vIG5ldyBzdXJ2ZXkgcmVxdWVzdHMgYXJlIHNlbnQgdG8gdGhlIHNhbWUgY3VzdG9tZXIuIFNlbGVjdGluZyAwIHdpbGwgYWx3YXlzIHNlbmQgdGhlIHN1cnZleSBtYWlsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgYm9keSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXlzIHdpbGwgbm90IGJlIHNlbnQgdG8gdGhlIGNvbmZpZ3VyZWQgZW1haWwgYWRkcmVzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3ViamVjdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBhbW91bnQgaW4gaG91cnMgYSB0aWNrZXQgaGFzIHRvIGJlIGNsb3NlZCB0byB0cmlnZ2VyIHRoZSBzZW5kaW5nIG9mIGEgc3VydmV5LCAoIDAgbWVhbnMgc2VuZCBpbW1lZGlhdGVseSBhZnRlciBjbG9zZSApLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciBSaWNodGV4dCB2aWV3cyBmb3IgU3VydmV5Wm9vbSBlbGVtZW50cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhIHNwZWNpZmljIHN1cnZleSByZXN1bHQgd2hlbiB0aGUgY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IHRoZSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyByZWdleCBtYXRjaGVzLCBubyBjdXN0b21lciBzdXJ2ZXkgd2lsbCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBzdXJ2ZXlzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIHN1cnZleSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgU3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgWm9vbSBNb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBsaW1pdCBwZXIgcGFnZSBmb3IgU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgc3VydmV5LCBlLmcuIFN1cnZleSMsIE15U3VydmV5Iy4gVGhlIGRlZmF1bHQgaXMgU3VydmV5Iy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgZXZlbnQgbW9kdWxlIHRvIHNlbmQgYXV0b21hdGljYWxseSBzdXJ2ZXkgZW1haWwgcmVxdWVzdHMgdG8gY3VzdG9tZXJzIGlmIGEgdGlja2V0IGlzIGNsb3NlZC4nfSA9CiAgICAgICAgJyc7CgogICAgIwogICAgIyBPQlNPTEVURSBFTlRSSUVTIEZPUiBSRUZFUkVOQ0UsIERPIE5PVCBUUkFOU0xBVEUhCiAgICAjCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIFRpbWUnfSA9ICdIb3JhIGRlIE1vZGlmaWNhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0NyaWFkbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBUaW1lJ30gPSAnSG9yYSBkZSBDcmnDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZSBuZXh0IHF1ZXN0aW9ucyd9ID0gJ1BvciBmYXZvciwgcmVzcG9uZGEgYXMgc2VndWludGVzIHBlcmd1bnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkjJ30gPSAnUGVzcXVpc2EjJzsKCn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9wdF9QVF9TdXJ2ZXkucG0gLSB0cmFuc2xhdGlvbiBmaWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIENvcHlyaWdodCAoQykgMjAxMiBGQ0NOIC0gUnVpIEZyYW5jaXNjbyA8cnVpLmZyYW5jaXNjb0BmY2NuLnB0PgojIC0tCiMgJElkOiBwdF9QVF9TdXJ2ZXkucG0sdiAxLjUgMjAxMi8xMS8yMCAxOToxMTo0NyBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpwdF9QVF9TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnQ3JpYXIgbm92byBpbnF1w6lyaXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJ0ludHJvZHXDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJ0Rlc2NyacOnw6NvIGludGVybmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdFZGl0YXIgaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICdJbmZvcm1hw6fDo28gZ2Vuw6lyaWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnVmlzdGEgZGUgZXN0YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RzIFRhYmxlJ30gPSAnVGFiZWxhIGRlIHBlZGlkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnSG9yYSBkZSBlbnZpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICdIb3JhIGRlIHJlc3Bvc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMnfSA9ICdEZXRhbGhlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJ07Do28gZXhpc3RlbSBwZXJndW50YXMgbm8gaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnRXN0YXTDrXN0aWNhIGRldGFsaGEgZG8gaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAndm9sdGFyIMOgIHZpc3RhIGRlIGVzdGF0w61zdGljYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJ3ZvbHRhcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICdFZGl0YXIgcGVyZ3VudGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBRdWVzdGlvbid9ID0gJ0FkaWNpb25hciBwZXJndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIHRoZSBxdWVzdGlvbid9ID0gJ0VzY3JldmVyIGEgcGVyZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJ1Blcmd1bnRhcyBkbyBpbnF1w6lyaXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uJ30gPSAnUGVyZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0VkaXRhciBwZXJndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJ3ZvbHRhciDDoHMgcGVyZ3VudGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnUmVzcG9zdGFzIHBvc3PDrXZlaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0FkaWNpb25hciByZXNwb3N0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGRvZXNuXCd0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJ07Do28gZXhpc3RlbSB2w6FyaWFzIHJlc3Bvc3RhcywgdmFpIHNlciBtb3N0cmFkYSB1bWEgw6FyZWEgZGUgdGV4dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICdFZGl0YXIgcmVzcG9zdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAndm9sdGFyIMOgIGVkacOnw6NvIGRhIHBlcmd1bnRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnRGVmaW5pw6fDtWVzIGRlIGNvbnRleHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJ07Dum1lcm8gZGUgaW5xdcOpcml0b3MgcG9yIHDDoWdpbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFNlbmRlcid9ID0gJ1JlbWV0ZW50ZSBkYSBub3RpZmljYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnQXNzdW50byBkYSBub3RpZmljYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnVGV4dG8gZGEgbm90aWZpY2HDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIFRpbWUnfSA9ICdDcmlhZG8gZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0NyaWFkbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBUaW1lJ30gPSAnTW9kaWZpY2FkbyBlbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnTW9kaWZpY2FkbyBwb3InOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYcOnw6NvIGRlIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJ1BlZGlkb3MgZW52aWFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJ0lucXXDqXJpdG9zIHJlc3BvbmRpZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgR2VuZXJhbCBJbmZvJ30gPSAnRWRpdGFyIGluZm9ybWHDp8OjbyBnZW7DqXJpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICdFZGl0YXIgcGVyZ3VudGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICdEZXRhbGhlcyBkZSBlc3RhdMOtc3RpY2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnRGV0YWxoZXMgZG8gaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJ0dyw6FmaWNvIGRlIHJlc3VsdGFkb3MgZG8gaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdGF0IHJlc3VsdHMuJ30gPSAnTsO6bWVybyBkZSByZXNwb3N0YXMnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnSW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZSBuZXh0IHF1ZXN0aW9ucyd9ID0gJ1BybyBmYXZvciwgcmVzcG9uZGEgw6BzIHNlZ3VpbnRlcyBwZXJndW50YXMnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnTcOzZHVsbyBkZSBpbnF1w6lyaXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnTcOzZHVsbyBwYXJhIGVkaXRhciBhcyBwZXJndW50YXMgZG9zIGlucXXDqXJpdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgc3RhcnRpbmcgZnJvbSB0aGUgbGF0ZXN0IGN1c3RvbWVyIHN1cnZleSBlbWFpbCBiZXR3ZWVuIG5vIGN1c3RvbWVyIHN1cnZleSBlbWFpbCBpcyBzZW50LCAoIDAgbWVhbnMgQWx3YXlzIHNlbmQgaXQgKSAuJ30gPSAnTsO6bWVybyBkZSBkaWFzIGVudHJlIGVudmlvIG5vdGlmaWNhw6fDtWVzIHBvciBjbGllbnRlLCAoMCBzaWduaWZpY2EgZW52aWFyIHNlbXByZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0gJ0NvcnBvIHBvciBvbWlzc8OjbyBkbyBlbWFpbCBkYSBub3RpZmljYcOnw6NvIGRlIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPSAnUmVtZXRlbnRlIHBvciBvbWlzc8OjbyBkbyBlbWFpbCBkYSBub3RpZmljYcOnw6NvIGRlIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPSAnQXNzdW50byBwb3Igb21pc3PDo28gZG8gZW1haWwgZGEgbm90aWZpY2HDp8OjbyBkZSBpbnF1w6lyaXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9ICdEZWZpbmUgYSB2aXN0YSBwZXF1ZW5hIGNvbSBhIGxpc3RhIGRlIGlucXXDqXJpdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9ICdEZWZpbmUgYXMgY29sdW5hcyBhIG1vc3RyYXIgbmEgdmlzdGEgZGUgaW5xdcOpcml0b3MuIE7Do28gaW50ZXJmZXJlIGNvbSBhIHBvc2nDp8OjbyBkYXMgY29sdW5hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ03Ds2R1bG8gZGUgYXV0byByZWdpc3RvIGRlIGlucXXDqXJpdG9zIGRlIGNsaWVudGUgbm8gaW50ZXJmYWNlIGRlIGFnZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgUHVibGljU3VydmV5IG9iamVjdCBpbiB0aGUgcHVibGljIFN1cnZleSBhcmVhLid9ID0gJ03Ds2R1bG8gZGUgYXV0byByZWdpc3RvIGRlIGlucXXDqXJpdG9zIGRlIGNsaWVudGUgbm8gaW50ZXJmYWNlIHDDumJsaWNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICdTZSBhIGV4cHJlc3PDo28gcmVndWxhciBjb2luY2lkaXIsIG7Do28gc2Vyw6EgZW52aWFkbyB1bSBpbnF1w6lyaXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBzdXJ2ZXlzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIHN1cnZleSBvdmVydmlldy4nfSA9ICdQYXJhbWV0cml6YcOnw6NvIGRhcyBww6FnaW5hcyBkYSB2aXN0YSBnZXJhbCBkZSBpbnF1w6lyaXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgU3VydmV5Lid9ID0gJ0lucXXDqXJpdG8gcMO6YmxpY28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdMaW1pdGUgcGVxdWVubyBuYSB2aXN0YSBkZSBpbnF1w6lyaXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICdNw7NkdWxvIGRlIGRldGFsaGUgZGUgaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnTsO6bWVybyBkZSBpbnF1w6lyaXRvcyBwb3IgcMOhZ2luYSBuYSB2aXN0YSBwZXF1ZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPSAnSWRlbnRpZmljYWRvciBwYXJhIG9zIGlucXXDqXJpdG9zLiBleC4gU3VydmV5IywgTXlTdXJ2ZXkjLiBQb3Igb21pc3PDo28gw6kgU3VydmV5IyAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBnZXRzIGNsb3NlZC4nfSA9ICdNw7NkdWxvIGRlIGVudmlvIGRlIG5vdGlmaWNhw6fDtWVzIGF1dG9tw6F0aWNhcyBwYXJhIGNsaWVudGVzIHF1YW5kbyB1bSB0aWNrZXQgw6kgZmVjaGFkbyc7CgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEludHJvZHVjdGlvbid9ID0gJ0ludHJvZHXDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGVzY3JpcHRpb24nfSA9ICdEZXNjcmnDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ30gPSAnQ2FtcG8gb2JyaWdhdMOzcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1w6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnRGVzY3Jpw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICdDb21wbGV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnSW5jb21wbGV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkjJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUnfSA9ICdWYWxvciBwb3Igb21pc3PDo28nOwoKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIG9uIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGFuIHNwZWNpZmljIHZvdGF0aW9uIHdoZW4gY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IGJ5IHNlY29uZCB0aW1lLid9ID0gJ0F0aXZhIG91IGluYXRpdmEgbyBlY3LDoyBTaG93Vm90ZURhdGEgbm8gaW50ZXJmYWNlIHDDumJsaWNvLCBxdWFuZG8gbyBjbGllbnRlIHRlbnRhIHJlc3BvbmRlciBhbyBpbnF1w6lyaXRvIHBlbGEgc2VndW5kYSB2ZXonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnVG9kb3Mgb3MgcGFyw6JtZXRyb3MgcGFyYSBvIG9iamV0byBJbnF1w6lyaXRvIG5vIGludGVyZmFjZSBkZSBhZ2VudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0gJ0RlZmluZSBhIGFsdHVyYSBwb3Igb21pc3PDo28gcGFyYSBvIGVkaXRvciBydGYgcGFyYSBvcyBlbGVtZW50b3MgZG8gaW5xdcOpcml0byc7CgogICAgIwogICAgIyBPQlNPTEVURSBFTlRSSUVTIEZPUiBSRUZFUkVOQ0UsIERPIE5PVCBUUkFOU0xBVEUhCiAgICAjCgp9CgoxOwo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vU3VydmV5LnBtIC0gYWxsIHN1cnZleSBmdW50aW9ucwojIENvcHlyaWdodCAoQykgMjAwMS0yMDEzIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy8KIyAtLQojICRJZDogU3VydmV5LnBtLHYgMS43NCAyMDEzLzA2LzI0IDE1OjA4OjU2IGpoIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgRGlnZXN0OjpNRDU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyOwp1c2UgS2VybmVsOjpTeXN0ZW06OkVtYWlsOwp1c2UgS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlsczsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ7CnVzZSBNYWlsOjpBZGRyZXNzOwoKdXNlIHZhcnMgcXcoQElTQSAkVkVSU0lPTik7CiRWRVJTSU9OID0gcXcoJFJldmlzaW9uOiAxLjc0ICQpIFsxXTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6U3VydmV5IC0gc3VydmV5IGxpYgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgc3VydmV5IGZ1bmN0aW9ucy4gRS4gZy4gdG8gYWRkIHN1cnZleSBvciBhbmQgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VGltZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6REI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlN1cnZleTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRUaW1lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJERCT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkRCLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRVc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVzZXItPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFN1cnZleU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXktPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgVXNlck9iamVjdCAgID0+ICRVc2VyT2JqZWN0LAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKAogICAgICAgIHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgVGltZU9iamVjdCBEQk9iamVjdCBNYWluT2JqZWN0IEVuY29kZU9iamVjdCBVc2VyT2JqZWN0KQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0gPSAkUGFyYW17SFRNTFV0aWxzT2JqZWN0fQogICAgICAgIHx8IEtlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMtPm5ldyggJXskU2VsZn0gKTsKCiAgICAkU2VsZi0+e1NlbmRtYWlsT2JqZWN0fSA9ICRQYXJhbXtTZW5kbWFpbE9iamVjdH0gfHwgS2VybmVsOjpTeXN0ZW06OkVtYWlsLT5uZXcoICV7JFNlbGZ9ICk7CgogICAgJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9ID0gJFBhcmFte0N1c3RvbWVyVXNlck9iamVjdH0KICAgICAgICB8fCBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0gPSAkUGFyYW17VGlja2V0T2JqZWN0fSB8fCBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoICV7JFNlbGZ9ICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBTdXJ2ZXlMaXN0KCkKCnRvIGdldCBhIGFycmF5IGxpc3Qgb2YgYWxsIHN1cnZleSBpdGVtcwoKICAgIG15IEBMaXN0ID0gJFN1cnZleU9iamVjdC0+U3VydmV5TGlzdCgpOwoKPWN1dAoKc3ViIFN1cnZleUxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBzdXJ2ZXkgbGlzdAogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgRlJPTSBzdXJ2ZXkgT1JERVIgQlkgY3JlYXRlX3RpbWUgREVTQycsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdHMKICAgIG15IEBMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBMaXN0LCAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBATGlzdDsKfQoKPWl0ZW0gU3VydmV5R2V0KCkKCnRvIGdldCBhbGwgYXR0cmlidXRlcyBvZiBhIHN1cnZleQoKICAgIG15ICVTdXJ2ZXkgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlHZXQoCiAgICAgICAgU3VydmV5SUQgPT4gMTIzCiAgICApOwoKPWN1dAoKc3ViIFN1cnZleUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17U3VydmV5SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBTdXJ2ZXlJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtTdXJ2ZXlJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtTdXJ2ZXlJRH0sICdJbnRlZ2VyJyApOwoKICAgICMgZ2V0IGFsbCBhdHRyaWJ1dGVzIG9mIGEgc3VydmV5CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgc3VydmV5bnVtYmVyLCB0aXRsZSwgaW50cm9kdWN0aW9uLCBkZXNjcmlwdGlvbiwiCiAgICAgICAgICAgIC4gIiBub3RpZmljYXRpb25fc2VuZGVyLCBub3RpZmljYXRpb25fc3ViamVjdCwgbm90aWZpY2F0aW9uX2JvZHksICIKICAgICAgICAgICAgLiAiIHN0YXR1cywgY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSAiCiAgICAgICAgICAgIC4gIiBGUk9NIHN1cnZleSBXSEVSRSBpZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRhe1N1cnZleUlEfSAgICAgICAgICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtTdXJ2ZXlOdW1iZXJ9ICAgICAgICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7VGl0bGV9ICAgICAgICAgICAgICAgPSAkUm93WzJdOwogICAgICAgICREYXRhe0ludHJvZHVjdGlvbn0gICAgICAgID0gJFJvd1szXTsKICAgICAgICAkRGF0YXtEZXNjcmlwdGlvbn0gICAgICAgICA9ICRSb3dbNF07CiAgICAgICAgJERhdGF7Tm90aWZpY2F0aW9uU2VuZGVyfSAgPSAkUm93WzVdOwogICAgICAgICREYXRhe05vdGlmaWNhdGlvblN1YmplY3R9ID0gJFJvd1s2XTsKICAgICAgICAkRGF0YXtOb3RpZmljYXRpb25Cb2R5fSAgICA9ICRSb3dbN107CiAgICAgICAgJERhdGF7U3RhdHVzfSAgICAgICAgICAgICAgPSAkUm93WzhdOwogICAgICAgICREYXRhe0NyZWF0ZVRpbWV9ICAgICAgICAgID0gJFJvd1s5XTsKICAgICAgICAkRGF0YXtDcmVhdGVCeX0gICAgICAgICAgICA9ICRSb3dbMTBdOwogICAgICAgICREYXRhe0NoYW5nZVRpbWV9ICAgICAgICAgID0gJFJvd1sxMV07CiAgICAgICAgJERhdGF7Q2hhbmdlQnl9ICAgICAgICAgICAgPSAkUm93WzEyXTsKICAgIH0KCiAgICBpZiAoICElRGF0YSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIHN1Y2ggU3VydmV5SUQgJFBhcmFte1N1cnZleUlEfSEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgdmFsdWVzCiAgICAkRGF0YXtOb3RpZmljYXRpb25TZW5kZXJ9ICB8fD0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6Tm90aWZpY2F0aW9uU2VuZGVyJyk7CiAgICAkRGF0YXtOb3RpZmljYXRpb25TdWJqZWN0fSB8fD0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6Tm90aWZpY2F0aW9uU3ViamVjdCcpOwogICAgJERhdGF7Tm90aWZpY2F0aW9uQm9keX0gICAgfHw9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6Ok5vdGlmaWNhdGlvbkJvZHknKTsKCiAgICAjIGdldCBxdWV1ZXMKICAgICREYXRhe1F1ZXVlc30gPSAkU2VsZi0+U3VydmV5UXVldWVHZXQoCiAgICAgICAgU3VydmV5SUQgPT4gJFBhcmFte1N1cnZleUlEfSwKICAgICk7CgogICAgIyBhZGRlZCBDcmVhdGVCeQogICAgaWYgKCAhJFBhcmFte1B1YmxpY30gKSB7CiAgICAgICAgbXkgJUNyZWF0ZVVzZXJJbmZvID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkRGF0YXtDcmVhdGVCeX0sCiAgICAgICAgICAgIENhY2hlZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJERhdGF7Q3JlYXRlVXNlckxvZ2lufSAgICAgPSAkQ3JlYXRlVXNlckluZm97VXNlckxvZ2lufTsKICAgICAgICAkRGF0YXtDcmVhdGVVc2VyRmlyc3RuYW1lfSA9ICRDcmVhdGVVc2VySW5mb3tVc2VyRmlyc3RuYW1lfTsKICAgICAgICAkRGF0YXtDcmVhdGVVc2VyTGFzdG5hbWV9ICA9ICRDcmVhdGVVc2VySW5mb3tVc2VyTGFzdG5hbWV9OwoKICAgICAgICAjIGFkZGVkIENoYW5nZUJ5CiAgICAgICAgbXkgJUNoYW5nZVVzZXJJbmZvID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkRGF0YXtDaGFuZ2VCeX0sCiAgICAgICAgICAgIENhY2hlZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJERhdGF7Q2hhbmdlVXNlckxvZ2lufSAgICAgPSAkQ2hhbmdlVXNlckluZm97VXNlckxvZ2lufTsKICAgICAgICAkRGF0YXtDaGFuZ2VVc2VyRmlyc3RuYW1lfSA9ICRDaGFuZ2VVc2VySW5mb3tVc2VyRmlyc3RuYW1lfTsKICAgICAgICAkRGF0YXtDaGFuZ2VVc2VyTGFzdG5hbWV9ICA9ICRDaGFuZ2VVc2VySW5mb3tVc2VyTGFzdG5hbWV9OwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gU3VydmV5U3RhdHVzU2V0KCkKCnRvIHNldCBhIG5ldyBzdXJ2ZXkgc3RhdHVzIChWYWxpZCwgSW52YWxpZCwgTWFzdGVyKQoKICAgICRTdGF0dXNTZXQgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlTdGF0dXNTZXQoCiAgICAgICAgU3VydmV5SUQgID0+IDEyMywKICAgICAgICBOZXdTdGF0dXMgPT4gJ01hc3RlcicKICAgICk7Cgo9Y3V0CgpzdWIgU3VydmV5U3RhdHVzU2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIE5ld1N0YXR1cykpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte05ld1N0YXR1c30gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtOZXdTdGF0dXN9ICk7CiAgICAkUGFyYW17U3VydmV5SUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17U3VydmV5SUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCBjdXJyZW50IHN0YXR1cwogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gIlNFTEVDVCBzdGF0dXMgRlJPTSBzdXJ2ZXkgV0hFUkUgaWQgPSAkUGFyYW17U3VydmV5SUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRTdGF0dXMgPSAnJzsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFN0YXR1cyA9ICRSb3dbMF07CiAgICB9CgogICAgIyB0aGUgY3VyZW50IHN0YXR1cwogICAgaWYgKCAkU3RhdHVzIGVxICdOZXcnIHx8ICRTdGF0dXMgZXEgJ0ludmFsaWQnICkgewoKICAgICAgICAjIGdldCB0aGUgcXVlc3Rpb24gaWRzCiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgID0+ICJTRUxFQ1QgaWQgRlJPTSBzdXJ2ZXlfcXVlc3Rpb24gV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSIsCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICAgICAgbXkgJFF1ZXN0OwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRRdWVzdCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJ05vUXVlc3Rpb24nIGlmICEkUXVlc3Q7CgogICAgICAgICMgZ2V0IGFsbCBxdWVzdGlvbnMgKHR5cGUgcmFkaW8gYW5kIGNoZWNrYm94KQogICAgICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleV9xdWVzdGlvbiIKICAgICAgICAgICAgICAgIC4gIiBXSEVSRSBzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IEFORCAiCiAgICAgICAgICAgICAgICAuICIocXVlc3Rpb25fdHlwZSA9ICdSYWRpbycgT1IgcXVlc3Rpb25fdHlwZSA9ICdDaGVja2JveCcpIiwKICAgICAgICApOwoKICAgICAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgICAgICBteSBAUXVlc3Rpb25JRHM7CiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgcHVzaCggQFF1ZXN0aW9uSURzLCAkUm93WzBdICk7CiAgICAgICAgfQogICAgICAgIGZvciBteSAkT25lSUQgKEBRdWVzdGlvbklEcykgewoKICAgICAgICAgICAgIyBnZXQgYWxsIGFuc3dlciBpZHMgb2YgYSBxdWVzdGlvbgogICAgICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICAgICAgICAgIFNRTCAgID0+ICJTRUxFQ1QgQ09VTlQoaWQpIEZST00gc3VydmV5X2Fuc3dlciBXSEVSRSBxdWVzdGlvbl9pZCA9ICRPbmVJRCIsCiAgICAgICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICAgICAgICAgIG15ICRDb3VudGVyOwogICAgICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAgICAgJENvdW50ZXIgPSAkUm93WzBdOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJ0luY29tcGxldGVRdWVzdGlvbicgaWYgJENvdW50ZXIgPCAyOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgbmV3IHN0YXR1cwogICAgICAgIGlmICggJFBhcmFte05ld1N0YXR1c30gZXEgJ01hc3RlcicgKSB7CiAgICAgICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleSBTRVQgc3RhdHVzID0gJ1ZhbGlkJyBXSEVSRSBzdGF0dXMgPSAnTWFzdGVyJyIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte05ld1N0YXR1c30gZXEgJ1ZhbGlkJyB8fCAkUGFyYW17TmV3U3RhdHVzfSBlcSAnTWFzdGVyJyApIHsKICAgICAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgICAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5IFNFVCBzdGF0dXMgPSAnJFBhcmFte05ld1N0YXR1c30nICIKICAgICAgICAgICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJ1N0YXR1c1NldCc7CiAgICAgICAgfQogICAgfQogICAgZWxzaWYgKCAkU3RhdHVzIGVxICdWYWxpZCcgKSB7CgogICAgICAgICMgc2V0IHN0YXR1cyBNYXN0ZXIKICAgICAgICBpZiAoICRQYXJhbXtOZXdTdGF0dXN9IGVxICdNYXN0ZXInICkgewogICAgICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXkgU0VUIHN0YXR1cyA9ICdWYWxpZCcgV0hFUkUgc3RhdHVzID0gJ01hc3RlciciLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXkgU0VUIHN0YXR1cyA9ICdNYXN0ZXInIFdIRVJFIGlkID0gJFBhcmFte1N1cnZleUlEfSIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAnU3RhdHVzU2V0JzsKICAgICAgICB9CgogICAgICAgICMgc2V0IHN0YXR1cyBJbnZhbGlkCiAgICAgICAgZWxzaWYgKCAkUGFyYW17TmV3U3RhdHVzfSBlcSAnSW52YWxpZCcgKSB7CiAgICAgICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleSBTRVQgc3RhdHVzID0gJ0ludmFsaWQnIFdIRVJFIGlkID0gJFBhcmFte1N1cnZleUlEfSIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAnU3RhdHVzU2V0JzsKICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICRTdGF0dXMgZXEgJ01hc3RlcicgKSB7CgogICAgICAgICMgc2V0IHN0YXR1cyBWYWxpZAogICAgICAgIGlmICggJFBhcmFte05ld1N0YXR1c30gZXEgJ1ZhbGlkJyB8fCAkUGFyYW17TmV3U3RhdHVzfSBlcSAnSW52YWxpZCcgKSB7CiAgICAgICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleSBTRVQgc3RhdHVzID0gJyRQYXJhbXtOZXdTdGF0dXN9JyAiCiAgICAgICAgICAgICAgICAgICAgLiAiV0hFUkUgaWQgPSAkUGFyYW17U3VydmV5SUR9IiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICdTdGF0dXNTZXQnOwogICAgICAgIH0KICAgIH0KfQoKPWl0ZW0gU3VydmV5U2F2ZSgpCgp0byB1cGRhdGUgYW4gZXhpc3Rpbmcgc3VydmV5CgogICAgJFN1cnZleU9iamVjdC0+U3VydmV5U2F2ZSgKICAgICAgICBVc2VySUQgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgU3VydmV5SUQgICAgICAgICAgICA9PiA0LAogICAgICAgIFRpdGxlICAgICAgICAgICAgICAgPT4gJ0EgVGl0bGUnLAogICAgICAgIEludHJvZHVjdGlvbiAgICAgICAgPT4gJ1RoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIHN1cnZleScsCiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICA9PiAnVGhlIGludGVybmFsIGRlc2NyaXB0aW9uIG9mIHRoZSBzdXJ2ZXknLAogICAgICAgIE5vdGlmaWNhdGlvblNlbmRlciAgPT4gJ3F1YWxpdHlAZXhhbXBsZS5jb20nLAogICAgICAgIE5vdGlmaWNhdGlvblN1YmplY3QgPT4gJ0hlbHAgdXMgd2l0aCB5b3VyIGZlZWRiYWNrIScsCiAgICAgICAgTm90aWZpY2F0aW9uQm9keSAgICA9PiAnRGVhciBjdXN0b21lci4uLicsCiAgICAgICAgUXVldWVzICAgICAgICAgICAgICA9PiBbMiwgNSwgOV0sICAjIChvcHRpb25hbCkgc3VydmV5IGlzIHZhbGlkIGZvciB0aGVzZSBxdWV1ZXMKICAgICk7Cgo9Y3V0CgpzdWIgU3VydmV5U2F2ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50ICgKICAgICAgICBxdygKICAgICAgICBVc2VySUQgU3VydmV5SUQgVGl0bGUgSW50cm9kdWN0aW9uIERlc2NyaXB0aW9uCiAgICAgICAgTm90aWZpY2F0aW9uU2VuZGVyIE5vdGlmaWNhdGlvblN1YmplY3QgTm90aWZpY2F0aW9uQm9keQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgcXVldWVzCiAgICBpZiAoICRQYXJhbXtRdWV1ZXN9ICYmIHJlZiAkUGFyYW17UXVldWVzfSBuZSAnQVJSQVknICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnUXVldWVzIG11c3QgYmUgYW4gYXJyYXkgcmVmZXJlbmNlLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZQogICAgJFBhcmFte1F1ZXVlc30gfHw9IFtdOwoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKAogICAgICAgIHF3KAogICAgICAgIFRpdGxlIEludHJvZHVjdGlvbiBEZXNjcmlwdGlvbgogICAgICAgIE5vdGlmaWNhdGlvblNlbmRlciBOb3RpZmljYXRpb25TdWJqZWN0IE5vdGlmaWNhdGlvbkJvZHkKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSApOwogICAgfQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFN1cnZleUlEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgIyB1cGRhdGUgdGhlIHN1cnZleQogICAgcmV0dXJuIGlmICEkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5IFNFVCAiCiAgICAgICAgICAgIC4gInRpdGxlID0gJyRQYXJhbXtUaXRsZX0nLCAiCiAgICAgICAgICAgIC4gImludHJvZHVjdGlvbiA9ICckUGFyYW17SW50cm9kdWN0aW9ufScsICIKICAgICAgICAgICAgLiAiZGVzY3JpcHRpb24gPSAnJFBhcmFte0Rlc2NyaXB0aW9ufScsICIKICAgICAgICAgICAgLiAibm90aWZpY2F0aW9uX3NlbmRlciA9ICckUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfScsICIKICAgICAgICAgICAgLiAibm90aWZpY2F0aW9uX3N1YmplY3QgPSAnJFBhcmFte05vdGlmaWNhdGlvblN1YmplY3R9JywgIgogICAgICAgICAgICAuICJub3RpZmljYXRpb25fYm9keSA9ICckUGFyYW17Tm90aWZpY2F0aW9uQm9keX0nLCAiCiAgICAgICAgICAgIC4gImNoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiY2hhbmdlX2J5ID0gJFBhcmFte1VzZXJJRH0gIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgKTsKCiAgICAjIGluc2VydCBuZXcgc3VydmV5LXF1ZXVlIHJlbGF0aW9ucwogICAgcmV0dXJuICRTZWxmLT5TdXJ2ZXlRdWV1ZVNhdmUoCiAgICAgICAgU3VydmV5SUQgPT4gJFBhcmFte1N1cnZleUlEfSwKICAgICAgICBRdWV1ZUlEcyA9PiAkUGFyYW17UXVldWVzfSwKICAgICk7Cn0KCj1pdGVtIFN1cnZleU5ldygpCgp0byBhZGQgYSBuZXcgc3VydmV5CgogICAgbXkgJFN1cnZleUlEID0gJFN1cnZleU9iamVjdC0+U3VydmV5TmV3KAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgPT4gMSwKICAgICAgICBUaXRsZSAgICAgICAgICAgICAgID0+ICdBIFRpdGxlJywKICAgICAgICBJbnRyb2R1Y3Rpb24gICAgICAgID0+ICdUaGUgaW50cm9kdWN0aW9uIG9mIHRoZSBzdXJ2ZXknLAogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgPT4gJ1RoZSBpbnRlcm5hbCBkZXNjcmlwdGlvbiBvZiB0aGUgc3VydmV5JywKICAgICAgICBOb3RpZmljYXRpb25TZW5kZXIgID0+ICdxdWFsaXR5QGV4YW1wbGUuY29tJywKICAgICAgICBOb3RpZmljYXRpb25TdWJqZWN0ID0+ICdIZWxwIHVzIHdpdGggeW91ciBmZWVkYmFjayEnLAogICAgICAgIE5vdGlmaWNhdGlvbkJvZHkgICAgPT4gJ0RlYXIgY3VzdG9tZXIuLi4nLAogICAgICAgIFF1ZXVlcyAgICAgICAgICAgICAgPT4gWzIsIDUsIDldLCAgIyAob3B0aW9uYWwpIHN1cnZleSBpcyB2YWxpZCBmb3IgdGhlc2UgcXVldWVzCiAgICApOwoKPWN1dAoKc3ViIFN1cnZleU5ldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50ICgKICAgICAgICBxdygKICAgICAgICBVc2VySUQgVGl0bGUgSW50cm9kdWN0aW9uIERlc2NyaXB0aW9uCiAgICAgICAgTm90aWZpY2F0aW9uU2VuZGVyIE5vdGlmaWNhdGlvblN1YmplY3QgTm90aWZpY2F0aW9uQm9keQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKAogICAgICAgIHF3KAogICAgICAgIFRpdGxlIEludHJvZHVjdGlvbiBEZXNjcmlwdGlvbgogICAgICAgIE5vdGlmaWNhdGlvblNlbmRlciBOb3RpZmljYXRpb25TdWJqZWN0IE5vdGlmaWNhdGlvbkJvZHkKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSApOwogICAgfQogICAgJFBhcmFte1VzZXJJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtVc2VySUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGluc2VydCBhIG5ldyBzdXJ2ZXkKICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIHN1cnZleSAodGl0bGUsIGludHJvZHVjdGlvbiwgZGVzY3JpcHRpb24sIgogICAgICAgICAgICAuICIgbm90aWZpY2F0aW9uX3NlbmRlciwgbm90aWZpY2F0aW9uX3N1YmplY3QsIG5vdGlmaWNhdGlvbl9ib2R5LCIKICAgICAgICAgICAgLiAiIHN0YXR1cywgY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSIKICAgICAgICAgICAgLiAiKSBWQUxVRVMgKCIKICAgICAgICAgICAgLiAiJyRQYXJhbXtUaXRsZX0nLCAiCiAgICAgICAgICAgIC4gIickUGFyYW17SW50cm9kdWN0aW9ufScsICIKICAgICAgICAgICAgLiAiJyRQYXJhbXtEZXNjcmlwdGlvbn0nLCAiCiAgICAgICAgICAgIC4gIickUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfScsICIKICAgICAgICAgICAgLiAiJyRQYXJhbXtOb3RpZmljYXRpb25TdWJqZWN0fScsICIKICAgICAgICAgICAgLiAiJyRQYXJhbXtOb3RpZmljYXRpb25Cb2R5fScsICIKICAgICAgICAgICAgLiAiJ05ldycsICIKICAgICAgICAgICAgLiAiY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiJFBhcmFte1VzZXJJRH0sICIKICAgICAgICAgICAgLiAiY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiJFBhcmFte1VzZXJJRH0pIiwKICAgICk7CgogICAgIyBnZXQgdGhlIGlkIG9mIHRoZSBzdXJ2ZXkKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkIEZST00gc3VydmV5IFdIRVJFICIKICAgICAgICAgICAgLiAidGl0bGUgPSAnJFBhcmFte1RpdGxlfScgQU5EICIKICAgICAgICAgICAgLiAiaW50cm9kdWN0aW9uID0gJyRQYXJhbXtJbnRyb2R1Y3Rpb259JyBBTkQgIgogICAgICAgICAgICAuICJkZXNjcmlwdGlvbiA9ICckUGFyYW17RGVzY3JpcHRpb259JyAiCiAgICAgICAgICAgIC4gIk9SREVSIEJZIGlkIERFU0MiLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFN1cnZleUlEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkU3VydmV5SUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgc2V0IHRoZSBzdXJ2ZXkgbnVtYmVyCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5IFNFVCAiCiAgICAgICAgICAgIC4gInN1cnZleW51bWJlciA9ICciCiAgICAgICAgICAgIC4gKCAkU3VydmV5SUQgKyAxMDAwMCApIC4gIicgIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRTdXJ2ZXlJRCIKICAgICk7CgogICAgcmV0dXJuICRTdXJ2ZXlJRCBpZiAhJFBhcmFte1F1ZXVlc307CiAgICByZXR1cm4gJFN1cnZleUlEIGlmIHJlZiAkUGFyYW17UXVldWVzfSBuZSAnQVJSQVknOwoKICAgICMgaW5zZXJ0IG5ldyBzdXJ2ZXktcXVldWUgcmVsYXRpb25zCiAgICAkU2VsZi0+U3VydmV5UXVldWVTYXZlKAogICAgICAgIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCwKICAgICAgICBRdWV1ZUlEcyA9PiAkUGFyYW17UXVldWVzfSwKICAgICk7CgogICAgcmV0dXJuICRTdXJ2ZXlJRDsKfQoKPWl0ZW0gUXVlc3Rpb25MaXN0KCkKCnRvIGdldCBhIGFycmF5IGxpc3Qgb2YgYWxsIHF1ZXN0aW9uIGl0ZW1zCgogICAgbXkgQExpc3QgPSAkU3VydmV5T2JqZWN0LT5RdWVzdGlvbkxpc3QoCiAgICAgICAgU3VydmV5SUQgPT4gMQogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvbkxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1N1cnZleUlEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgU3VydmV5SUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17U3VydmV5SUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17U3VydmV5SUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCBhbGwgcXVlc3Rpb25zIG9mIGEgc3VydmV5CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgc3VydmV5X2lkLCBxdWVzdGlvbiwgcXVlc3Rpb25fdHlwZSwgYW5zd2VyX3JlcXVpcmVkIgogICAgICAgICAgICAuICIgRlJPTSBzdXJ2ZXlfcXVlc3Rpb24gV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSBPUkRFUiBCWSBwb3NpdGlvbiIsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQExpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICVEYXRhOwogICAgICAgICREYXRhe1F1ZXN0aW9uSUR9ICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7U3VydmV5SUR9ICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtRdWVzdGlvbn0gICAgICAgPSAkUm93WzJdOwogICAgICAgICREYXRhe1R5cGV9ICAgICAgICAgICA9ICRSb3dbM107CiAgICAgICAgJERhdGF7QW5zd2VyUmVxdWlyZWR9ID0gJFJvd1s0XSB8fCAwOwoKICAgICAgICBwdXNoIEBMaXN0LCBcJURhdGE7CiAgICB9CgogICAgcmV0dXJuIEBMaXN0Owp9Cgo9aXRlbSBRdWVzdGlvbkFkZCgpCgp0byBhZGQgYSBuZXcgcXVlc3Rpb24gdG8gYSBzdXJ2ZXkKCiAgICAkU3VydmV5T2JqZWN0LT5RdWVzdGlvbkFkZCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICBTdXJ2ZXlJRCA9PiAxMCwKICAgICAgICBRdWVzdGlvbiA9PiAnVGhlIFF1ZXN0aW9uJywKICAgICAgICBBbnN3ZXJSZXF1aXJlZCA9PiAxLCAjIG9yIDAKICAgICAgICBUeXBlID0+ICdSYWRpbycsCiAgICApOwoKPWN1dAoKc3ViIFF1ZXN0aW9uQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBTdXJ2ZXlJRCBRdWVzdGlvbiBUeXBlKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFF1ZXN0aW9uIFR5cGUpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9ICk7CiAgICB9CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgU3VydmV5SUQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9LCAnSW50ZWdlcicgKTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRQYXJhbXtRdWVzdGlvbn07CgogICAgIyBpbnNlcnQgYSBuZXcgcXVlc3Rpb24KICAgICMgaWYgd2UgZGlkbid0IGdldCBhbiBBbnN3ZXIgUGFyYW1ldGVyIChlLmcuIGp1c3QgdW5kZWZpbmVkKQogICAgIyBvciBpdCB3YXMgc29tZXRoaW5nIGVsc2UgdGhhbiAwIG9yIDEKICAgICMgd2UgYXNzdW1lIGl0J3MgYSByZXF1aXJlZCBhbnN3ZXIKICAgIGlmICgKICAgICAgICAhZGVmaW5lZCAkUGFyYW17QW5zd2VyUmVxdWlyZWR9CiAgICAgICAgfHwKICAgICAgICAoICRQYXJhbXtBbnN3ZXJSZXF1aXJlZH0gbmUgJzAnICYmICRQYXJhbXtBbnN3ZXJSZXF1aXJlZH0gbmUgJzEnICkKICAgICAgICApCiAgICB7CiAgICAgICAgJFBhcmFte0Fuc3dlclJlcXVpcmVkfSA9IDE7CiAgICB9CiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gc3VydmV5X3F1ZXN0aW9uIChzdXJ2ZXlfaWQsIHF1ZXN0aW9uLCBxdWVzdGlvbl90eXBlLCAiCiAgICAgICAgICAgIC4gInBvc2l0aW9uLCBhbnN3ZXJfcmVxdWlyZWQsIGNyZWF0ZV90aW1lLCBjcmVhdGVfYnksIGNoYW5nZV90aW1lLCBjaGFuZ2VfYnkpIFZBTFVFUyAoIgogICAgICAgICAgICAuICIkUGFyYW17U3VydmV5SUR9LCAiCiAgICAgICAgICAgIC4gIickUGFyYW17UXVlc3Rpb259JywgIgogICAgICAgICAgICAuICInJFBhcmFte1R5cGV9JywgMjU1LCAiCiAgICAgICAgICAgIC4gIickUGFyYW17QW5zd2VyUmVxdWlyZWR9JywiCiAgICAgICAgICAgIC4gImN1cnJlbnRfdGltZXN0YW1wLCAiCiAgICAgICAgICAgIC4gIiRQYXJhbXtVc2VySUR9LCAiCiAgICAgICAgICAgIC4gImN1cnJlbnRfdGltZXN0YW1wLCAiCiAgICAgICAgICAgIC4gIiRQYXJhbXtVc2VySUR9KSIsCiAgICApOwp9Cgo9aXRlbSBRdWVzdGlvbkRlbGV0ZSgpCgp0byBkZWxldGUgYSBxdWVzdGlvbiBmcm9tIGEgc3VydmV5CgogICAgJFN1cnZleU9iamVjdC0+UXVlc3Rpb25EZWxldGUoCiAgICAgICAgU3VydmV5SUQgPT4gMSwKICAgICAgICBRdWVzdGlvbklEID0+IDEwLAogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvbkRlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTdXJ2ZXlJRCBRdWVzdGlvbklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTdXJ2ZXlJRCBRdWVzdGlvbklEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgIyBkZWxldGUgYWxsIGFuc3dlcnMgb2YgYSBxdWVzdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiREVMRVRFIEZST00gc3VydmV5X2Fuc3dlciBXSEVSRSBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSIsCiAgICApOwoKICAgICMgZGVsZXRlIHRoZSBxdWVzdGlvbgogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIkRFTEVURSBGUk9NIHN1cnZleV9xdWVzdGlvbiBXSEVSRSAiCiAgICAgICAgICAgIC4gImlkID0gJFBhcmFte1F1ZXN0aW9uSUR9IEFORCAiCiAgICAgICAgICAgIC4gInN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgKTsKfQoKPWl0ZW0gUXVlc3Rpb25Tb3J0KCkKCnRvIHNvcnQgYWxsIHF1ZXN0aW9ucyBmcm9tIGEgc3VydmV5CgogICAgJFN1cnZleU9iamVjdC0+UXVlc3Rpb25Tb3J0KAogICAgICAgIFN1cnZleUlEID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFF1ZXN0aW9uU29ydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17U3VydmV5SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBTdXJ2ZXlJRCEnCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1N1cnZleUlEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1N1cnZleUlEfSwgJ0ludGVnZXInICk7CgogICAgIyBnZXQgYWxsIHF1ZXN0aW9uIG9mIGEgc3VydmV5IChzb3J0ZWQgYnkgcG9zaXRpb24pCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleV9xdWVzdGlvbiIKICAgICAgICAgICAgLiAiIFdIRVJFIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0gT1JERVIgQlkgcG9zaXRpb24iLAogICAgKTsKCiAgICBteSBATGlzdDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgcHVzaCBATGlzdCwgJFJvd1swXTsKICAgIH0KCiAgICBteSAkQ291bnRlciA9IDE7CiAgICBmb3IgbXkgJFF1ZXN0aW9uSUQgKEBMaXN0KSB7CiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfcXVlc3Rpb24gU0VUIHBvc2l0aW9uID0gJENvdW50ZXIgV0hFUkUgaWQgPSAkUXVlc3Rpb25JRCIsCiAgICAgICAgKTsKICAgIH0KICAgIGNvbnRpbnVlIHsKICAgICAgICAkQ291bnRlcisrOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBRdWVzdGlvblVwKCkKCnRvIG1vdmUgYSBxdWVzdGlvbiB1cAoKICAgICRTdXJ2ZXlPYmplY3QtPlF1ZXN0aW9uVXAoCiAgICAgICAgU3VydmV5SUQgPT4gMSwKICAgICAgICBRdWVzdGlvbklEID0+IDQsCiAgICApOwoKPWN1dAoKc3ViIFF1ZXN0aW9uVXAgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3VydmV5SUQgUXVlc3Rpb25JRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3VydmV5SUQgUXVlc3Rpb25JRCkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0sICdJbnRlZ2VyJyApOwogICAgfQoKICAgICMgZ2V0IHBvc2l0aW9uCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBwb3NpdGlvbiBGUk9NIHN1cnZleV9xdWVzdGlvbiIKICAgICAgICAgICAgLiAiIFdIRVJFIGlkID0gJFBhcmFte1F1ZXN0aW9uSUR9IEFORCBzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRQb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRQb3NpdGlvbiA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuIGlmICRQb3NpdGlvbiA8IDI7CgogICAgbXkgJFBvc2l0aW9uVXAgPSAkUG9zaXRpb24gLSAxOwoKICAgICMgZ2V0IHF1ZXN0aW9uCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleV9xdWVzdGlvbiIKICAgICAgICAgICAgLiAiIFdIRVJFIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0gQU5EIHBvc2l0aW9uID0gJFBvc2l0aW9uVXAiLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFF1ZXN0aW9uSUREb3duOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUXVlc3Rpb25JRERvd24gPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAhJFF1ZXN0aW9uSUREb3duOwoKICAgICMgdXBkYXRlIHBvc2l0aW9uCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5X3F1ZXN0aW9uIFNFVCAiCiAgICAgICAgICAgIC4gInBvc2l0aW9uID0gJFBvc2l0aW9uICIKICAgICAgICAgICAgLiAiV0hFUkUgaWQgPSAkUXVlc3Rpb25JRERvd24iLAogICAgKTsKCiAgICAjIHVwZGF0ZSBwb3NpdGlvbgogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfcXVlc3Rpb24gU0VUICIKICAgICAgICAgICAgLiAicG9zaXRpb24gPSAkUG9zaXRpb25VcCAiCiAgICAgICAgICAgIC4gIldIRVJFIGlkID0gJFBhcmFte1F1ZXN0aW9uSUR9IiwKICAgICk7Cn0KCj1pdGVtIFF1ZXN0aW9uRG93bigpCgp0byBtb3ZlIGEgcXVlc3Rpb24gZG93bgoKICAgICRTdXJ2ZXlPYmplY3QtPlF1ZXN0aW9uRG93bigKICAgICAgICBTdXJ2ZXlJRCA9PiAxLAogICAgICAgIFF1ZXN0aW9uSUQgPT4gNCwKICAgICk7Cgo9Y3V0CgpzdWIgUXVlc3Rpb25Eb3duIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIFF1ZXN0aW9uSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIFF1ZXN0aW9uSUQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9LCAnSW50ZWdlcicgKTsKICAgIH0KCiAgICAjIGdldCBwb3NpdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgcG9zaXRpb24gRlJPTSBzdXJ2ZXlfcXVlc3Rpb24iCiAgICAgICAgICAgIC4gIiBXSEVSRSBpZCA9ICRQYXJhbXtRdWVzdGlvbklEfSBBTkQgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkUG9zaXRpb247CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRQb3NpdGlvbiA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuIGlmICEkUG9zaXRpb247CgogICAgbXkgJFBvc2l0aW9uRG93biA9ICRQb3NpdGlvbiArIDE7CgogICAgIyBnZXQgcXVlc3Rpb24KICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkIEZST00gc3VydmV5X3F1ZXN0aW9uIgogICAgICAgICAgICAuICIgV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSBBTkQgcG9zaXRpb24gPSAkUG9zaXRpb25Eb3duIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRRdWVzdGlvbklEVXA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRRdWVzdGlvbklEVXAgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAhJFF1ZXN0aW9uSURVcDsKCiAgICAjIHVwZGF0ZSBwb3NpdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9xdWVzdGlvbiBTRVQgIgogICAgICAgICAgICAuICJwb3NpdGlvbiA9ICRQb3NpdGlvbiAiCiAgICAgICAgICAgIC4gIldIRVJFIGlkID0gJFF1ZXN0aW9uSURVcCIsCiAgICApOwoKICAgICMgdXBkYXRlIHBvc2l0aW9uCiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9xdWVzdGlvbiBTRVQgIgogICAgICAgICAgICAuICJwb3NpdGlvbiA9ICRQb3NpdGlvbkRvd24gIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtRdWVzdGlvbklEfSIsCiAgICApOwp9Cgo9aXRlbSBRdWVzdGlvbkdldCgpCgp0byBnZXQgYWxsIGF0dHJpYnV0ZXMgb2YgYSBxdWVzdGlvbgoKICAgIG15ICVRdWVzdGlvbiA9ICRTdXJ2ZXlPYmplY3QtPlF1ZXN0aW9uR2V0KAogICAgICAgIFF1ZXN0aW9uSUQgPT4gMTIzCiAgICApOwoKPWN1dAoKc3ViIFF1ZXN0aW9uR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtRdWVzdGlvbklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgUXVlc3Rpb25JRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtRdWVzdGlvbklEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1F1ZXN0aW9uSUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCBxdWVzdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIHN1cnZleV9pZCwgcXVlc3Rpb24sIHF1ZXN0aW9uX3R5cGUsIHBvc2l0aW9uLCBhbnN3ZXJfcmVxdWlyZWQsICIKICAgICAgICAgICAgLiAiY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSAiCiAgICAgICAgICAgIC4gIkZST00gc3VydmV5X3F1ZXN0aW9uIFdIRVJFIGlkID0gJFBhcmFte1F1ZXN0aW9uSUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVEYXRhOwoKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7UXVlc3Rpb25JRH0gICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtTdXJ2ZXlJRH0gICAgICAgPSAkUm93WzFdOwogICAgICAgICREYXRhe1F1ZXN0aW9ufSAgICAgICA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7VHlwZX0gICAgICAgICAgID0gJFJvd1szXTsKICAgICAgICAkRGF0YXtQb3NpdGlvbn0gICAgICAgPSAkUm93WzRdOwogICAgICAgICREYXRhe0Fuc3dlclJlcXVpcmVkfSA9ICRSb3dbNV07CiAgICAgICAgJERhdGF7Q3JlYXRlVGltZX0gICAgID0gJFJvd1s2XTsKICAgICAgICAkRGF0YXtDcmVhdGVCeX0gICAgICAgPSAkUm93WzddOwogICAgICAgICREYXRhe0NoYW5nZVRpbWV9ICAgICA9ICRSb3dbOF07CiAgICAgICAgJERhdGF7Q2hhbmdlQnl9ICAgICAgID0gJFJvd1s5XTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFF1ZXN0aW9uU2F2ZSgpCgp0byB1cGRhdGUgYW4gZXhpc3RpbmcgcXVlc3Rpb24KCiAgICAkU3VydmV5T2JqZWN0LT5RdWVzdGlvblNhdmUoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgUXVlc3Rpb25JRCA9PiA0LAogICAgICAgIFN1cnZleUlEID0+IDMsCiAgICAgICAgQW5zd2VyUmVxdWlyZWQgPT4gJzEnLCAjIG9yICcwJwogICAgICAgIFF1ZXN0aW9uID0+ICdUaGUgUXVlc3Rpb24nLAogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvblNhdmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFF1ZXN0aW9uSUQgU3VydmV5SUQgUXVlc3Rpb24pKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBbnN3ZXJSZXF1aXJlZCA9IDE7CiAgICBpZiAoCiAgICAgICAgZGVmaW5lZCAkUGFyYW17QW5zd2VyUmVxdWlyZWR9CiAgICAgICAgJiYgKCAkUGFyYW17QW5zd2VyUmVxdWlyZWR9IGVxICcxJyB8fCAkUGFyYW17QW5zd2VyUmVxdWlyZWR9IGVxICcwJyApCiAgICAgICAgKQogICAgewogICAgICAgICRBbnN3ZXJSZXF1aXJlZCA9ICRQYXJhbXtBbnN3ZXJSZXF1aXJlZH07CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUXVlc3Rpb24pKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9ICk7CiAgICB9CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgUXVlc3Rpb25JRCBTdXJ2ZXlJRCkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0sICdJbnRlZ2VyJyApOwogICAgfQoKICAgICMgdXBkYXRlIHF1ZXN0aW9uCiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9xdWVzdGlvbiBTRVQgIgogICAgICAgICAgICAuICJxdWVzdGlvbiA9ICckUGFyYW17UXVlc3Rpb259JywgIgogICAgICAgICAgICAuICJhbnN3ZXJfcmVxdWlyZWQgPSAkQW5zd2VyUmVxdWlyZWQsICIKICAgICAgICAgICAgLiAiY2hhbmdlX3RpbWUgPSBjdXJyZW50X3RpbWVzdGFtcCwgIgogICAgICAgICAgICAuICJjaGFuZ2VfYnkgPSAkUGFyYW17VXNlcklEfSAiCiAgICAgICAgICAgIC4gIldIRVJFIGlkID0gJFBhcmFte1F1ZXN0aW9uSUR9ICIKICAgICAgICAgICAgLiAiQU5EIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgKTsKfQoKPWl0ZW0gUXVlc3Rpb25Db3VudCgpCgp0byBjb3VudCBhbGwgcXVlc3Rpb25zIG9mIGEgc3VydmV5CgogICAgbXkgJENvdW50UXVlc3Rpb24gPSAkU3VydmV5T2JqZWN0LT5RdWVzdGlvbkNvdW50KAogICAgICAgIFN1cnZleUlEID0+IDEyMwogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvbkNvdW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtTdXJ2ZXlJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN1cnZleUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1N1cnZleUlEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1N1cnZleUlEfSwgJ0ludGVnZXInICk7CgogICAgIyBjb3VudCBxdWVzdGlvbnMKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICJTRUxFQ1QgQ09VTlQoaWQpIEZST00gc3VydmV5X3F1ZXN0aW9uIFdIRVJFIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJENvdW50UXVlc3Rpb247CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRDb3VudFF1ZXN0aW9uID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJENvdW50UXVlc3Rpb247Cn0KCj1pdGVtIEFuc3dlckxpc3QoKQoKdG8gZ2V0IGEgYXJyYXkgbGlzdCBvZiBhbGwgYW5zd2VyIGl0ZW1zCgogICAgbXkgQExpc3QgPSAkU3VydmV5T2JqZWN0LT5BbnN3ZXJMaXN0KAogICAgICAgIFF1ZXN0aW9uSUQgPT4gMQogICAgKTsKCj1jdXQKCnN1YiBBbnN3ZXJMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtRdWVzdGlvbklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgUXVlc3Rpb25JRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtRdWVzdGlvbklEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1F1ZXN0aW9uSUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCBhbnN3ZXIgbGlzdAogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIHF1ZXN0aW9uX2lkLCBhbnN3ZXIgIgogICAgICAgICAgICAuICIgRlJPTSBzdXJ2ZXlfYW5zd2VyIFdIRVJFIHF1ZXN0aW9uX2lkID0gJFBhcmFte1F1ZXN0aW9uSUR9IE9SREVSIEJZIHBvc2l0aW9uIiwKICAgICk7CgogICAgIyBmZXRjaHQgdGhlIHJlc3VsdAogICAgbXkgQExpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICVEYXRhOwogICAgICAgICREYXRhe0Fuc3dlcklEfSAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtRdWVzdGlvbklEfSA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7QW5zd2VyfSAgICAgPSAkUm93WzJdOwoKICAgICAgICBwdXNoIEBMaXN0LCBcJURhdGE7CiAgICB9CgogICAgcmV0dXJuIEBMaXN0Owp9Cgo9aXRlbSBBbnN3ZXJBZGQoKQoKdG8gYWRkIGEgbmV3IGFuc3dlciB0byBhIHF1ZXN0aW9uCgogICAgJFN1cnZleU9iamVjdC0+QW5zd2VyQWRkKAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgIFF1ZXN0aW9uSUQgPT4gMTAsCiAgICAgICAgQW5zd2VyID0+ICdUaGUgQW5zd2VyJywKICAgICk7Cgo9Y3V0CgpzdWIgQW5zd2VyQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBRdWVzdGlvbklEIEFuc3dlcikpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhBbnN3ZXIpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9ICk7CiAgICB9CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgUXVlc3Rpb25JRCkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0sICdJbnRlZ2VyJyApOwogICAgfQoKICAgIHJldHVybiBpZiAhJFBhcmFte0Fuc3dlcn07CgogICAgIyBpbnNlcnQgYW5zd2VyCiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gc3VydmV5X2Fuc3dlciAocXVlc3Rpb25faWQsIGFuc3dlciwgcG9zaXRpb24sICIKICAgICAgICAgICAgLiAiY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSkgVkFMVUVTICgiCiAgICAgICAgICAgIC4gIiRQYXJhbXtRdWVzdGlvbklEfSwgIgogICAgICAgICAgICAuICInJFBhcmFte0Fuc3dlcn0nLCAyNTUsICIKICAgICAgICAgICAgLiAiY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiJFBhcmFte1VzZXJJRH0sICIKICAgICAgICAgICAgLiAiY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiJFBhcmFte1VzZXJJRH0pIiwKICAgICk7Cn0KCj1pdGVtIEFuc3dlckRlbGV0ZSgpCgp0byBkZWxldGUgYSBhbnN3ZXIgZnJvbSBhIHF1ZXN0aW9uCgogICAgJFN1cnZleU9iamVjdC0+QW5zd2VyRGVsZXRlKAogICAgICAgIFF1ZXN0aW9uSUQgPT4gMTAsCiAgICAgICAgQW5zd2VySUQgPT4gNCwKICAgICk7Cgo9Y3V0CgpzdWIgQW5zd2VyRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFF1ZXN0aW9uSUQgQW5zd2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFF1ZXN0aW9uSUQgQW5zd2VySUQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9LCAnSW50ZWdlcicgKTsKICAgIH0KCiAgICAjIGRlbGV0ZSBhbnN3ZXIKICAgIHJldHVybiAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJERUxFVEUgRlJPTSBzdXJ2ZXlfYW5zd2VyIFdIRVJFICIKICAgICAgICAgICAgLiAiaWQgPSAkUGFyYW17QW5zd2VySUR9IEFORCBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSIsCiAgICApOwp9Cgo9aXRlbSBBbnN3ZXJTb3J0KCkKCnRvIHNvcnQgYWxsIGFuc3dlcnMgZnJvbSBhIHF1ZXN0aW9uCgogICAgJFN1cnZleU9iamVjdC0+QW5zd2VyU29ydCgKICAgICAgICBRdWVzdGlvbklEID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFuc3dlclNvcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1F1ZXN0aW9uSUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBRdWVzdGlvbklEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1F1ZXN0aW9uSUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17UXVlc3Rpb25JRH0sICdJbnRlZ2VyJyApOwoKICAgICMgZ2V0IGFuc3dlciBsaXN0CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleV9hbnN3ZXIiCiAgICAgICAgICAgIC4gIiBXSEVSRSBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSBPUkRFUiBCWSBwb3NpdGlvbiIsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQExpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQExpc3QsICRSb3dbMF07CiAgICB9CgogICAgbXkgJENvdW50ZXIgPSAxOwogICAgZm9yIG15ICRBbnN3ZXJJRCAoQExpc3QpIHsKCiAgICAgICAgIyB1cGRhdGUgcG9zaXRpb24KICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9hbnN3ZXIgU0VUIHBvc2l0aW9uID0gJENvdW50ZXIgV0hFUkUgaWQgPSAkQW5zd2VySUQiLAogICAgICAgICk7CiAgICB9CiAgICBjb250aW51ZSB7CiAgICAgICAgJENvdW50ZXIrKzsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQW5zd2VyVXAoKQoKdG8gbW92ZSBhIGFuc3dlciB1cAoKICAgICRTdXJ2ZXlPYmplY3QtPkFuc3dlclVwKAogICAgICAgIFF1ZXN0aW9uSUQgPT4gNCwKICAgICAgICBBbnN3ZXJJRCA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBbnN3ZXJVcCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhRdWVzdGlvbklEIEFuc3dlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhRdWVzdGlvbklEIEFuc3dlcklEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgIyBnZXQgcG9zaXRpb24KICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIHBvc2l0aW9uIEZST00gc3VydmV5X2Fuc3dlciIKICAgICAgICAgICAgLiAiIFdIRVJFIGlkID0gJFBhcmFte0Fuc3dlcklEfSBBTkQgcXVlc3Rpb25faWQgPSAkUGFyYW17UXVlc3Rpb25JRH0iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFBvc2l0aW9uOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUG9zaXRpb24gPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAkUG9zaXRpb24gPCAyOwoKICAgIG15ICRQb3NpdGlvblVwID0gJFBvc2l0aW9uIC0gMTsKCiAgICAjIGdldCBhbnN3ZXIKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkIEZST00gc3VydmV5X2Fuc3dlciIKICAgICAgICAgICAgLiAiIFdIRVJFIHF1ZXN0aW9uX2lkID0gJFBhcmFte1F1ZXN0aW9uSUR9IEFORCBwb3NpdGlvbiA9ICRQb3NpdGlvblVwIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRBbnN3ZXJJRERvd247CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRBbnN3ZXJJRERvd24gPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAhJEFuc3dlcklERG93bjsKCiAgICAjIHVwZGF0ZSBwb3NpdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9hbnN3ZXIgU0VUIHBvc2l0aW9uID0gJFBvc2l0aW9uIFdIRVJFIGlkID0gJEFuc3dlcklERG93biIsCiAgICApOwoKICAgICMgdXBkYXRlIHBvc2l0aW9uCiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9hbnN3ZXIgU0VUICIKICAgICAgICAgICAgLiAicG9zaXRpb24gPSAkUG9zaXRpb25VcCAiCiAgICAgICAgICAgIC4gIldIRVJFIGlkID0gJFBhcmFte0Fuc3dlcklEfSIsCiAgICApOwp9Cgo9aXRlbSBBbnN3ZXJEb3duKCkKCnRvIG1vdmUgYSBhbnN3ZXIgZG93bgoKICAgICRTdXJ2ZXlPYmplY3QtPkFuc3dlckRvd24oCiAgICAgICAgUXVlc3Rpb25JRCA9PiA0LAogICAgICAgIEFuc3dlcklEID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFuc3dlckRvd24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUXVlc3Rpb25JRCBBbnN3ZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUXVlc3Rpb25JRCBBbnN3ZXJJRCkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0sICdJbnRlZ2VyJyApOwogICAgfQoKICAgICMgZ2V0IHBvc2l0aW9uCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBwb3NpdGlvbiBGUk9NIHN1cnZleV9hbnN3ZXIiCiAgICAgICAgICAgIC4gIiBXSEVSRSBpZCA9ICRQYXJhbXtBbnN3ZXJJRH0gQU5EIHF1ZXN0aW9uX2lkID0gJFBhcmFte1F1ZXN0aW9uSUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRQb3NpdGlvbjsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFBvc2l0aW9uID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRQb3NpdGlvbjsKCiAgICBteSAkUG9zaXRpb25Eb3duID0gJFBvc2l0aW9uICsgMTsKCiAgICAjIGdldCBhbnN3ZXIKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkIEZST00gc3VydmV5X2Fuc3dlciIKICAgICAgICAgICAgLiAiIFdIRVJFIHF1ZXN0aW9uX2lkID0gJFBhcmFte1F1ZXN0aW9uSUR9IEFORCBwb3NpdGlvbiA9ICRQb3NpdGlvbkRvd24iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJEFuc3dlcklEVXA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRBbnN3ZXJJRFVwID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRBbnN3ZXJJRFVwOwoKICAgICMgdXBkYXRlIHBvc2l0aW9uCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5X2Fuc3dlciBTRVQgcG9zaXRpb24gPSAkUG9zaXRpb24gV0hFUkUgaWQgPSAkQW5zd2VySURVcCIsCiAgICApOwoKICAgICMgdXBkYXRlIHBvc2l0aW9uCiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9hbnN3ZXIgU0VUICIKICAgICAgICAgICAgLiAicG9zaXRpb24gPSAkUG9zaXRpb25Eb3duICIKICAgICAgICAgICAgLiAiV0hFUkUgaWQgPSAkUGFyYW17QW5zd2VySUR9IiwKICAgICk7Cn0KCj1pdGVtIEFuc3dlckdldCgpCgp0byBnZXQgYWxsIGF0dHJpYnV0ZXMgb2YgYSBhbnN3ZXIKCiAgICBteSAlQW5zd2VyID0gJFN1cnZleU9iamVjdC0+QW5zd2VyR2V0KAogICAgICAgIEFuc3dlcklEID0+IDEyMwogICAgKTsKCj1jdXQKCnN1YiBBbnN3ZXJHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0Fuc3dlcklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgUXVlc3Rpb25JRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtBbnN3ZXJJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtBbnN3ZXJJRH0sICdJbnRlZ2VyJyApOwoKICAgICMgZ2V0IGFuc3dlcgogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+CiAgICAgICAgICAgICJTRUxFQ1QgaWQsIHF1ZXN0aW9uX2lkLCBhbnN3ZXIsIHBvc2l0aW9uLCBjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5ICIKICAgICAgICAgICAgLiAiRlJPTSBzdXJ2ZXlfYW5zd2VyIFdIRVJFIGlkID0gJFBhcmFte0Fuc3dlcklEfSIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7QW5zd2VySUR9ICAgPSAkUm93WzBdOwogICAgICAgICREYXRhe1F1ZXN0aW9uSUR9ID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtBbnN3ZXJ9ICAgICA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7UG9zaXRpb259ICAgPSAkUm93WzNdOwogICAgICAgICREYXRhe0NyZWF0ZVRpbWV9ID0gJFJvd1s0XTsKICAgICAgICAkRGF0YXtDcmVhdGVCeX0gICA9ICRSb3dbNV07CiAgICAgICAgJERhdGF7Q2hhbmdlVGltZX0gPSAkUm93WzZdOwogICAgICAgICREYXRhe0NoYW5nZUJ5fSAgID0gJFJvd1s3XTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIEFuc3dlclNhdmUoKQoKdG8gdXBkYXRlIGFuIGV4aXN0aW5nIGFuc3dlcgoKICAgICRTdXJ2ZXlPYmplY3QtPkFuc3dlclNhdmUoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgQW5zd2VySUQgPT4gNiwKICAgICAgICBRdWVzdGlvbklEID0+IDQsCiAgICAgICAgQW5zd2VyID0+ICdUaGUgQW5zd2VyJywKICAgICk7Cgo9Y3V0CgpzdWIgQW5zd2VyU2F2ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgQW5zd2VySUQgUXVlc3Rpb25JRCBBbnN3ZXIpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQW5zd2VyKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSApOwogICAgfQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIEFuc3dlcklEIFF1ZXN0aW9uSUQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9LCAnSW50ZWdlcicgKTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRQYXJhbXtBbnN3ZXJ9OwoKICAgICMgdXBkYXRlIGFuc3dlcgogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfYW5zd2VyIFNFVCAiCiAgICAgICAgICAgIC4gImFuc3dlciA9ICckUGFyYW17QW5zd2VyfScsICIKICAgICAgICAgICAgLiAiY2hhbmdlX3RpbWUgPSBjdXJyZW50X3RpbWVzdGFtcCwgIgogICAgICAgICAgICAuICJjaGFuZ2VfYnkgPSAkUGFyYW17VXNlcklEfSAiCiAgICAgICAgICAgIC4gIldIRVJFIGlkID0gJFBhcmFte0Fuc3dlcklEfSAiCiAgICAgICAgICAgIC4gIkFORCBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSIsCiAgICApOwp9Cgo9aXRlbSBBbnN3ZXJDb3VudCgpCgp0byBjb3VudCBhbGwgYW5zd2VycyBvZiBhIHF1ZXN0aW9uCgogICAgbXkgJENvdW50QW5zd2VyID0gJFN1cnZleU9iamVjdC0+QW5zd2VyQ291bnQoCiAgICAgICAgUXVlc3Rpb25JRCA9PiAxMjMKICAgICk7Cgo9Y3V0CgpzdWIgQW5zd2VyQ291bnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1F1ZXN0aW9uSUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBRdWVzdGlvbklEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1F1ZXN0aW9uSUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17UXVlc3Rpb25JRH0sICdJbnRlZ2VyJyApOwoKICAgICMgY291bnQgYW5zd2VycwogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gIlNFTEVDVCBDT1VOVChpZCkgRlJPTSBzdXJ2ZXlfYW5zd2VyIFdIRVJFIHF1ZXN0aW9uX2lkID0gJFBhcmFte1F1ZXN0aW9uSUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRDb3VudEFuc3dlcjsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJENvdW50QW5zd2VyID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJENvdW50QW5zd2VyOwp9Cgo9aXRlbSBWb3RlTGlzdCgpCgp0byBnZXQgYSBhcnJheSBsaXN0IG9mIGFsbCB2b3RlIGl0ZW1zCgogICAgbXkgQExpc3QgPSAkU3VydmV5T2JqZWN0LT5Wb3RlTGlzdCgKICAgICAgICBTdXJ2ZXlJRCA9PiAxCiAgICApOwoKPWN1dAoKc3ViIFZvdGVMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtTdXJ2ZXlJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN1cnZleUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1N1cnZleUlEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1N1cnZleUlEfSwgJ0ludGVnZXInICk7CgogICAgIyBnZXQgdm90ZSBsaXN0CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgdGlja2V0X2lkLCBzZW5kX3RpbWUsIHZvdGVfdGltZSAiCiAgICAgICAgICAgIC4gIkZST00gc3VydmV5X3JlcXVlc3QgV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSAiCiAgICAgICAgICAgIC4gIkFORCB2YWxpZF9pZCA9IDAgT1JERVIgQlkgdm90ZV90aW1lIERFU0MiLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBteSAlRGF0YTsKICAgICAgICAkRGF0YXtSZXF1ZXN0SUR9ID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtUaWNrZXRJRH0gID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtTZW5kVGltZX0gID0gJFJvd1syXTsKICAgICAgICAkRGF0YXtWb3RlVGltZX0gID0gJFJvd1szXTsKCiAgICAgICAgcHVzaCBATGlzdCwgXCVEYXRhOwogICAgfQoKICAgIHJldHVybiBATGlzdDsKfQoKPWl0ZW0gVm90ZUdldCgpCgp0byBnZXQgYWxsIGF0dHJpYnV0ZXMgb2YgYSB2b3RlCgogICAgbXkgQFZvdGUgPSAkU3VydmV5T2JqZWN0LT5Wb3RlR2V0KAogICAgICAgIFJlcXVlc3RJRCA9PiAxMywKICAgICAgICBRdWVzdGlvbklEID0+IDIzCiAgICApOwoKPWN1dAoKc3ViIFZvdGVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUmVxdWVzdElEIFF1ZXN0aW9uSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFJlcXVlc3RJRCBRdWVzdGlvbklEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgIyBnZXQgdm90ZQogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIHZvdGVfdmFsdWUgRlJPTSBzdXJ2ZXlfdm90ZSIKICAgICAgICAgICAgLiAiIFdIRVJFIHJlcXVlc3RfaWQgPSAkUGFyYW17UmVxdWVzdElEfSBBTkQgcXVlc3Rpb25faWQgPSAkUGFyYW17UXVlc3Rpb25JRH0iLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBteSAlRGF0YTsKICAgICAgICAkRGF0YXtSZXF1ZXN0SUR9ID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtWb3RlVmFsdWV9ID0gJFJvd1sxXSB8fCAnLSc7CgogICAgICAgIHB1c2ggQExpc3QsIFwlRGF0YTsKICAgIH0KCiAgICByZXR1cm4gQExpc3Q7Cn0KCj1pdGVtIFZvdGVBdHRyaWJ1dGVHZXQoKQoKdG8gZ2V0IGFsbCBhdHRyaWJ1dGVzIG9mIGEgdm90ZQoKICAgIG15ICRWb3RlQXR0cmlidXRlQ29udGVudCA9ICRTdXJ2ZXlPYmplY3QtPlZvdGVBdHRyaWJ1dGVHZXQoCiAgICAgICAgVm90ZUlEID0+IDEzLAogICAgKTsKCj1jdXQKCnN1YiBWb3RlQXR0cmlidXRlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFZvdGVJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVm90ZUlEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgIyBnZXQgdm90ZSBhdHRyaWJ1dGUKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIHZvdGVfdmFsdWUgRlJPTSBzdXJ2ZXlfdm90ZSIKICAgICAgICAgICAgLiAiIFdIRVJFIGlkID0gJFBhcmFte1ZvdGVJRH0iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFZvdGVBdHRyaWJ1dGVDb250ZW50ID0gJHsgJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSB9WzBdOwogICAgcmV0dXJuICRWb3RlQXR0cmlidXRlQ29udGVudDsKfQoKPWl0ZW0gQ291bnRWb3RlKCkKCnRvIGNvdW50IGFsbCB2b3RlcyBvZiBhIHN1cnZleQoKICAgIG15ICRDb3VudFZvdGUgPSAkU3VydmV5T2JqZWN0LT5Db3VudFZvdGUoCiAgICAgICAgUXVlc3Rpb25JRCA9PiAxMjMsCiAgICAgICAgVm90ZVZhbHVlID0+ICdUaGUgVmFsdWUnLAogICAgKTsKCj1jdXQKCnN1YiBDb3VudFZvdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUXVlc3Rpb25JRCBWb3RlVmFsdWUpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1ZvdGVWYWx1ZX0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtWb3RlVmFsdWV9ICk7CiAgICAkUGFyYW17UXVlc3Rpb25JRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtRdWVzdGlvbklEfSwgJ0ludGVnZXInICk7CgogICAgIyBjb3VudCB2b3RlcwogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgQ09VTlQodm90ZV92YWx1ZSkgRlJPTSBzdXJ2ZXlfdm90ZSBXSEVSRSAiCiAgICAgICAgICAgIC4gInF1ZXN0aW9uX2lkID0gJFBhcmFte1F1ZXN0aW9uSUR9IEFORCB2b3RlX3ZhbHVlID0gJyRQYXJhbXtWb3RlVmFsdWV9JyIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkQ291bnRWb3RlOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ291bnRWb3RlID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJENvdW50Vm90ZTsKfQoKPWl0ZW0gQ291bnRSZXF1ZXN0KCkKCnRvIGNvdW50IGFsbCByZXF1ZXN0cyBvZiBhIHN1cnZleQoKICAgIG15ICRDb3VudFJlcXVlc3QgPSAkU3VydmV5T2JqZWN0LT5Db3VudFJlcXVlc3QoCiAgICAgICAgUXVlc3Rpb25JRCA9PiAxMjMsCiAgICAgICAgVmFsaWRJRCA9PiAwLCAgICAgICAjICgwfDF8YWxsKQogICAgKTsKCj1jdXQKCnN1YiBDb3VudFJlcXVlc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3VydmV5SUQgVmFsaWRJRCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17U3VydmV5SUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17U3VydmV5SUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGNvdW50IHJlcXVlc3RzCiAgICBteSAkU1FMID0gIlNFTEVDVCBDT1VOVChpZCkgRlJPTSBzdXJ2ZXlfcmVxdWVzdCBXSEVSRSBzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IjsKCiAgICAjIGFkZCB2YWxpZCBwYXJ0CiAgICBpZiAoICEkUGFyYW17VmFsaWRJRH0gKSB7CiAgICAgICAgJFNRTCAuPSAiIEFORCB2YWxpZF9pZCA9IDAiOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17VmFsaWRJRH0gZXEgMSApIHsKICAgICAgICAkU1FMIC49ICIgQU5EIHZhbGlkX2lkID0gMSI7CiAgICB9CgogICAgIyBhc2sgZGF0YWJhc2UKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkQ291bnRSZXF1ZXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ291bnRSZXF1ZXN0ID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJENvdW50UmVxdWVzdDsKfQoKPWl0ZW0gRWxlbWVudEV4aXN0cygpCgpleGlzdHMgYW4gc3VydmV5LSwgcXVlc3Rpb24tLCBhbnN3ZXItIG9yIHJlcXVlc3QtZWxlbWVudAoKICAgIG15ICRDb3VudFJlcXVlc3QgPSAkU3VydmV5T2JqZWN0LT5FbGVtZW50RXhpc3RzKAogICAgICAgIElEID0+IDEyMywgICAgICAgICAgICMgU3VydmV5SUQsIFF1ZXN0aW9uSUQsIEFuc3dlcklELCBSZXF1ZXN0SUQKICAgICAgICBFbGVtZW50ID0+ICdTdXJ2ZXknICAjIFN1cnZleSwgUXVlc3Rpb24sIEFuc3dlciwgUmVxdWVzdAogICAgKTsKCj1jdXQKCnN1YiBFbGVtZW50RXhpc3RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEVsZW1lbnRJRCBFbGVtZW50KSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtFbGVtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte0VsZW1lbnR9ICk7CiAgICAkUGFyYW17RWxlbWVudElEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte0VsZW1lbnRJRH0sICdJbnRlZ2VyJyApOwoKICAgIG15ICVMb29rdXBUYWJsZSA9ICgKICAgICAgICBTdXJ2ZXkgICA9PiAnc3VydmV5JywKICAgICAgICBRdWVzdGlvbiA9PiAnc3VydmV5X3F1ZXN0aW9uJywKICAgICAgICBBbnN3ZXIgICA9PiAnc3VydmV5X2Fuc3dlcicsCiAgICAgICAgUmVxdWVzdCAgPT4gJ3N1cnZleV9yZXF1ZXN0JywKICAgICk7CgogICAgIyBjb3VudCBlbGVtZW50CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAiU0VMRUNUIENPVU5UKGlkKSBGUk9NICRMb29rdXBUYWJsZXskUGFyYW17RWxlbWVudH19IFdIRVJFIGlkID0gJFBhcmFte0VsZW1lbnRJRH0iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJEVsZW1lbnRFeGlzdHMgPSAnTm8nOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBpZiAoICRSb3dbMF0gKSB7CiAgICAgICAgICAgICRFbGVtZW50RXhpc3RzID0gJ1llcyc7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkRWxlbWVudEV4aXN0czsKfQoKPWl0ZW0gUmVxdWVzdFNlbmQoKQoKdG8gc2VuZCBhIHJlcXVlc3QgdG8gYSBjdXN0b21lciAoaWYgbWFzdGVyIHN1cnZleSBpcyBzZXQpCgogICAgJFN1cnZleU9iamVjdC0+UmVxdWVzdFNlbmQoCiAgICAgICAgVGlja2V0SUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBSZXF1ZXN0U2VuZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBUaWNrZXRJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY3JlYXRlIFB1YmxpY1N1cnZleUtleQogICAgbXkgJFB1YmxpY1N1cnZleUtleTsKICAgIGlmICggISRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9ICkgewogICAgICAgIG15ICRtZDUgPSBEaWdlc3Q6Ok1ENS0+bmV3KCk7CiAgICAgICAgJG1kNS0+YWRkKCAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCkgLiBpbnQoIHJhbmQoOTk5OTk5OTk5KSApICk7CiAgICAgICAgJFB1YmxpY1N1cnZleUtleSA9ICRtZDUtPmhleGRpZ2VzdDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQdWJsaWNTdXJ2ZXlLZXkgPSAkUGFyYW17UHVibGljU3VydmV5S2V5fTsKICAgIH0KCiAgICAjIGZpbmQgbWFzdGVyIHN1cnZleQogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleSBXSEVSRSBzdGF0dXMgPSAnTWFzdGVyJyIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkU3VydmV5SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRTdXJ2ZXlJRCA9ICRSb3dbMF07CiAgICB9CgogICAgIyByZXR1cm4sIG5vIG1hc3RlciBzdXJ2ZXkgZm91bmQKICAgIHJldHVybiBpZiAhJFN1cnZleUlEOwoKICAgICMgZ2V0IHRoZSBzdXJ2ZXkKICAgIG15ICVTdXJ2ZXkgPSAkU2VsZi0+U3VydmV5R2V0KAogICAgICAgIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCwKICAgICk7CiAgICBteSAkU3ViamVjdCA9ICRTdXJ2ZXl7Tm90aWZpY2F0aW9uU3ViamVjdH07CiAgICBteSAkQm9keSAgICA9ICRTdXJ2ZXl7Tm90aWZpY2F0aW9uQm9keX07CgogICAgIyBmaXggbmV3IGxpbmVzCiAgICAkQm9keSA9fiBzLyhcblxyfFxyXHJcbnxcclxuKS9cbi9nOwoKICAgICMgdGlja2V0IGRhdGEKICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIHRpY2tldCBpcyBpbiBhIHNlbmQgcXVldWUKICAgIGlmICggJFN1cnZleXtRdWV1ZXN9ICYmIHJlZiAkU3VydmV5e1F1ZXVlc30gZXEgJ0FSUkFZJyAmJiBAeyAkU3VydmV5e1F1ZXVlc30gfSApIHsKICAgICAgICBteSAkRm91bmQ7CgogICAgICAgIFFVRVVFOgogICAgICAgIGZvciBteSAkUXVldWVJRCAoIEB7ICRTdXJ2ZXl7UXVldWVzfSB9ICkgewogICAgICAgICAgICBuZXh0IFFVRVVFIGlmICRUaWNrZXR7UXVldWVJRH0gIT0gJFF1ZXVlSUQ7CiAgICAgICAgICAgICRGb3VuZCA9IDE7CiAgICAgICAgICAgIGxhc3QgUVVFVUU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gaWYgISRGb3VuZDsKICAgIH0KCiAgICBmb3IgbXkgJERhdGEgKCBzb3J0IGtleXMgJVRpY2tldCApIHsKICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldHskRGF0YX0gKSB7CiAgICAgICAgICAgICRTdWJqZWN0ID1+IHMvPE9UUlNfVElDS0VUXyREYXRhPi8kVGlja2V0eyREYXRhfS9naTsKICAgICAgICAgICAgJEJvZHkgICAgPX4gcy88T1RSU19USUNLRVRfJERhdGE+LyRUaWNrZXR7JERhdGF9L2dpOwoKICAgICAgICAgICAgIyBmaWx0ZXIgZm9yIG5ldyByaWNoIHRleHQgY29udGVudAogICAgICAgICAgICAkQm9keSA9fiBzLyZsdDtPVFJTX1RJQ0tFVF8kRGF0YSZndDsvJFRpY2tldHskRGF0YX0vZzsKICAgICAgICB9CiAgICB9CgogICAgIyBjbGVhbnVwCiAgICAkU3ViamVjdCA9fiBzLzxPVFJTX1RJQ0tFVF8uKz8+Ly0vZ2k7CiAgICAkQm9keSAgICA9fiBzLzxPVFJTX1RJQ0tFVF8uKz8+Ly0vZ2k7CgogICAgIyByZXBsYWNlIGNvbmZpZyBvcHRpb25zCiAgICAkU3ViamVjdCA9fiBzezxPVFJTX0NPTkZJR18oLis/KT59eyRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCQxKX1lZ3g7CiAgICAkQm9keSAgICA9fiBzezxPVFJTX0NPTkZJR18oLis/KT59eyRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCQxKX1lZ3g7CgogICAgIyBmaWx0ZXIgZm9yIG5ldyByaWNoIHRleHQgY29udGVudAogICAgJEJvZHkgPX4gc3smbHQ7T1RSU19DT05GSUdfKC4rPykmZ3Q7fXskU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgkMSl9ZWd4OwoKICAgICMgY2xlYW51cAogICAgJFN1YmplY3QgPX4gcy88T1RSU19DT05GSUdfLis/Pi8tL2dpOwogICAgJEJvZHkgICAgPX4gcy88T1RSU19DT05GSUdfLis/Pi8tL2dpOwoKICAgICMgZmlsdGVyIGZvciBuZXcgcmljaCB0ZXh0IGNvbnRlbnQKICAgICRCb2R5ID1+IHMvJmx0O09UUlNfQ09ORklHXy4rPyZndDsvLS9naTsKCiAgICAjIGdldCBjdXN0b21lciBkYXRhIGFuZCByZXBsYWNlIGl0IHdpdGggPE9UUlNfQ1VTVE9NRVJfREFUQV8uLi4KICAgIG15ICVDdXN0b21lclVzZXI7CiAgICBpZiAoICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICVDdXN0b21lclVzZXIgPSAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0tPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgICAgIFVzZXIgPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyByZXBsYWNlIGN1c3RvbWVyIHN0dWZmIHdpdGggdGFncwogICAgICAgIGZvciBteSAkRGF0YSAoIHNvcnQga2V5cyAlQ3VzdG9tZXJVc2VyICkgewogICAgICAgICAgICBuZXh0IGlmICEkQ3VzdG9tZXJVc2VyeyREYXRhfTsKCiAgICAgICAgICAgICRTdWJqZWN0ID1+IHMvPE9UUlNfQ1VTVE9NRVJfREFUQV8kRGF0YT4vJEN1c3RvbWVyVXNlcnskRGF0YX0vZ2k7CiAgICAgICAgICAgICRCb2R5ICAgID1+IHMvPE9UUlNfQ1VTVE9NRVJfREFUQV8kRGF0YT4vJEN1c3RvbWVyVXNlcnskRGF0YX0vZ2k7CgogICAgICAgICAgICAjIGZpbHRlciBmb3IgbmV3IHJpY2ggdGV4dCBjb250ZW50CiAgICAgICAgICAgICRCb2R5ID1+IHMvJmx0O09UUlNfQ1VTVE9NRVJfREFUQV8kRGF0YSZndDsvJEN1c3RvbWVyVXNlcnskRGF0YX0vZ2k7CiAgICAgICAgfQogICAgfQoKICAgICMgY2xlYW51cCBhbGwgbm90IG5lZWRlZCA8T1RSU19DVVNUT01FUl9EQVRBXyB0YWdzCiAgICAkU3ViamVjdCA9fiBzLzxPVFJTX0NVU1RPTUVSX0RBVEFfLis/Pi8tL2dpOwogICAgJEJvZHkgICAgPX4gcy88T1RSU19DVVNUT01FUl9EQVRBXy4rPz4vLS9naTsKCiAgICAjIGZpbHRlciBmb3IgbmV3IHJpY2ggdGV4dCBjb250ZW50CiAgICAkQm9keSA9fiBzLyZsdDtPVFJTX0NVU1RPTUVSX0RBVEFfLis/Jmd0Oy8tL2dpOwoKICAgICMgcmVwbGFjZSBrZXkKICAgICRTdWJqZWN0ID1+IHMvPE9UUlNfUHVibGljU3VydmV5S2V5Pi8kUHVibGljU3VydmV5S2V5L2dpOwogICAgJEJvZHkgICAgPX4gcy88T1RSU19QdWJsaWNTdXJ2ZXlLZXk+LyRQdWJsaWNTdXJ2ZXlLZXkvZ2k7CgogICAgIyBmaWx0ZXIgZm9yIG5ldyByaWNoIHRleHQgY29udGVudAogICAgJEJvZHkgPX4gcy8mbHQ7T1RSU19QdWJsaWNTdXJ2ZXlLZXkmZ3Q7LyRQdWJsaWNTdXJ2ZXlLZXkvZ2k7CgogICAgbXkgJFRvU3RyaW5nID0gJEN1c3RvbWVyVXNlcntVc2VyRW1haWx9OwoKICAgIGlmICggISRUb1N0cmluZyApIHsKICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUxhc3RDdXN0b21lckFydGljbGUoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRBcnRpY2xle1NlbmRlclR5cGV9IGVxICdhZ2VudCcgKSB7CiAgICAgICAgICAgICRUb1N0cmluZyA9ICRBcnRpY2xle1RvfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRUb1N0cmluZyA9ICRBcnRpY2xle0Zyb219OwogICAgICAgIH0KICAgIH0KCiAgICAjIHBhcnNlIHRoZSB0byBzdHJpbmcKICAgIG15ICRUbzsKICAgIGZvciBteSAkVG9QYXJzZXIgKCBNYWlsOjpBZGRyZXNzLT5wYXJzZSgkVG9TdHJpbmcpICkgewogICAgICAgICRUbyA9ICRUb1BhcnNlci0+YWRkcmVzcygpOwogICAgfQoKICAgICMgcmV0dXJuIGlmIG5vIHRvIGlzIGZvdW5kCiAgICByZXR1cm4gaWYgISRUbzsKCiAgICAjIGNoZWNrIGlmIGl0J3MgYSB2YWxpZCBlbWFpbCBhZGRlZHNzIChtaW4gaXMgbmVlZGVkKQogICAgcmV0dXJuIGlmICRUbyAhfiAvQC87CgogICAgIyBjb252ZXJ0IHRvIGxvd2VyIGNhc2VzCiAgICAkVG8gPSBsYyAkVG87CgogICAgIyBjaGVjayByZWNpcGllbnQgYmxhY2tsaXN0CiAgICBteSAkUmVjaXBpZW50QmxhY2tsaXN0ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6Tm90aWZpY2F0aW9uUmVjaXBpZW50QmxhY2tsaXN0Jyk7CiAgICBpZiAoCiAgICAgICAgZGVmaW5lZCAkUmVjaXBpZW50QmxhY2tsaXN0CiAgICAgICAgJiYgcmVmICRSZWNpcGllbnRCbGFja2xpc3QgZXEgJ0FSUkFZJwogICAgICAgICYmIEB7JFJlY2lwaWVudEJsYWNrbGlzdH0KICAgICAgICApCiAgICB7CiAgICAgICAgZm9yIG15ICRSZWNpcGllbnQgKCBAeyRSZWNpcGllbnRCbGFja2xpc3R9ICkgewogICAgICAgICAgICByZXR1cm4gaWYgZGVmaW5lZCAkUmVjaXBpZW50ICYmIGxlbmd0aCAkUmVjaXBpZW50ICYmICRUbyBlcSAkUmVjaXBpZW50OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIG5vdCBzdXJ2ZXkgc2hvdWxkIGJlIHNlbmQKICAgIG15ICRTZW5kTm9TdXJ2ZXlSZWdFeHAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpTZW5kTm9TdXJ2ZXlSZWdFeHAnKTsKCiAgICByZXR1cm4gaWYgJFNlbmROb1N1cnZleVJlZ0V4cCAmJiAkVG8gPX4gLyRTZW5kTm9TdXJ2ZXlSZWdFeHAvaTsKCiAgICAjIHF1b3RlCiAgICAkVG8gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoJFRvKTsKCiAgICAjIE9ubHkgaWYgd2UgaGF2ZW4ndCBiZWVuIGNhbGxlZCBieSBjcm9uCiAgICBpZiAoICEkUGFyYW17VHJpZ2dlclNlbmRSZXF1ZXN0c30gKSB7CiAgICAgICAgbXkgJEFtb3VudE9mU3VydmV5c1BlcjMwRGF5cwogICAgICAgICAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6OkFtb3VudE9mU3VydmV5c1BlcjMwRGF5cycpOwoKICAgICAgICAjIGlmIHdlIHNob3VsZCBqdXN0IHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBzdXJ2ZXlzIHBlciAzMCBkYXlzICYgcmVjaXBpZW50CiAgICAgICAgaWYgKCRBbW91bnRPZlN1cnZleXNQZXIzMERheXMpIHsKICAgICAgICAgICAgbXkgJE5vdyA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKTsKCiAgICAgICAgICAgICMgRmluZCBhbGwgc3VydmV5cyB0aGF0IHdlcmUgY3JlYXRlZCBpbiB0aGUgbGFzdCAzMCBkYXlzCiAgICAgICAgICAgIG15ICRUaGlydHlEYXlzQWdvID0gJE5vdyAtIDMwICogODY0MDA7CiAgICAgICAgICAgICRUaGlydHlEYXlzQWdvCiAgICAgICAgICAgICAgICA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRUaGlydHlEYXlzQWdvICk7CiAgICAgICAgICAgIG15ICRMYXN0U2VudFRpbWUgPSAwOwoKICAgICAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgICAgICAgICBTUUwgPT4gIlNFTEVDVCBjcmVhdGVfdGltZSBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIExPV0VSKHNlbmRfdG8pID0gJyRUbycgIgogICAgICAgICAgICAgICAgICAgIC4gIkFORCBjcmVhdGVfdGltZSA+PSAnJFRoaXJ0eURheXNBZ28nIE9SREVSIEJZIGNyZWF0ZV90aW1lIERFU0MiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgICAgICAgICAgbXkgQFJvd3M7CiAgICAgICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBSb3dzLCAkUm93WzBdOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIElmIHdlIGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyBwZXIgbW9udGgKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQFJvd3MgPj0gJEFtb3VudE9mU3VydmV5c1BlcjMwRGF5cyApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIGEgc3VydmV5IGlzIHNlbnQgaW4gdGhlIGxhc3QgdGltZQogICAgbXkgJFNlbmRQZXJpb2QgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpTZW5kUGVyaW9kJyk7CiAgICBpZiAoJFNlbmRQZXJpb2QpIHsKICAgICAgICBteSAkTGFzdFNlbnRUaW1lID0gMDsKCiAgICAgICAgIyBnZXQgc2VuZCB0aW1lCiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAiU0VMRUNUIHNlbmRfdGltZSBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIExPV0VSKHNlbmRfdG8pID0gJyRUbycgIgogICAgICAgICAgICAgICAgLiAiT1JERVIgQlkgc2VuZF90aW1lIERFU0MiLAogICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRMYXN0U2VudFRpbWUgPSAkUm93WzBdOwogICAgICAgIH0KICAgICAgICBpZiAoJExhc3RTZW50VGltZSkgewogICAgICAgICAgICBteSAkTm93ID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpOwogICAgICAgICAgICAkTGFzdFNlbnRUaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkTGFzdFNlbnRUaW1lICk7CgogICAgICAgICAgICByZXR1cm4gaWYgKCAkTGFzdFNlbnRUaW1lICsgJFNlbmRQZXJpb2QgKiA2MCAqIDYwICogMjQgKSA+ICROb3c7CgogICAgICAgIH0KICAgIH0KICAgIG15ICRTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UnKTsKICAgICRQYXJhbXtUaWNrZXRJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtUaWNrZXRJRH0sICdJbnRlZ2VyJyApOwoKICAgICMgSWYgbm8gRGVsYXllZCBTZW5kaW5nIGlzIGNvbmZpZ3VyZWQKICAgICMgc2VuZCBpbW1lZGlhdGVseSwgbG9nIGl0IHRvIFRpY2tldCBIaXN0b3J5IGFuZCBpbnNlcnQgaXQgdG8gc3VydmV5X3JlcXVlc3RzCiAgICAjIGluY2x1ZGluZyBzZW50X3RpbWUKICAgIGlmICggISRTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UgJiYgISRQYXJhbXtUcmlnZ2VyU2VuZFJlcXVlc3RzfSApIHsKCiAgICAgICAgIyBpbnNlcnQgcmVxdWVzdAogICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgU1FMID0+ICJJTlNFUlQgSU5UTyBzdXJ2ZXlfcmVxdWVzdCAiCiAgICAgICAgICAgICAgICAuICIgKHRpY2tldF9pZCwgc3VydmV5X2lkLCB2YWxpZF9pZCwgcHVibGljX3N1cnZleV9rZXksIHNlbmRfdG8sIHNlbmRfdGltZSwgY3JlYXRlX3RpbWUpICIKICAgICAgICAgICAgICAgIC4gIiBWQUxVRVMgKCRQYXJhbXtUaWNrZXRJRH0sICRTdXJ2ZXlJRCwgMSwgJyIKICAgICAgICAgICAgICAgIC4gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCRQdWJsaWNTdXJ2ZXlLZXkpIC4gIicsICIKICAgICAgICAgICAgICAgIC4gIickVG8nLCBjdXJyZW50X3RpbWVzdGFtcCwgY3VycmVudF90aW1lc3RhbXApIiwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBhY3Rpb24gb24gdGlja2V0CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+IDEsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiU2VudCBjdXN0b21lciBzdXJ2ZXkgdG8gJyRUbycuIiwKICAgICAgICApOwogICAgfQoKICAgICMgSWYgd2Ugc2hvdWxkIHNlbmQgZGVsYXllZCBqdXN0IGNyb25qb2JzIGRlbGl2ZXIgIlRyaWdnZXJTZW5kUmVxdWVzdHMiLAogICAgIyBzbyB3ZSB3ZXJlIGNhbGxlZCBieSBhIGNsb3NlZCB0aWNrZXQKICAgICMgYW5kIGhhdmUgdG8gY3JlYXRlIHRoZSBzdXJ2ZXlfcmVxdWVzdCByZWNvcmQgd2l0aCBubyBzZW5kX3RpbWUKICAgICMgKHdpbGwgYmUgZmlsbGVkIGluIGJ5IGNyb25qb2IgYXMgc29vbiBhcyBpdCByZWFsbHkgZ290IGRlbGl2ZXJlZCkKICAgICMgYWRkaXRpb25hbGx5IG5vIFRpY2tldCBIaXN0b3J5IHlldCwgY2F1c2Ugbm8gc2VuZCBoYXMgaGFwcGVuZWQKICAgIGVsc2lmICggJFNlbmRJbkhvdXJzQWZ0ZXJDbG9zZSAmJiAhJFBhcmFte1RyaWdnZXJTZW5kUmVxdWVzdHN9ICkgewoKICAgICAgICAjIGluc2VydCByZXF1ZXN0CiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIHN1cnZleV9yZXF1ZXN0ICIKICAgICAgICAgICAgICAgIC4gIiAodGlja2V0X2lkLCBzdXJ2ZXlfaWQsIHZhbGlkX2lkLCBwdWJsaWNfc3VydmV5X2tleSwgc2VuZF90bywgY3JlYXRlX3RpbWUpICIKICAgICAgICAgICAgICAgIC4gIiBWQUxVRVMgKCRQYXJhbXtUaWNrZXRJRH0sICRTdXJ2ZXlJRCwgMSwgJyIKICAgICAgICAgICAgICAgIC4gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCRQdWJsaWNTdXJ2ZXlLZXkpIC4gIicsICIKICAgICAgICAgICAgICAgIC4gIickVG8nLCBjdXJyZW50X3RpbWVzdGFtcCkiLAogICAgICAgICk7CgogICAgfQoKICAgICMgaGVyZSB3ZSBnb3QgY2FsbGVkIGJ5IGNyb24sIGFuZCBubyBtYXR0ZXIgaWYgU2VuZEluSG91cnNBZnRlckNsb3NlIGlzIGNvbmZpZ3VyZWQKICAgICMgb3Igbm90LCB3ZSBoYXZlIHRvIHNlbmQgdGhlIHN1cnZleSByZXF1ZXN0cyB0aGF0IHdlcmVuJ3Qgc2VudCB5ZXQKICAgICMgdGhpcyB0aW1lIHdlIGhhdmUgdG8gdXBkYXRlIHRoZSBzdXJ2ZXlfcmVxdWVzdCBsaW5lCiAgICAjIHRvIGZpbGwgaW4gdGhlIHNlbmRfdGltZSBhbmQgY3JlYXRlIHRoZSBUaWNrZXQgSGlzdG9yeSBlbnRyeQogICAgZWxzaWYgKAogICAgICAgICRQYXJhbXtUcmlnZ2VyU2VuZFJlcXVlc3RzfQogICAgICAgICYmICRQYXJhbXtTdXJ2ZXlSZXF1ZXN0SUR9CiAgICAgICAgJiYgJFBhcmFte1N1cnZleVJlcXVlc3RJRH0gPX4gL15cZCskLwogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9yZXF1ZXN0ICIKICAgICAgICAgICAgICAgIC4gIlNFVCBzZW5kX3RpbWUgPSBjdXJyZW50X3RpbWVzdGFtcCBXSEVSRSBpZCA9ICRQYXJhbXtTdXJ2ZXlSZXF1ZXN0SUR9IiwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBhY3Rpb24gb24gdGlja2V0CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+IDEsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiU2VudCBjdXN0b21lciBzdXJ2ZXkgdG8gJyRUbycuIiwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYXJzZXQKICAgIG15ICRDaGFyc2V0ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JykgfHwgJ3VmdC04JzsKCiAgICAjIGNsZWFuIGh0bWwgYW5kIGNvbnZlcnQgdGhlIEZpZWxkIGluIGh0bWwgKFxuIC0tPjxicj4pCiAgICAkQm9keSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgIGlmICggISQxICkgewoKICAgICAgICAjIGNvbnZlcnQgYm9keSB0byBodG1sCiAgICAgICAgJEJvZHkgPSAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0tPlRvSFRNTCgKICAgICAgICAgICAgU3RyaW5nID0+ICRCb2R5LAogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVwYXJlIGh0bWwgbGlua3MKICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fS0+TGlua1F1b3RlKAogICAgICAgIFN0cmluZyA9PiBcJEJvZHksCiAgICApOwoKICAgICMgY29tcGxldGUgaHRtbCBkb2N1bWVudAogICAgJEJvZHkgPSAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0tPkRvY3VtZW50Q29tcGxldGUoCiAgICAgICAgU3RyaW5nICA9PiAkQm9keSwKICAgICAgICBDaGFyc2V0ID0+ICRDaGFyc2V0LAogICAgKTsKCiAgICAjIHNlbmQgc3VydmV5CiAgICByZXR1cm4gJFNlbGYtPntTZW5kbWFpbE9iamVjdH0tPlNlbmQoCiAgICAgICAgRnJvbSAgICAgPT4gJFN1cnZleXtOb3RpZmljYXRpb25TZW5kZXJ9LAogICAgICAgIFRvICAgICAgID0+ICRUbywKICAgICAgICBTdWJqZWN0ICA9PiAkU3ViamVjdCwKICAgICAgICBNaW1lVHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICBDaGFyc2V0ICA9PiAkQ2hhcnNldCwKICAgICAgICBCb2R5ICAgICA9PiAkQm9keSwKICAgICkgaWYgKCAhJFNlbmRJbkhvdXJzQWZ0ZXJDbG9zZSB8fCAkUGFyYW17VHJpZ2dlclNlbmRSZXF1ZXN0c30gKTsKfQoKPWl0ZW0gUmVxdWVzdEdldCgpCgp0byBnZXQgYW4gYXJyYXkgbGlzdCBvZiByZXF1ZXN0IGVsZW1lbnRzCgogICAgbXkgJVJlcXVlc3REYXRhID0gJFN1cnZleU9iamVjdC0+UmVxdWVzdEdldCgKICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJ0F3NWRlM1hmNXFBJywKICAgICk7Cgo9Y3V0CgpzdWIgUmVxdWVzdEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17UHVibGljU3VydmV5S2V5fSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgUHVibGljU3VydmV5S2V5IScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1B1YmxpY1N1cnZleUtleX0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9ICk7CgogICAgIyBnZXQgdm90ZSBsaXN0CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4KICAgICAgICAgICAgIlNFTEVDVCBpZCwgdGlja2V0X2lkLCBzdXJ2ZXlfaWQsIHZhbGlkX2lkLCBwdWJsaWNfc3VydmV5X2tleSwgc2VuZF90bywgc2VuZF90aW1lLCB2b3RlX3RpbWUgIgogICAgICAgICAgICAuICJGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIHB1YmxpY19zdXJ2ZXlfa2V5ID0gJyRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9JyAiLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJVJlcXVlc3REYXRhOwoKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFJlcXVlc3REYXRhe1JlcXVlc3RJRH0gICAgICAgPSAkUm93WzBdOwogICAgICAgICRSZXF1ZXN0RGF0YXtUaWNrZXRJRH0gICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkUmVxdWVzdERhdGF7U3VydmV5SUR9ICAgICAgICA9ICRSb3dbMl07CiAgICAgICAgJFJlcXVlc3REYXRhe1ZhbGlkSUR9ICAgICAgICAgPSAkUm93WzNdOwogICAgICAgICRSZXF1ZXN0RGF0YXtQdWJsaWNTdXJ2ZXlLZXl9ID0gJFJvd1s0XTsKICAgICAgICAkUmVxdWVzdERhdGF7U2VuZFRvfSAgICAgICAgICA9ICRSb3dbNV07CiAgICAgICAgJFJlcXVlc3REYXRhe1NlbmRUaW1lfSAgICAgICAgPSAkUm93WzZdOwogICAgICAgICRSZXF1ZXN0RGF0YXtWb3RlVGltZX0gICAgICAgID0gJFJvd1s3XTsKICAgIH0KCiAgICByZXR1cm4gJVJlcXVlc3REYXRhOwp9Cgo9aXRlbSBQdWJsaWNTdXJ2ZXlHZXQoKQoKdG8gZ2V0IGFsbCBwdWJsaWMgYXR0cmlidXRlcyBvZiBhIHN1cnZleQoKICAgIG15ICVQdWJsaWNTdXJ2ZXkgPSAkU3VydmV5T2JqZWN0LT5QdWJsaWNTdXJ2ZXlHZXQoCiAgICAgICAgICAgIFB1YmxpY1N1cnZleUtleSA9PiAnQXc1ZGUzWGY1cUEnLAogICAgICAgICAgICBJbnZhbGlkICAgICAgICAgPT4gMSwgIyBvcHRpb25hbCB0byBrbm93IGlmIG9uZSBrZXkgd2FzIGFscmVhZHkgdXNlZC4KICAgICk7Cgo9Y3V0CgpzdWIgUHVibGljU3VydmV5R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1B1YmxpY1N1cnZleUtleX0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN1cnZleUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1B1YmxpY1N1cnZleUtleX0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9ICk7CgogICAgbXkgJFZhbGlkSUQgPSAnQU5EIHZhbGlkX2lkID0gMSc7CgogICAgIyBpZiBub3QgaW52YWxpZCBzaG93IGp1c3QgdmFsaWQga2V5cwogICAgaWYgKCAkUGFyYW17SW52YWxpZH0gKSB7CiAgICAgICAgJFZhbGlkSUQgPSAnQU5EIHZhbGlkX2lkID0gMCc7CiAgICB9CgogICAgIyBnZXQgcmVxdWVzdAogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1Qgc3VydmV5X2lkIEZST00gc3VydmV5X3JlcXVlc3QgIgogICAgICAgICAgICAuICJXSEVSRSBwdWJsaWNfc3VydmV5X2tleSA9ICckUGFyYW17UHVibGljU3VydmV5S2V5fScgJFZhbGlkSUQgIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRTdXJ2ZXlJRDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFN1cnZleUlEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gKCkgaWYgISRTdXJ2ZXlJRDsKCiAgICAjIGdldCBzdXJ2ZXkKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkLCBzdXJ2ZXludW1iZXIsIHRpdGxlLCBpbnRyb2R1Y3Rpb24gIgogICAgICAgICAgICAuICJGUk9NIHN1cnZleSBXSEVSRSBpZCA9ICRTdXJ2ZXlJRCBBTkQgKHN0YXR1cyA9ICdNYXN0ZXInIE9SIHN0YXR1cyA9ICdWYWxpZCcpIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXtTdXJ2ZXlJRH0gICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtTdXJ2ZXlOdW1iZXJ9ID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtUaXRsZX0gICAgICAgID0gJFJvd1syXTsKICAgICAgICAkRGF0YXtJbnRyb2R1Y3Rpb259ID0gJFJvd1szXTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFB1YmxpY0Fuc3dlclNhdmUoKQoKdG8gc2F2ZSBhIHB1YmxpYyB2b3RlCgogICAgJFN1cnZleU9iamVjdC0+UHVibGljQW5zd2VyU2F2ZSgKICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJ2FWa2RFODJEdzJxdzZlckNkYScsCiAgICAgICAgUXVlc3Rpb25JRCA9PiA0LAogICAgICAgIFZvdGVWYWx1ZSA9PiAnVGhlIFZhbHVlJywKICAgICk7Cgo9Y3V0CgpzdWIgUHVibGljQW5zd2VyU2F2ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhQdWJsaWNTdXJ2ZXlLZXkgUXVlc3Rpb25JRCBWb3RlVmFsdWUpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUHVibGljU3VydmV5S2V5IFZvdGVWYWx1ZSkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0gKTsKICAgIH0KICAgICRQYXJhbXtRdWVzdGlvbklEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1F1ZXN0aW9uSUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCByZXF1ZXN0CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCAiCiAgICAgICAgICAgIC4gIiBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIHB1YmxpY19zdXJ2ZXlfa2V5ID0gJyRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9JyBBTkQgdmFsaWRfaWQgPSAxIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRSZXF1ZXN0SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRSZXF1ZXN0SUQgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAhJFJlcXVlc3RJRDsKCiAgICAjIGluc2VydCB2b3RlCiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gc3VydmV5X3ZvdGUgKHJlcXVlc3RfaWQsIHF1ZXN0aW9uX2lkLCB2b3RlX3ZhbHVlLCBjcmVhdGVfdGltZSkgVkFMVUVTICgiCiAgICAgICAgICAgIC4gIiRSZXF1ZXN0SUQsICIKICAgICAgICAgICAgLiAiJFBhcmFte1F1ZXN0aW9uSUR9LCAiCiAgICAgICAgICAgIC4gIickUGFyYW17Vm90ZVZhbHVlfScsICIKICAgICAgICAgICAgLiAiY3VycmVudF90aW1lc3RhbXApIiwKICAgICk7Cn0KCj1pdGVtIFB1YmxpY1N1cnZleUludmFsaWRTZXQoKQoKdG8gc2V0IGEgcmVxdWVzdCBpbnZhbGlkCgogICAgJFN1cnZleU9iamVjdC0+UHVibGljU3VydmV5SW52YWxpZFNldCgKICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJ2FWa2RFODJEdzJxdzZlckNkYScsCiAgICApOwoKPWN1dAoKc3ViIFB1YmxpY1N1cnZleUludmFsaWRTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1B1YmxpY1N1cnZleUtleX0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN1cnZleUlEIScKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17UHVibGljU3VydmV5S2V5fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1B1YmxpY1N1cnZleUtleX0gKTsKCiAgICAjIGdldCByZXF1ZXN0CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCAiCiAgICAgICAgICAgIC4gIiBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIHB1YmxpY19zdXJ2ZXlfa2V5ID0gJyRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9JyIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkUmVxdWVzdElEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUmVxdWVzdElEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRSZXF1ZXN0SUQ7CgogICAgIyB1cGRhdGUgcmVxdWVzdAogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfcmVxdWVzdCBTRVQgIgogICAgICAgICAgICAuICJ2YWxpZF9pZCA9IDAsICIKICAgICAgICAgICAgLiAidm90ZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAgIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRSZXF1ZXN0SUQiLAogICAgKTsKfQoKPWl0ZW0gU3VydmV5UXVldWVTYXZlKCkKCmFkZCBhIHN1cnZleV9xdWV1ZSByZWxhdGlvbgoKbXkgJFJlc3VsdCA9ICRTdXJ2ZXlPYmplY3QtPlN1cnZleVF1ZXVlU2F2ZSgKICAgIFN1cnZleUlEID0+IDMsCiAgICBRdWV1ZUlEcyA9PiBbMSwgN10sCik7Cgo9Y3V0CgpzdWIgU3VydmV5UXVldWVTYXZlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIFF1ZXVlSURzKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZyggUHJpb3JpdHkgPT4gJ2Vycm9yJywgTWVzc2FnZSA9PiAiTmVlZCAkQXJndW1lbnQhIiApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkUXVldWVJRCAoIEB7ICRQYXJhbXtRdWV1ZUlEc30gfSApIHsKICAgICAgICAkUXVldWVJRCA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFF1ZXVlSUQsICdJbnRlZ2VyJyApOwogICAgfQogICAgJFBhcmFte1N1cnZleUlEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1N1cnZleUlEfSwgJ0ludGVnZXInICk7CgogICAgIyByZW1vdmUgYWxsIGV4aXN0aW5nIHJlbGF0aW9ucwogICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiREVMRVRFIEZST00gc3VydmV5X3F1ZXVlIFdIRVJFIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgKTsKCiAgICAjIGFkZCBhbGwgc3VydmV5X3F1ZXVlIHJlbGF0aW9ucyB0byBkYXRhYmFzZQogICAgZm9yIG15ICRRdWV1ZUlEICggQHsgJFBhcmFte1F1ZXVlSURzfSB9ICkgewoKICAgICAgICAjIGFkZCBzdXJ2ZXlfcXVldWUgcmVsYXRpb24gdG8gZGF0YWJhc2UKICAgICAgICByZXR1cm4gaWYgISRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgU1FMID0+ICJJTlNFUlQgSU5UTyBzdXJ2ZXlfcXVldWUiCiAgICAgICAgICAgICAgICAuICIgKHN1cnZleV9pZCwgcXVldWVfaWQpIFZBTFVFUyIKICAgICAgICAgICAgICAgIC4gIiAoJFBhcmFte1N1cnZleUlEfSwgJFF1ZXVlSUQpIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBTdXJ2ZXlRdWV1ZUdldCgpCgpnZXQgYSBzdXJ2ZXlfcXVldWUgcmVsYXRpb24gYXMgYW4gYXJyYXkgcmVmZXJlbmNlCgpteSAkUXVldWVzUmVmID0gJFN1cnZleU9iamVjdC0+U3VydmV5UXVldWVHZXQoCiAgICBTdXJ2ZXlJRCA9PiAzLAopOwoKPWN1dAoKc3ViIFN1cnZleVF1ZXVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtTdXJ2ZXlJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN1cnZleUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1N1cnZleUlEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1N1cnZleUlEfSwgJ0ludGVnZXInICk7CgogICAgIyBnZXQgcXVldWUgaWRzIGZyb20gZGF0YWJhc2UKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIHF1ZXVlX2lkIEZST00gc3VydmV5X3F1ZXVlIgogICAgICAgICAgICAuICIgV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSBPUkRFUiBCWSBxdWV1ZV9pZCBBU0MiLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBRdWV1ZUxpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQFF1ZXVlTGlzdCwgJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gXEBRdWV1ZUxpc3Q7Cn0KCj1pdGVtIFN1cnZleVNlYXJjaCgpCgpzZWFyY2ggaW4gc3VydmV5cwoKICAgIG15IEBJRHMgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlTZWFyY2goCgogICAgICAgIE51bWJlciAgICAgICAgICAgICAgPT4gJzEzNCcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBUaXRsZSAgICAgICAgICAgICAgID0+ICdzb21lIHRpdGxlJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgSW50cm9kdWN0aW9uICAgICAgICA9PiAnc29tZSBpbnRyb2R1Y3Rpb24nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgPT4gJ3NvbWUgZGVzY3JpcHRpb24nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBOb3RpZmljYXRpb25TZW5kZXIgID0+ICd1c2VyQGRvbWFpbicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgTm90aWZpY2F0aW9uU3ViamVjdCA9PiAnc29tZSBub3RpZmljYXRpb24gc3ViamVjdCcsICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIE5vdGlmaWNhdGlvbkJvZHkgICAgPT4gJ3NvbWUgbm90aWZpY2F0aW9uIGJvZHknLCAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyBpcyBzZWFyY2hpbmcgaW4gTnVtYmVyLCBUaXRsZSwgSW50cm9kdWN0aW9uLCBEZXNjcmlwdGlvbiwgTm90aWZpY2F0aW9uU2VuZGVyLAogICAgICAgICMgTm90aWZpY2F0aW9uU3ViamVjdCBhbmQgTm90aWZpY2F0aW9uQm9keQogICAgICAgIFdoYXQgICA9PiAnc29tZSB0ZXh0JywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgU3RhdHVzID0+ICdzb21lIHN0YXR1cycsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICBDcmVhdGVUaW1lTmV3ZXJEYXRlID0+ICcyMDEyLTAxLTAxIDEyOjAwOjAwJywKICAgICAgICBDcmVhdGVUaW1lT2xkZXJEYXRlID0+ICcyMDEyLTAxLTMxIDEyOjAwOjAwJywKICAgICAgICBDcmVhdGVCeSAgICAgICAgICAgID0+ICcxMjMnLCAgICAgICAgICAgICNVc2VySUQKICAgICAgICBDaGFuZ2VUaW1lTmV3ZXJEYXRlID0+ICcyMDEyLTAxLTAxIDEyOjAwOjAwJywKICAgICAgICBDaGFuZ2VUaW1lT2xkZXJEYXRlID0+ICcyMDEyLTEyLTMxIDEyOjAwOjAwJywKICAgICAgICBDaGFuZ2VCeSAgICAgICAgICAgID0+ICcxMjMnLCAgICAgICAgICAgICNVc2VySUQKCiAgICAgICAgT3JkZXJCeSA9PiBbICdTdXJ2ZXlJRCcsICdUaXRsZScgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBkZWZhdWx0OiBbICdTdXJ2ZXlJRCcgXSwKICAgICAgICAjICgpU3VydmV5SUQsIE51bWJlciwgVGl0bGUsIEludHJvZHVjdGlvbiwgRGVzY3JpcHRpb24sCiAgICAgICAgIyBOb3RpZmljYXRpb25TZW5kZXIsIE5vdGlmaWNhdGlvblN1YmplY3QsIE5vdGlmaWNhdGlvbkJvZHksCiAgICAgICAgIyBTdGF0dXMsIENyZWF0ZVRpbWUsIENyZWF0ZUJ5LCBDaGFuZ2VUaW1lLCBDaGFuZ2VCeSkKCiAgICAgICAgIyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBPcmRlckJ5OgogICAgICAgICMgVGhlIE9yZGVyQnlEaXJlY3Rpb24gY2FuIGJlIHNwZWNpZmllZCBmb3IgZWFjaCBPcmRlckJ5IGF0dHJpYnV0ZS4KICAgICAgICAjIFRoZSBwYWlyaW5nIGlzIG1hZGUgYnkgdGhlIGFycmF5IGluZGljZXMuCgogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWyAnRG93bicsICdVcCcgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgZGVmYXVsdDogWyAnRG93bicgXQogICAgICAgICMgKERvd24gfCBVcCkKCiAgICAgICAgTGltaXQgICAgID0+IDE1MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFN1cnZleVNlYXJjaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB2ZXJpZnkgdGhhdCBhbGwgcGFzc2VkIGFycmF5IHBhcmFtZXRlcnMgY29udGFpbiBhbiBhcnJheXJlZgogICAgQVJHVU1FTlQ6CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPcmRlckJ5IE9yZGVyQnlEaXJlY3Rpb24pKSB7CgogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRQYXJhbXskQXJndW1lbnR9IHx8PSBbXTsKCiAgICAgICAgICAgIG5leHQgQVJHVU1FTlQ7CiAgICAgICAgfQoKICAgICAgICBpZiAoIHJlZiAkUGFyYW17JEFyZ3VtZW50fSBuZSAnQVJSQVknICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiJEFyZ3VtZW50IG11c3QgYmUgYW4gYXJyYXkgcmVmZXJlbmNlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBkZWZpbmUgb3JkZXIgdGFibGUKICAgIG15ICVPcmRlckJ5VGFibGUgPSAoCgogICAgICAgICMgU3VydmV5IGl0ZW0gYXR0cmlidXRlcwogICAgICAgIFN1cnZleUlEICAgICAgICAgICAgPT4gJ3MuaWQnLAogICAgICAgIE51bWJlciAgICAgICAgICAgICAgPT4gJ3Muc3VydmV5bnVtYmVyJywKICAgICAgICBUaXRsZSAgICAgICAgICAgICAgID0+ICdzLnRpdGxlJywKICAgICAgICBJbnRyb2R1Y3Rpb24gICAgICAgID0+ICdzLmludHJvZHVjdGlvbicsCiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICA9PiAncy5kZXNjcmlwdGlvbicsCiAgICAgICAgTm90aWZpY2F0aW9uU2VuZGVyICA9PiAncy5ub3RpZmljYXRpb25fc2VuZGVyJywKICAgICAgICBOb3RpZmljYXRpb25TdWJqZWN0ID0+ICdzLm5vdGlmaWNhdGlvbl9zdWJqZWN0JywKICAgICAgICBOb3RpZmljYXRpb25Cb2R5ICAgID0+ICdzLm5vdGlmaWNhdGlvbl9ib2R5JywKICAgICAgICBTdGF0dXMgICAgICAgICAgICAgID0+ICdzLnN0YXR1cycsCiAgICAgICAgQ3JlYXRlVGltZSAgICAgICAgICA9PiAncy5jcmVhdGVfdGltZScsCiAgICAgICAgQ3JlYXRlQnkgICAgICAgICAgICA9PiAncy5jcmVhdGVfYnknLAogICAgICAgIENoYW5nZVRpbWUgICAgICAgICAgPT4gJ3MuY2hhbmdlX3RpbWUnLAogICAgICAgIENoYW5nZUJ5ICAgICAgICAgICAgPT4gJ3MuY2hhbmdlX2J5JywKICAgICk7CgogICAgIyBjaGVjayBpZiBPcmRlckJ5IGNvbnRhaW5zIG9ubHkgdW5pcXVlIHZhbGlkIHZhbHVlcwogICAgbXkgJU9yZGVyQnlTZWVuOwogICAgZm9yIG15ICRPcmRlckJ5ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSB7CgogICAgICAgIGlmICggISRPcmRlckJ5IHx8ICEkT3JkZXJCeVRhYmxleyRPcmRlckJ5fSB8fCAkT3JkZXJCeVNlZW57JE9yZGVyQnl9ICkgewoKICAgICAgICAgICAgIyBmb3VuZCBhbiBlcnJvcgogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiT3JkZXJCeSBjb250YWlucyBpbnZhbGlkIHZhbHVlICckT3JkZXJCeScgIgogICAgICAgICAgICAgICAgICAgIC4gJ29yIHRoZSB2YWx1ZSBpcyB1c2VkIG1vcmUgdGhhbiBvbmNlIScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgcmVtZW1iZXIgdGhlIHZhbHVlIHRvIGNoZWNrIGlmIGl0IGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UKICAgICAgICAkT3JkZXJCeVNlZW57JE9yZGVyQnl9ID0gMTsKCiAgICB9CgogICAgIyBjaGVjayBpZiBPcmRlckJ5RGlyZWN0aW9uIGFycmF5IGNvbnRhaW5zIG9ubHkgJ1VwJyBvciAnRG93bicKICAgIERJUkVDVElPTjoKICAgIGZvciBteSAkRGlyZWN0aW9uICggQHsgJFBhcmFte09yZGVyQnlEaXJlY3Rpb259IH0gKSB7CgogICAgICAgICMgb25seSAnVXAnIG9yICdEb3duJyBhbGxvd2VkCiAgICAgICAgbmV4dCBESVJFQ1RJT04gaWYgJERpcmVjdGlvbiBlcSAnVXAnOwogICAgICAgIG5leHQgRElSRUNUSU9OIGlmICREaXJlY3Rpb24gZXEgJ0Rvd24nOwoKICAgICAgICAjIGZvdW5kIGFuIGVycm9yCiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPcmRlckJ5RGlyZWN0aW9uIGNhbiBvbmx5IGNvbnRhaW4gJ1VwJyBvciAnRG93bichIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGFzc2VtYmxlIHRoZSBPUkRFUiBCWSBjbGF1c2UKICAgIG15IEBTUUxPcmRlckJ5OwogICAgbXkgQE9yZGVyQnlGaWVsZHM7CiAgICBteSAkQ291bnQgPSAwOwogICAgZm9yIG15ICRPcmRlckJ5ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSB7CgogICAgICAgICMgc2V0IHRoZSBkZWZhdWx0IG9yZGVyIGRpcmVjdGlvbgogICAgICAgIG15ICREaXJlY3Rpb24gPSAnREVTQyc7CgogICAgICAgICMgYWRkIHRoZSBnaXZlbiBvcmRlciBkaXJlY3Rpb24KICAgICAgICBpZiAoICRQYXJhbXtPcmRlckJ5RGlyZWN0aW9ufS0+WyRDb3VudF0gKSB7CiAgICAgICAgICAgIGlmICggJFBhcmFte09yZGVyQnlEaXJlY3Rpb259LT5bJENvdW50XSBlcSAnVXAnICkgewogICAgICAgICAgICAgICAgJERpcmVjdGlvbiA9ICdBU0MnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFBhcmFte09yZGVyQnlEaXJlY3Rpb259LT5bJENvdW50XSBlcSAnRG93bicgKSB7CiAgICAgICAgICAgICAgICAkRGlyZWN0aW9uID0gJ0RFU0MnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBTUUwKICAgICAgICBwdXNoIEBTUUxPcmRlckJ5LCAgICAiJE9yZGVyQnlUYWJsZXskT3JkZXJCeX0gJERpcmVjdGlvbiI7CiAgICAgICAgcHVzaCBAT3JkZXJCeUZpZWxkcywgJE9yZGVyQnlUYWJsZXskT3JkZXJCeX07CiAgICB9CiAgICBjb250aW51ZSB7CiAgICAgICAgJENvdW50Kys7CiAgICB9CgogICAgIyBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIG9yZGVyaW5nIGlzIG5vdCBkZXRlcm1pbmVkCiAgICAjIHdlIGFkZCBhbiBkZXNjZW5kaW5nIG9yZGVyaW5nIGJ5IGlkCiAgICBpZiAoICFncmVwIHsgJF8gZXEgJ1N1cnZleUlEJyB9ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSApIHsKICAgICAgICBwdXNoIEBTUUxPcmRlckJ5LCAiJE9yZGVyQnlUYWJsZXtTdXJ2ZXlJRH0gREVTQyI7CiAgICB9CgogICAgIyBzcWwKICAgIG15ICRTUUwgPSAnU0VMRUNUIHMuaWQgJzsKCiAgICAjIGV4dGVuZGVkIFNRTAogICAgbXkgJEV4dCA9ICcnOwoKICAgICMgZnVsbHRleHQgc2VhcmNoCiAgICBpZiAoICRQYXJhbXtXaGF0fSAmJiAkUGFyYW17V2hhdH0gbmUgJyonICkgewoKICAgICAgICAjIGRlZmluZSB0aGUgc2VhcmNoIGZpZWxkcyBmb3IgZnVsbHRleHQgc2VhcmNoCiAgICAgICAgbXkgQFNlYXJjaEZpZWxkcyA9ICgKICAgICAgICAgICAgJ3Muc3VydmV5bnVtYmVyJywKICAgICAgICAgICAgJ3MudGl0bGUnLAogICAgICAgICAgICAncy5pbnRyb2R1Y3Rpb24nLAogICAgICAgICAgICAncy5kZXNjcmlwdGlvbicsCiAgICAgICAgICAgICdzLm5vdGlmaWNhdGlvbl9zZW5kZXInLAogICAgICAgICAgICAncy5ub3RpZmljYXRpb25fc3ViamVjdCcsCiAgICAgICAgICAgICdzLm5vdGlmaWNhdGlvbl9ib2R5JywKICAgICAgICAgICAgJ3Muc3RhdHVzJywKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aGUgU1FMIGZvciB0aGUgZnVsbHRleHQgc2VhcmNoCiAgICAgICAgJEV4dCAuPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVlcnlDb25kaXRpb24oCiAgICAgICAgICAgIEtleSAgICAgICAgICA9PiBcQFNlYXJjaEZpZWxkcywKICAgICAgICAgICAgVmFsdWUgICAgICAgID0+ICRQYXJhbXtXaGF0fSwKICAgICAgICAgICAgU2VhcmNoUHJlZml4ID0+ICcqJywKICAgICAgICAgICAgU2VhcmNoU3VmZml4ID0+ICcqJywKICAgICAgICApOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgbnVtYmVyCiAgICBpZiAoICRQYXJhbXtOdW1iZXJ9ICkgewogICAgICAgICRQYXJhbXtOdW1iZXJ9ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtOdW1iZXJ9ID1+IHMvJSUvJS9nOwogICAgICAgICRQYXJhbXtOdW1iZXJ9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17TnVtYmVyfSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gIiBMT1dFUihzLm51bWJlcikgTElLRSBMT1dFUignIiAuICRQYXJhbXtOdW1iZXJ9IC4gIicpICRTZWxmLT57TGlrZUVzY2FwZVN0cmluZ30iOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgdGl0bGUKICAgIGlmICggJFBhcmFte1RpdGxlfSApIHsKICAgICAgICAkUGFyYW17VGl0bGV9ID0gIlwlJFBhcmFte1RpdGxlfVwlIjsKICAgICAgICAkUGFyYW17VGl0bGV9ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtUaXRsZX0gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte1RpdGxlfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1RpdGxlfSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gIiBMT1dFUihzLnRpdGxlKSBMSUtFIExPV0VSKCciIC4gJFBhcmFte1RpdGxlfSAuICInKSAkU2VsZi0+e0xpa2VFc2NhcGVTdHJpbmd9IjsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgdGhlIGludHJvZHVjdGlvbgogICAgaWYgKCAkUGFyYW17SW50cm9kdWN0aW9ufSApIHsKICAgICAgICAkUGFyYW17SW50cm9kdWN0aW9ufSA9ICJcJSRQYXJhbXtJbnRyb2R1Y3Rpb259XCUiOwogICAgICAgICRQYXJhbXtJbnRyb2R1Y3Rpb259ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtJbnRyb2R1Y3Rpb259ID1+IHMvJSUvJS9nOwogICAgICAgICRQYXJhbXtJbnRyb2R1Y3Rpb259ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17SW50cm9kdWN0aW9ufSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQKICAgICAgICAgICAgLj0gIiBMT1dFUihzLmludHJvZHVjdGlvbikgTElLRSBMT1dFUignIgogICAgICAgICAgICAuICRQYXJhbXtJbnRyb2R1Y3Rpb259CiAgICAgICAgICAgIC4gIicpICRTZWxmLT57TGlrZUVzY2FwZVN0cmluZ30iOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgZGVzY3JpcHRpb24KICAgIGlmICggJFBhcmFte0Rlc2NyaXB0aW9ufSApIHsKICAgICAgICAkUGFyYW17RGVzY3JpcHRpb259ID0gIlwlJFBhcmFte0Rlc2NyaXB0aW9ufVwlIjsKICAgICAgICAkUGFyYW17RGVzY3JpcHRpb259ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtEZXNjcmlwdGlvbn0gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte0Rlc2NyaXB0aW9ufSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQKICAgICAgICAgICAgLj0gIiBMT1dFUihzLmRlc2NyaXB0aW9uKSBMSUtFIExPV0VSKCciCiAgICAgICAgICAgIC4gJFBhcmFte0Rlc2NyaXB0aW9ufQogICAgICAgICAgICAuICInKSAkU2VsZi0+e0xpa2VFc2NhcGVTdHJpbmd9IjsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBzZW5kZXIKICAgIGlmICggJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0gKSB7CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0gPSAiXCUkUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfVwlIjsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfSA9fiBzL1wqLyUvZzsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfSA9fiBzLyUlLyUvZzsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0sICdMaWtlJyApOwogICAgICAgIGlmICgkRXh0KSB7CiAgICAgICAgICAgICRFeHQgLj0gJyBBTkQnOwogICAgICAgIH0KICAgICAgICAkRXh0CiAgICAgICAgICAgIC49ICIgTE9XRVIocy5ub3RpZmljYXRpb25fc2VuZGVyKSBMSUtFIExPV0VSKCciCiAgICAgICAgICAgIC4gJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0KICAgICAgICAgICAgLiAiJykgJFNlbGYtPntMaWtlRXNjYXBlU3RyaW5nfSI7CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIHRoZSBub3RpZmljYXRpb24gc3ViamVjdAogICAgaWYgKCAkUGFyYW17Tm90aWZpY2F0aW9uU3ViamVjdH0gKSB7CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvblN1YmplY3R9ID0gIlwlJFBhcmFte05vdGlmaWNhdGlvblN1YmplY3R9XCUiOwogICAgICAgICRQYXJhbXtOb3RpZmljYXRpb25TdWJqZWN0fSA9fiBzL1wqLyUvZzsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uU3ViamVjdH0gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvblN1YmplY3R9CiAgICAgICAgICAgID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17Tm90aWZpY2F0aW9uU3ViamVjdH0sICdMaWtlJyApOwogICAgICAgIGlmICgkRXh0KSB7CiAgICAgICAgICAgICRFeHQgLj0gJyBBTkQnOwogICAgICAgIH0KICAgICAgICAkRXh0CiAgICAgICAgICAgIC49ICIgTE9XRVIocy5ub3RpZmljYXRpb25fc3ViamVjdCkgTElLRSBMT1dFUignIgogICAgICAgICAgICAuICRQYXJhbXtOb3RpZmljYXRpb25TdWJqZWN0fQogICAgICAgICAgICAuICInKSAkU2VsZi0+e0xpa2VFc2NhcGVTdHJpbmd9IjsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBib2R5CiAgICBpZiAoICRQYXJhbXtOb3RpZmljYXRpb25Cb2R5fSApIHsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uQm9keX0gPSAiXCUkUGFyYW17Tm90aWZpY2F0aW9uQm9keX1cJSI7CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvbkJvZHl9ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtOb3RpZmljYXRpb25Cb2R5fSA9fiBzLyUlLyUvZzsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uQm9keX0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtOb3RpZmljYXRpb25Cb2R5fSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQKICAgICAgICAgICAgLj0gIiBMT1dFUihzLm5vdGlmaWNhdGlvbl9ib2R5KSBMSUtFIExPV0VSKCciCiAgICAgICAgICAgIC4gJFBhcmFte05vdGlmaWNhdGlvbkJvZHl9CiAgICAgICAgICAgIC4gIicpICRTZWxmLT57TGlrZUVzY2FwZVN0cmluZ30iOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgc3RhdHVzCiAgICBpZiAoICRQYXJhbXtTdGF0dXN9ICkgewogICAgICAgICRQYXJhbXtTdGF0dXN9ID0gIlwlJFBhcmFte1N0YXR1c31cJSI7CiAgICAgICAgJFBhcmFte1N0YXR1c30gPX4gcy9cKi8lL2c7CiAgICAgICAgJFBhcmFte1N0YXR1c30gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte1N0YXR1c30gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtTdGF0dXN9LCAnTGlrZScgKTsKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EJzsKICAgICAgICB9CiAgICAgICAgJEV4dCAuPSAiIExPV0VSKHMuc3RhdHVzKSBMSUtFIExPV0VSKCciIC4gJFBhcmFte1N0YXR1c30gLiAiJykgJFNlbGYtPntMaWtlRXNjYXBlU3RyaW5nfSI7CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIHRoZSBjcmVhdGUgYnkKICAgIGlmICggJFBhcmFte0NyZWF0ZUJ5fSApIHsKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EJzsKICAgICAgICB9CiAgICAgICAgJEV4dCAuPSAiIHMuY3JlYXRlX2J5ID0gIiAuICRQYXJhbXtDcmVhdGVCeX07CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIHRoZSBjcmVhdGUgYnkKICAgIGlmICggJFBhcmFte0NoYW5nZUJ5fSApIHsKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EJzsKICAgICAgICB9CiAgICAgICAgJEV4dCAuPSAiIHMuY3JlYXRlX2J5ID0gIiAuICRQYXJhbXtDaGFuZ2VCeX07CiAgICB9CgogICAgIyBzZXQgdGltZSBwYXJhbXMKICAgIG15ICVUaW1lUGFyYW1zID0gKAoKICAgICAgICAjIHRpbWVzIGluIGNoYW5nZV9pdGVtCiAgICAgICAgQ3JlYXRlVGltZU5ld2VyRGF0ZSA9PiAncy5jcmVhdGVfdGltZSA+PScsCiAgICAgICAgQ3JlYXRlVGltZU9sZGVyRGF0ZSA9PiAncy5jcmVhdGVfdGltZSA8PScsCiAgICAgICAgQ2hhbmdlVGltZU5ld2VyRGF0ZSA9PiAncy5jaGFuZ2VfdGltZSA+PScsCiAgICAgICAgQ2hhbmdlVGltZU9sZGVyRGF0ZSA9PiAncy5jaGFuZ2VfdGltZSA8PScsCiAgICApOwoKICAgICMgY2hlY2sgYW5kIGFkZCB0aW1lIHBhcmFtcyB0byBXSEVSRQogICAgVElNRVBBUkFNOgogICAgZm9yIG15ICRUaW1lUGFyYW0gKCBzb3J0IGtleXMgJVRpbWVQYXJhbXMgKSB7CgogICAgICAgIG5leHQgVElNRVBBUkFNIGlmICEkUGFyYW17JFRpbWVQYXJhbX07CgogICAgICAgICMgY2hlY2sgZm9ybWF0CiAgICAgICAgaWYgKCAkUGFyYW17JFRpbWVQYXJhbX0gIX4gbXsgXEEgXGRcZFxkXGQtXGRcZC1cZFxkIFxzIFxkXGQ6XGRcZDpcZFxkIFx6IH14bXMgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW1ldGVyICRUaW1lUGFyYW0gaGFzIGFuIGludmFsaWQgZGF0ZSBmb3JtYXQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRQYXJhbXskVGltZVBhcmFtfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRUaW1lUGFyYW19ICk7CgogICAgICAgICMgYWRkIHRpbWUgcGFyYW1ldGVyIHRvIFdIRVJFCiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gIiRUaW1lUGFyYW1zeyRUaW1lUGFyYW19ICckUGFyYW17JFRpbWVQYXJhbX0nIjsKICAgIH0KCiAgICAjIGFkZCBXSEVSRSBzdGF0ZW1lbnQKICAgIGlmICgkRXh0KSB7CiAgICAgICAgJEV4dCA9ICcgV0hFUkUgJyAuICRFeHQ7CiAgICB9CgogICAgIyBhZGQgdGhlIE9SREVSIEJZIGNsYXVzZQogICAgaWYgKEBTUUxPcmRlckJ5KSB7CiAgICAgICAgJEV4dCAuPSAnT1JERVIgQlkgJzsKICAgICAgICAkRXh0IC49IGpvaW4gJywgJywgQFNRTE9yZGVyQnk7CiAgICAgICAgJEV4dCAuPSAnICc7CiAgICAgICAgaWYgKEBPcmRlckJ5RmllbGRzKSB7CiAgICAgICAgICAgICRTUUwgLj0gJywgJyAuIGpvaW4gJywgJywgQE9yZGVyQnlGaWVsZHM7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIGV4dGVuZGVkIFNRTAogICAgJFNRTCAuPSAnIEZST00gc3VydmV5IHMgJzsKICAgICRTUUwgLj0gJEV4dDsKCiAgICAjIGFzayBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgIExpbWl0ID0+ICRQYXJhbXtMaW1pdH0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQExpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQExpc3QsICRSb3dbMF07CiAgICB9CiAgICByZXR1cm4gQExpc3Q7Cn0KCj1pdGVtIEdldFJpY2hUZXh0RG9jdW1lbnRDb21wbGV0ZSgpCgpnZXQgc29tZSB0ZXh0IHJlYWR5IHRvIHNob3cgYXMgcmljaHRleHQgYXR0YWNobWVudCBpbmxpbmUKCiAgICBteSAkUmljaFRleHREb2N1bWVudENvbXBsZXRlID0gJFN1cnZleU9iamVjdC0+R2V0UmljaFRleHREb2N1bWVudENvbXBsZXRlKAogICAgICAgIFRleHQgPT4gJFJpY2hUZXh0LAogICAgKTsKCj1jdXQKCnN1YiBHZXRSaWNoVGV4dERvY3VtZW50Q29tcGxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVGV4dCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQgcGFyYW1ldGVyISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjbGVhbiBodG1sIHN0cmluZwogICAgbXkgJFRleHQgPSAkUGFyYW17VGV4dH07CiAgICAkVGV4dCA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKCiAgICAjIGdldCBkb2N1bWVudCBjb21wbGV0ZQogICAgbXkgJEhUTUxEb2N1bWVudENvbXBsZXRlID0gJFNlbGYtPntIVE1MVXRpbHNPYmplY3R9LT5Eb2N1bWVudENvbXBsZXRlKAogICAgICAgIFN0cmluZyAgPT4gJFRleHQsCiAgICAgICAgQ2hhcnNldCA9PiAndXRmLTgnLAogICAgKTsKCiAgICByZXR1cm4gJEhUTUxEb2N1bWVudENvbXBsZXRlOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWhlYWQxIFZFUlNJT04KCiRSZXZpc2lvbjogMS43NCAkICREYXRlOiAyMDEzLzA2LzI0IDE1OjA4OjU2ICQKCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vVGlja2V0L0V2ZW50L1N1cnZleVNlbmRSZXF1ZXN0LnBtIC0gc2VuZCBzdXJ2ZXkgcmVxdWVzdHMKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMiBPVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvCiMgLS0KIyAkSWQ6IFN1cnZleVNlbmRSZXF1ZXN0LnBtLHYgMS4xOCAyMDEyLzExLzIyIDExOjU5OjEzIGpoIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkV2ZW50OjpTdXJ2ZXlTZW5kUmVxdWVzdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5OwoKdXNlIHZhcnMgcXcoJFZFUlNJT04pOwokVkVSU0lPTiA9IHF3KCRSZXZpc2lvbjogMS4xOCAkKSBbMV07CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0ICgKICAgICAgICBxdyhDb25maWdPYmplY3QgVGlja2V0T2JqZWN0IExvZ09iamVjdCBVc2VyT2JqZWN0IERCT2JqZWN0IE1haW5PYmplY3QgVGltZU9iamVjdCBFbmNvZGVPYmplY3QpCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQogICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlN1cnZleS0+bmV3KCAleyRTZWxmfSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhFdmVudCBDb25maWcpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgaWYgKCAhJFBhcmFte0RhdGF9LT57VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBUaWNrZXRJRCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgbG9vcCBQcm90ZWN0aW9uLCBSZXF1ZXN0U2VuZCBjYWxscyBIaXN0b3J5QWRkCiAgICAjIHNvIHdlIGNhbid0IGxpc3RlbiBvbiBIaXN0b3J5QWRkIEV2ZW50cyBpbiBvcmRlciB0bwogICAgIyBwcmV2ZW50IGRlZXAgcmVjdXJzaW9uCiAgICByZXR1cm4gMSBpZiAkUGFyYW17RXZlbnR9IGVxICdIaXN0b3J5QWRkJzsKCiAgICAjIGdldCB0aWNrZXQgZGF0YQogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtEYXRhfXtUaWNrZXRJRH0sCiAgICApOwoKICAgIHJldHVybiAxIGlmICRUaWNrZXR7U3RhdGVUeXBlfSBuZSAnY2xvc2VkJzsKCiAgICAjIHNlbmQgYWxzbyBzdXJ2ZXkgcmVxdWVzdCBvbiB0aWNrZXQgY3JlYXRpb24gKG9uIGZpcnN0IGFydGljbGUpCiAgICBpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0FydGljbGVDcmVhdGUnICkgewoKICAgICAgICBteSBAQXJ0aWNsZUluZGV4ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlSW5kZXgoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtEYXRhfXtUaWNrZXRJRH0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDEgaWYgc2NhbGFyIEBBcnRpY2xlSW5kZXggIT0gMTsKICAgIH0KCiAgICAjIHNlbmQgcmVxdWVzdAogICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5SZXF1ZXN0U2VuZCgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17RGF0YX17VGlja2V0SUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQojIFN1cnZleS50IC0gU3VydmV5IHRlc3RzCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBTdXJ2ZXkudCx2IDEuMjggMjAxMy8wNi8yNyAwOToyODowMiBqaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyOwp1c2UgS2VybmVsOjpTeXN0ZW06OkVtYWlsOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN1cnZleTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VXNlcjsKCiMgY3JlYXRlIGxvY2FsIGNvbmZpZyBvYmplY3QKbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKCiMgc2V0IGNvbmZpZyB0byBub3Qgc2VuZCBlbWFpbHMKJENvbmZpZ09iamVjdC0+U2V0KAogICAgS2V5ICAgPT4gJ1NlbmRtYWlsTW9kdWxlJywKICAgIFZhbHVlID0+ICdLZXJuZWw6OlN5c3RlbTo6RW1haWw6OkRvTm90U2VuZEVtYWlsJywKKTsKCiMgY3JlYXRlIGxvY2FsIG9iamVjdHMKbXkgJFVzZXJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VXNlci0+bmV3KAogICAgJXskU2VsZn0sCiAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKKTsKbXkgJFRpY2tldE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQtPm5ldygKICAgICV7JFNlbGZ9LAogICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCik7Cm15ICRTdXJ2ZXlPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5LT5uZXcoCiAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgIExvZ09iamVjdCAgICA9PiAkU2VsZi0+e0xvZ09iamVjdH0sCiAgICBUaW1lT2JqZWN0ICAgPT4gJFNlbGYtPntUaW1lT2JqZWN0fSwKICAgIERCT2JqZWN0ICAgICA9PiAkU2VsZi0+e0RCT2JqZWN0fSwKICAgIE1haW5PYmplY3QgICA9PiAkU2VsZi0+e01haW5PYmplY3R9LAogICAgRW5jb2RlT2JqZWN0ID0+ICRTZWxmLT57RW5jb2RlT2JqZWN0fSwKICAgIFVzZXJPYmplY3QgICA9PiAkVXNlck9iamVjdCwKKTsKCiMgY2xlYW51cCBzeXN0ZW0KJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgU1FMID0+ICJERUxFVEUgRlJPTSBzdXJ2ZXlfcmVxdWVzdCBXSEVSRSBzZW5kX3RvIExJS0UgJ1wlXEB1bml0dGVzdC5jb21cJSciLAopOwoKIyBjcmVhdGUgc3VydmV5Cm15ICVTdXJ2ZXlEYXRhID0gKAogICAgVGl0bGUgICAgICAgICAgICAgICA9PiAnQSBUaXRsZScsCiAgICBJbnRyb2R1Y3Rpb24gICAgICAgID0+ICdUaGUgaW50cm9kdWN0aW9uIG9mIHRoZSBzdXJ2ZXknLAogICAgRGVzY3JpcHRpb24gICAgICAgICA9PiAnVGhlIGludGVybmFsIGRlc2NyaXB0aW9uIG9mIHRoZSBzdXJ2ZXknLAogICAgTm90aWZpY2F0aW9uU2VuZGVyICA9PiAncXVhbGl0eUB1bml0dGVzdC5jb20nLAogICAgTm90aWZpY2F0aW9uU3ViamVjdCA9PiAnSGVscCB1cyB3aXRoIHlvdXIgZmVlZGJhY2shIMOEw5bDnCcsCiAgICBOb3RpZmljYXRpb25Cb2R5ID0+CiAgICAgICAgJ0RlYXIgY3VzdG9tZXIuLi4gw6TDtsO8JywKKTsKbXkgJFN1cnZleUlEID0gJFN1cnZleU9iamVjdC0+U3VydmV5TmV3KAogICAgVXNlcklEID0+IDEsCiAgICAlU3VydmV5RGF0YSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VydmV5SUQsCiAgICAiU3VydmV5TmV3KCkiLAopOwoKZm9yICggMSAuLiAzICkgewogICAgbXkgJFF1ZXN0aW9uQWRkID0gJFN1cnZleU9iamVjdC0+UXVlc3Rpb25BZGQoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgUXVlc3Rpb24gPT4gJ1RoZSBRdWVzdGlvbicsCiAgICAgICAgVHlwZSAgICAgPT4gJ1JhZGlvJywKICAgICk7Cn0KbXkgQExpc3QgPSAkU3VydmV5T2JqZWN0LT5RdWVzdGlvbkxpc3QoCiAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCik7CmZvciBteSAkUXVlc3Rpb24gKEBMaXN0KSB7CiAgICBmb3IgKCAxIC4uIDMgKSB7CiAgICAgICAgJFN1cnZleU9iamVjdC0+QW5zd2VyQWRkKAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBRdWVzdGlvbklEICAgICA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgQW5zd2VyICAgICAgICAgPT4gJ1RoZSBBbnN3ZXInLAogICAgICAgICAgICBBbnN3ZXJSZXF1aXJlZCA9PiAxLAogICAgICAgICk7CiAgICB9Cn0KCm15ICRTdGF0dXNTZXQgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlTdGF0dXNTZXQoCiAgICBTdXJ2ZXlJRCAgPT4gJFN1cnZleUlELAogICAgTmV3U3RhdHVzID0+ICdNYXN0ZXInCik7CiRTZWxmLT5JcygKICAgICRTdGF0dXNTZXQsCiAgICAnU3RhdHVzU2V0JywKICAgICJTdXJ2ZXlTdGF0dXNTZXQoKSIsCik7CgpteSAlU3VydmV5R2V0ID0gJFN1cnZleU9iamVjdC0+U3VydmV5R2V0KAogICAgU3VydmV5SUQgPT4gJFN1cnZleUlELAopOwoKZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVN1cnZleUdldCApIHsKICAgIG5leHQgaWYgIWRlZmluZWQgJFN1cnZleURhdGF7JEtleX07CiAgICAkU2VsZi0+SXMoCiAgICAgICAgJFN1cnZleUdldHskS2V5fSwKICAgICAgICAkU3VydmV5RGF0YXskS2V5fSwKICAgICAgICAiU3VydmV5R2V0KCkiLAogICAgKTsKfQoKbXkgQFRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICcjMSB0cnknLAogICAgICAgICdTdXJ2ZXk6OlNlbmRQZXJpb2QnID0+IDEwMCwKICAgICAgICBUaWNrZXQgICAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnU29tZSBUaWNrZXQgVGl0bGUnLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnb3BlbicsCiAgICAgICAgICAgIEN1c3RvbWVyTm8gICA9PiAnMTIzNDY1JywKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdjdXN0b21lckB1bml0dGVzdC5jb20nLAogICAgICAgICAgICBPd25lcklEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBBcnRpY2xlID0+IHsKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ2VtYWlsLWV4dGVybmFsJywKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgPT4gJ2N1c3RvbWVyJywKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgPT4gJ1NvbWUgQ3VzdG9tZXIgPHNvbWVAdW5pdHRlc3QuY29tPicsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgID0+ICdTb21lIFRvIDx0b0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJ1NvbWUgU3ViamVjdCcsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICd0aGUgbWVzc2FnZSB0ZXh0JywKICAgICAgICAgICAgTWVzc2FnZUlEICAgICAgPT4gJzxhc2Rhc2Rhc2QuMTIzQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xNScsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdPd25lclVwZGF0ZScsCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdTb21lIGZyZWUgdGV4dCEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ID0+IDEsICAgICMgaWYgeW91IGRvbid0IHdhbnQgdG8gc2VuZCBhZ2VudCBub3RpZmljYXRpb25zCiAgICAgICAgfSwKICAgICAgICBSZXN1bHQgPT4gWwogICAgICAgICAgICAxLAogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICcjMiB0cnknLAogICAgICAgICdTdXJ2ZXk6OlNlbmRQZXJpb2QnID0+IDEwMCwKICAgICAgICBUaWNrZXQgICAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnU29tZSBUaWNrZXQgVGl0bGUnLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnb3BlbicsCiAgICAgICAgICAgIEN1c3RvbWVyTm8gICA9PiAnMTIzNDY1JywKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdjdXN0b21lckB1bml0dGVzdC5jb20nLAogICAgICAgICAgICBPd25lcklEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBBcnRpY2xlID0+IHsKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ2VtYWlsLWV4dGVybmFsJywKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgPT4gJ2N1c3RvbWVyJywKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgPT4gJ1NvbWUgQ3VzdG9tZXIgPFNPTUVAdW5pdHRlc3QuY29tPicsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgID0+ICdTb21lIFRvIDx0b0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJ1NvbWUgU3ViamVjdCcsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICd0aGUgbWVzc2FnZSB0ZXh0JywKICAgICAgICAgICAgTWVzc2FnZUlEICAgICAgPT4gJzxhc2Rhc2Rhc2QuMTIzQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xNScsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdPd25lclVwZGF0ZScsCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdTb21lIGZyZWUgdGV4dCEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ID0+IDEsICAgICMgaWYgeW91IGRvbid0IHdhbnQgdG8gc2VuZCBhZ2VudCBub3RpZmljYXRpb25zCiAgICAgICAgfSwKICAgICAgICBSZXN1bHQgPT4gWwogICAgICAgICAgICAwLAogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICcjMyB0cnknLAogICAgICAgICdTdXJ2ZXk6OlNlbmRQZXJpb2QnID0+IDEwMCwKICAgICAgICBUaWNrZXQgICAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnU29tZSBUaWNrZXQgVGl0bGUnLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnb3BlbicsCiAgICAgICAgICAgIEN1c3RvbWVyTm8gICA9PiAnMTIzNDY1JywKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdjdXN0b21lckB1bml0dGVzdC5jb20nLAogICAgICAgICAgICBPd25lcklEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBBcnRpY2xlID0+IHsKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ2VtYWlsLWV4dGVybmFsJywKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgPT4gJ2N1c3RvbWVyJywKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgPT4gJ1NPTUVAdW5pdHRlc3QuY29tJywKICAgICAgICAgICAgVG8gICAgICAgICAgICAgPT4gJ1NvbWUgVG8gPHRvQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICA9PiAnU29tZSBTdWJqZWN0JywKICAgICAgICAgICAgQm9keSAgICAgICAgICAgPT4gJ3RoZSBtZXNzYWdlIHRleHQnLAogICAgICAgICAgICBNZXNzYWdlSUQgICAgICA9PiAnPGFzZGFzZGFzZC4xMjNAdW5pdHRlc3QuY29tPicsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgID0+ICd0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTE1JywKICAgICAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJ093bmVyVXBkYXRlJywKICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJ1NvbWUgZnJlZSB0ZXh0IScsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE5vQWdlbnROb3RpZnkgPT4gMSwgICAgIyBpZiB5b3UgZG9uJ3Qgd2FudCB0byBzZW5kIGFnZW50IG5vdGlmaWNhdGlvbnMKICAgICAgICB9LAogICAgICAgIFJlc3VsdCA9PiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDAsCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgPT4gJyM0IHRyeScsCiAgICAgICAgU2xlZXAgICAgICAgICAgICAgICAgPT4gODAsCiAgICAgICAgJ1N1cnZleTo6U2VuZFBlcmlvZCcgPT4gMSAvIDI0IC8gNjAsCiAgICAgICAgVGlja2V0ICAgICAgICAgICAgICAgPT4gewogICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJ1NvbWUgVGlja2V0IFRpdGxlJywKICAgICAgICAgICAgUXVldWUgICAgICAgID0+ICdSYXcnLAogICAgICAgICAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICA9PiAnMyBub3JtYWwnLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ29wZW4nLAogICAgICAgICAgICBDdXN0b21lck5vICAgPT4gJzEyMzQ2NScsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAnY3VzdG9tZXJAdW5pdHRlc3QuY29tJywKICAgICAgICAgICAgT3duZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQXJ0aWNsZSA9PiB7CiAgICAgICAgICAgIEFydGljbGVUeXBlICAgID0+ICdlbWFpbC1leHRlcm5hbCcsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgID0+ICdjdXN0b21lcicsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgID0+ICdTT01FQHVuaXR0ZXN0LmNvbScsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgID0+ICdTb21lIFRvIDx0b0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJ1NvbWUgU3ViamVjdCcsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICd0aGUgbWVzc2FnZSB0ZXh0JywKICAgICAgICAgICAgTWVzc2FnZUlEICAgICAgPT4gJzxhc2Rhc2Rhc2QuMTIzQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xNScsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdPd25lclVwZGF0ZScsCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdTb21lIGZyZWUgdGV4dCEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ID0+IDEsICAgICMgaWYgeW91IGRvbid0IHdhbnQgdG8gc2VuZCBhZ2VudCBub3RpZmljYXRpb25zCiAgICAgICAgfSwKICAgICAgICBSZXN1bHQgPT4gWwogICAgICAgICAgICAxLAogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICcjNSB0cnknLAogICAgICAgIFNsZWVwICAgICAgICAgICAgICAgID0+IDIwLAogICAgICAgICdTdXJ2ZXk6OlNlbmRQZXJpb2QnID0+IDEgLyAyNCAvIDYwLAogICAgICAgIFRpY2tldCAgICAgICAgICAgICAgID0+IHsKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdTb21lIFRpY2tldCBUaXRsZScsCiAgICAgICAgICAgIFF1ZXVlICAgICAgICA9PiAnUmF3JywKICAgICAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgICAgICAgICAgU3RhdGUgICAgICAgID0+ICdvcGVuJywKICAgICAgICAgICAgQ3VzdG9tZXJObyAgID0+ICcxMjM0NjUnLAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJ2N1c3RvbWVyQHVuaXR0ZXN0LmNvbScsCiAgICAgICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEFydGljbGUgPT4gewogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICA9PiAnZW1haWwtZXh0ZXJuYWwnLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICA9PiAnY3VzdG9tZXInLAogICAgICAgICAgICBGcm9tICAgICAgICAgICA9PiAnU09NRUB1bml0dGVzdC5jb20nLAogICAgICAgICAgICBUbyAgICAgICAgICAgICA9PiAnU29tZSBUbyA8dG9AdW5pdHRlc3QuY29tPicsCiAgICAgICAgICAgIFN1YmplY3QgICAgICAgID0+ICdTb21lIFN1YmplY3QnLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICA9PiAndGhlIG1lc3NhZ2UgdGV4dCcsCiAgICAgICAgICAgIE1lc3NhZ2VJRCAgICAgID0+ICc8YXNkYXNkYXNkLjEyM0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgPT4gJ3RleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMTUnLAogICAgICAgICAgICBIaXN0b3J5VHlwZSAgICA9PiAnT3duZXJVcGRhdGUnLAogICAgICAgICAgICBIaXN0b3J5Q29tbWVudCA9PiAnU29tZSBmcmVlIHRleHQhJywKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTm9BZ2VudE5vdGlmeSA9PiAxLCAgICAjIGlmIHlvdSBkb24ndCB3YW50IHRvIHNlbmQgYWdlbnQgbm90aWZpY2F0aW9ucwogICAgICAgIH0sCiAgICAgICAgUmVzdWx0ID0+IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMCwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJyM2IHRyeScsCiAgICAgICAgVGlja2V0ID0+IHsKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdTb21lIFRpY2tldCBUaXRsZScsCiAgICAgICAgICAgIFF1ZXVlICAgICAgICA9PiAnUmF3JywKICAgICAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgICAgICAgICAgU3RhdGUgICAgICAgID0+ICdvcGVuJywKICAgICAgICAgICAgQ3VzdG9tZXJObyAgID0+ICcxMjM0NjUnLAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJ2N1c3RvbWVyQHVuaXR0ZXN0LmNvbScsCiAgICAgICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEFydGljbGUgPT4gewogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICA9PiAnZW1haWwtZXh0ZXJuYWwnLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICA9PiAnY3VzdG9tZXInLAogICAgICAgICAgICBGcm9tICAgICAgICAgICA9PiAnTXkgTmFtZScsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgID0+ICdTb21lIFRvIDx0b0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJ1NvbWUgU3ViamVjdCcsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICd0aGUgbWVzc2FnZSB0ZXh0JywKICAgICAgICAgICAgTWVzc2FnZUlEICAgICAgPT4gJzxhc2Rhc2Rhc2QuMTIzQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xNScsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdPd25lclVwZGF0ZScsCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdTb21lIGZyZWUgdGV4dCEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ID0+IDEsICAgICMgaWYgeW91IGRvbid0IHdhbnQgdG8gc2VuZCBhZ2VudCBub3RpZmljYXRpb25zCiAgICAgICAgfSwKICAgICAgICBSZXN1bHQgPT4gWwogICAgICAgICAgICAwLAogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAopOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICBpZiAoICRUZXN0LT57J1N1cnZleTo6U2VuZFBlcmlvZCd9ICkgewogICAgICAgICRDb25maWdPYmplY3QtPlNldCgKICAgICAgICAgICAgS2V5ICAgPT4gJ1N1cnZleTo6U2VuZFBlcmlvZCcsCiAgICAgICAgICAgIFZhbHVlID0+ICRUZXN0LT57J1N1cnZleTo6U2VuZFBlcmlvZCd9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkVGVzdC0+e1NsZWVwfSApIHsKICAgICAgICBzbGVlcCAkVGVzdC0+e1NsZWVwfTsKICAgIH0KCiAgICBteSAkVGlja2V0SUQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGUoCiAgICAgICAgJXsgJFRlc3QtPntUaWNrZXR9IH0sCiAgICApOwoKICAgIG15ICRBcnRpY2xlSUQgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlQ3JlYXRlKAogICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAleyAkVGVzdC0+e0FydGljbGV9IH0sCiAgICApOwoKICAgICMgc2VuZCBzdXJ2ZXkgZmlyc3QgdGltZQogICAgbXkgKCAkSGVhZGVyUmVmLCAkQm9keVJlZiApID0gJFN1cnZleU9iamVjdC0+UmVxdWVzdFNlbmQoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgKTsKCiAgICAjIGNoZWNrIGlmIHN1cnZleSBnb3Qgc2VudAogICAgaWYgKCAkVGVzdC0+e1Jlc3VsdH0tPlswXSApIHsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICR7JEhlYWRlclJlZn0sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IFJlcXVlc3RTZW5kKCkgLSBzdXJ2ZXkgZ290IHNlbnQiLAogICAgICAgICk7CgogICAgICAgICR7JEhlYWRlclJlZn0gPX4gbXsgXiBTdWJqZWN0OiBbIF0gKCAuKz8gKSBcbiBcUys6IFsgXSB9eG1zOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJDEsCiAgICAgICAgICAgICdIZWxwIHVzIHdpdGggeW91ciBmZWVkYmFjayEgPT9VVEYtOD9RPz1DMz04ND1DMz05Nj1DMz05Qz89JywKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gVGVzdCBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gZW1haWwgc3ViamVjdCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWZpbmUgbWFpbCBib2R5CiAgICAgICAgbXkgJE1haWxib2R5MSA9IDw8J0VORCc7ClRoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4gTUlNRSBmb3JtYXQuLi4KCi0tLS0tLS0tLS0tLT1fTUVTU0FHRUlECkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiCkNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpEZWFyIGN1c3RvbWVyLi4uID1DMz1BND1DMz1CNj1DMz1CQz0KCi0tLS0tLS0tLS0tLT1fTUVTU0FHRUlECkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PSJ1dGYtOCIKQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleD0KdC9odG1sOyBjaGFyc2V0PTNEdXRmLTgiLz48L2hlYWQ+PGJvZHkgc3R5bGU9M0QiZm9udC1mYW1pbHk6R2VuZXZhLEhlbHZldGljPQphLEFyaWFsLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJweDsiPkRlYXIgY3VzdG9tZXIuLi4gPUMzPUE0PUMzPUI2PUMzPUJDPC89CmJvZHk+PC9odG1sPj0KCi0tLS0tLS0tLS0tLT1fTUVTU0FHRUlELS0KRU5ECgogICAgICAgICMgY29weSBtYWlsIGJvZHkKICAgICAgICBteSAkTWFpbGJvZHkyID0gJHskQm9keVJlZn07CgogICAgICAgICMgcHJlcGFyZSBtYWlsIGJvZHkKICAgICAgICAkTWFpbGJvZHkyID1+IHN7IFxkezgsMTJ9IC0gXGR7Myw2fSAtIFxkezEsM30gfXtNRVNTQUdFSUR9eG1zZzsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkTWFpbGJvZHkyLAogICAgICAgICAgICAkTWFpbGJvZHkxLAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBUZXN0IHNwZWNpYWwgY2hhcmFjdGVycyBpbiBlbWFpbCBib2R5IiwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAkeyRIZWFkZXJSZWZ9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBSZXF1ZXN0U2VuZCgpIC0gbm8gc3VydmV5IGdvdCBzZW50IiwKICAgICAgICApOwogICAgfQoKICAgICMgc2VuZCBzdXJ2ZXkgc2Vjb25kIHRpbWUKICAgICggJEhlYWRlclJlZiwgJEJvZHlSZWYgKSA9ICRTdXJ2ZXlPYmplY3QtPlJlcXVlc3RTZW5kKAogICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICk7CgogICAgIyBjaGVjayBpZiBzdXJ2ZXkgZ290IHNlbnQKICAgIGlmICggJFRlc3QtPntSZXN1bHR9LT5bMV0gKSB7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICR7JEhlYWRlclJlZn0sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IDIgUmVxdWVzdFNlbmQoKSAtIHN1cnZleSBnb3Qgc2VudCIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgJHskSGVhZGVyUmVmfSwKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gMiBSZXF1ZXN0U2VuZCgpIC0gbm8gc3VydmV5IGdvdCBzZW50IiwKICAgICAgICApOwogICAgfQoKICAgIG15ICREZWxldGUgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXREZWxldGUoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwp9CgojIHRlc3QgR2V0UmljaFRleHREb2N1bWVudENvbXBsZXRlCnsKICAgIG15ICVUZXh0OwoKICAgICN0ZXN0cyBmb3IgcmljaCB0ZXh0CiAgICAkVGV4dHtSaWNoVGV4dH0gPSB7CiAgICAgICAgSW5wdXQgPT4KICAgICAgICAgICAgJyRodG1sL3RleHQkIDxlbT5UaGlzIGlzIHRoZSBpbnRyb2R1Y3Rpb24gdG8gdGhpcyBzdXJ2ZXksIGlmIHlvdSB3YW50IHRvIGFuc3dlciBpdCB5b3UgaGF2ZSB0bzxiciAvPgpyZWFkIHRoaXMgZmlyc3QsIHBsZWFzZSBsZXQgdXMgdGVsbCB5b3UgdGhhbmtzIGZvciB0aGUgb3Bwb3J0dW5pdHkgdG8gaW50ZXJhY3Q8YnIgLz4Kd2l0aCB5b3UuPC9lbT48YnIgLz4KPHVsPgogICAgPGxpPgogICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDEyOCk7Ij5QbGVhc2UgcmVhZCBhbGwgdGhlIGluc3RydWN0aW9uczwvc3Bhbj48L2xpPgogICAgPGxpPgogICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDEyOCk7Ij5QbGVhc2UgdGFrZSBhdHRlbnRpb24gaW4gZXZlcnkgcXVlc3Rpb248L3NwYW4+PC9saT4KICAgIDxsaT4KICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxMjgpOyI+QW5zd2VyIGFzIGNsZWFyIGFzIHBvc3NpYmxlPC9zcGFuPjwvbGk+CjwvdWw+CjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDI1NSwgMTYwLCAxMjIpOyI+VGhpcyBpcyBhbGwgd2UgaGF2ZSB0byB0ZWxsIHlvdSBmb3Igbm93LCBwbGVhc2UgdGFrZSB0aGUgb3Bwb3J0dW5pdHkgbm93IHRvPGJyIC8+CmV4cHJlc3MgeW91ciBmZWVsaW5ncyBpbiBvdXIgc3VydmV5Ljwvc3Bhbj48YnIgLz4KPGJyIC8+CjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDI1NSwgMTYwLCAxMjIpOyI+IGdyZWV0aW5ncyw8YnIgLz4KPGJyIC8+CmRhbmllbHosPC9zcGFuPjxiciAvPicsCiAgICAgICAgT3V0cHV0ID0+CiAgICAgICAgICAgICc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPjwvaGVhZD48Ym9keSBzdHlsZT0iZm9udC1mYW1pbHk6R2VuZXZhLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHg7Ij48ZW0+VGhpcyBpcyB0aGUgaW50cm9kdWN0aW9uIHRvIHRoaXMgc3VydmV5LCBpZiB5b3Ugd2FudCB0byBhbnN3ZXIgaXQgeW91IGhhdmUgdG88YnIgLz4KcmVhZCB0aGlzIGZpcnN0LCBwbGVhc2UgbGV0IHVzIHRlbGwgeW91IHRoYW5rcyBmb3IgdGhlIG9wcG9ydHVuaXR5IHRvIGludGVyYWN0PGJyIC8+CndpdGggeW91LjwvZW0+PGJyIC8+Cjx1bD4KICAgIDxsaT4KICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxMjgpOyI+UGxlYXNlIHJlYWQgYWxsIHRoZSBpbnN0cnVjdGlvbnM8L3NwYW4+PC9saT4KICAgIDxsaT4KICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxMjgpOyI+UGxlYXNlIHRha2UgYXR0ZW50aW9uIGluIGV2ZXJ5IHF1ZXN0aW9uPC9zcGFuPjwvbGk+CiAgICA8bGk+CiAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTI4KTsiPkFuc3dlciBhcyBjbGVhciBhcyBwb3NzaWJsZTwvc3Bhbj48L2xpPgo8L3VsPgo8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigyNTUsIDE2MCwgMTIyKTsiPlRoaXMgaXMgYWxsIHdlIGhhdmUgdG8gdGVsbCB5b3UgZm9yIG5vdywgcGxlYXNlIHRha2UgdGhlIG9wcG9ydHVuaXR5IG5vdyB0bzxiciAvPgpleHByZXNzIHlvdXIgZmVlbGluZ3MgaW4gb3VyIHN1cnZleS48L3NwYW4+PGJyIC8+CjxiciAvPgo8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigyNTUsIDE2MCwgMTIyKTsiPiBncmVldGluZ3MsPGJyIC8+CjxiciAvPgpkYW5pZWx6LDwvc3Bhbj48YnIgLz48L2JvZHk+PC9odG1sPicsCiAgICB9OwoKICAgICMgY3JlYXRlIHRlc3RzIGZvciBzaW1wbGUgdGV4dAogICAgJFRleHR7U2ltcGxlVGV4dH0gPSB7CiAgICAgICAgSW5wdXQgPT4gIlRoaXMgaXMgYW4gaW50ZXJuYWwgZGVzY3JpcHRpb24gZXhhbXBsZToKCiAtIE9uZQogLSBUd28KIC0gVGhyZWUKIC0gRm91cgogLSBGaXZlCgpUaGF0J3MgaXQuCi1kegoiLAogICAgICAgIE91dHB1dCA9PgogICAgICAgICAgICAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz48L2hlYWQ+PGJvZHkgc3R5bGU9ImZvbnQtZmFtaWx5OkdlbmV2YSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB4OyI+VGhpcyBpcyBhbiBpbnRlcm5hbCBkZXNjcmlwdGlvbiBleGFtcGxlOgoKIC0gT25lCiAtIFR3bwogLSBUaHJlZQogLSBGb3VyCiAtIEZpdmUKClRoYXRcJ3MgaXQuCi1kego8L2JvZHk+PC9odG1sPicsCiAgICB9OwoKICAgIG15ICREb2N1bWVudENvbXBsZXRlOwogICAgZm9yIG15ICRUZXh0VHlwZSAoIHNvcnQga2V5cyAlVGV4dCApIHsKICAgICAgICAkRG9jdW1lbnRDb21wbGV0ZQogICAgICAgICAgICA9ICRTdXJ2ZXlPYmplY3QtPkdldFJpY2hUZXh0RG9jdW1lbnRDb21wbGV0ZSggVGV4dCA9PiAkVGV4dHskVGV4dFR5cGV9LT57SW5wdXR9ICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkVGV4dHskVGV4dFR5cGV9LT57T3V0cHV0fSwKICAgICAgICAgICAgJERvY3VtZW50Q29tcGxldGUsCiAgICAgICAgICAgICJHZXRSaWNoVGV4dERvY3VtZW50Q29tcGxldGUgVGVzdCAtICRUZXh0VHlwZSIsCiAgICAgICAgKTsKICAgIH0KfQoKIyBhZGRlZCAodmVyeSBsaW1pdGVkKSBTdXJ2ZXlTZWFyY2ggdGVzdHMKCm15IEBJRHMgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlTZWFyY2goCiAgICBOb3RpZmljYXRpb25TZW5kZXIgPT4gJ3F1YWxpdHlAdW5pdHRlc3QuY29tJywKICAgIExpbWl0ICAgICAgICAgICAgICA9PiAxNTAsICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgVXNlcklEICAgICAgICAgICAgID0+IDEsCik7CgokU2VsZi0+VHJ1ZSgKICAgIHNjYWxhciBASURzLAogICAgIlN1cnZleVNlYXJjaCgpIiwKKTsKCm15IEBTb3J0ZWRJRHMgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlTZWFyY2goCiAgICBOb3RpZmljYXRpb25TZW5kZXIgPT4gJ3F1YWxpdHlAdW5pdHRlc3QuY29tJywKICAgIE9yZGVyQnkgICAgICAgICAgICA9PiBbICdTdXJ2ZXlJRCcsICdUaXRsZScgXSwgICAgIyAob3B0aW9uYWwpCiAgICBPcmRlckJ5RGlyZWN0aW9uICAgPT4gWyAnRG93bicsICdVcCcgXSwgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgTGltaXQgICAgICAgICAgICAgID0+IDE1MCwgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAopOwoKJFNlbGYtPlRydWUoCiAgICBzY2FsYXIgQElEcywKICAgICJTdXJ2ZXlTZWFyY2goKSB3aXRoIHNvcnQiLAopOwoKIyBjbGVhbnVwIHN5c3RlbQokU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICBTUUwgPT4gIkRFTEVURSBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIHNlbmRfdG8gTElLRSAnXCVcQHVuaXR0ZXN0LmNvbVwlJyIsCik7CgoxOwo=
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXRTdXJ2ZXkucG0gLSBwcm92aWRlcyBnZW5lcmljIEhUTUwgb3V0cHV0IGZvciBTdXJ2ZXkKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMiBPVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvCiMgLS0KIyAkSWQ6IExheW91dFN1cnZleS5wbSx2IDEuNCAyMDEyLzExLzIwIDE5OjEyOjExIG1oIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXRTdXJ2ZXk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dDsKCnVzZSB2YXJzIHF3KCRWRVJTSU9OKTsKJFZFUlNJT04gPSBxdygkUmV2aXNpb246IDEuNCAkKSBbMV07Cgo9b3ZlciA0Cgo9aXRlbSBTdXJ2ZXlMaXN0U2hvdygpCgpSZXR1cm5zIGEgbGlzdCBvZiBzdXJ2ZXlzIGxpc3Qgd2l0aCBwYWdpbmF0aW9uLgoKVGhpcyBmdW5jdGlvbiBpcyBzaW1pbGFyIHRvIEw8S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dFRpY2tldDo6VGlja2V0TGlzdFNob3coKT4KaW4gRjxLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0VGlja2V0LnBtPi4KCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+U3VydmV5TGlzdFNob3coCiAgICAgICAgU3VydmV5SURzICA9PiAkU3VydmV5SURzUmVmLCAgICAgICAgICAgICAgICAgICAgICAjIHRvdGFsIGxpc3Qgb2Ygc3VydmV5cyBpZHMsIHRoYXQgY2FuIGJlIGxpc3RlZAogICAgICAgIFRvdGFsICAgICAgPT4gc2NhbGFyIEB7ICRTdXJ2ZXlJRHNSZWYgfSwgICAgICAgICAgIyB0b3RhbCBudW1iZXIgb2YgbGlzdCBpdGVtcywgY2hhbmdlcyBpbiB0aGlzIGNhc2UKICAgICAgICBWaWV3ICAgICAgID0+ICRTZWxmLT57Vmlld30sICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwsIHRoZSBkZWZhdWx0IHZhbHVlIGlzICdTbWFsbCcKICAgICAgICBGaWx0ZXIgICAgID0+ICdBbGwnLAogICAgICAgIEZpbHRlcnMgICAgPT4gXCVOYXZCYXJGaWx0ZXIsCiAgICAgICAgRmlsdGVyTGluayA9PiAkTGlua0ZpbHRlciwKICAgICAgICBUaXRsZU5hbWUgID0+ICdPdmVydmlldzogU3VydmV5JywKICAgICAgICBUaXRsZVZhbHVlID0+ICRTZWxmLT57RmlsdGVyfSwKICAgICAgICBFbnYgICAgICAgID0+ICRTZWxmLAogICAgICAgIExpbmtQYWdlICAgPT4gJExpbmtQYWdlLAogICAgKTsKCj1jdXQKCnN1YiBTdXJ2ZXlMaXN0U2hvdyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGFrZSBvYmplY3QgcmVmIHRvIGxvY2FsLCByZW1vdmUgaXQgZnJvbSAlUGFyYW0gKHByZXZlbnQgbWVtb3J5IGxlYWspCiAgICBteSAkRW52ID0gZGVsZXRlICRQYXJhbXtFbnZ9OwoKICAgICMgbG9va3VwIGxhdGVzdCB1c2VkIHZpZXcgbW9kZQogICAgaWYgKCAhJFBhcmFte1ZpZXd9ICYmICRTZWxmLT57ICdVc2VyU3VydmV5T3ZlcnZpZXcnIC4gJEVudi0+e0FjdGlvbn0gfSApIHsKICAgICAgICAkUGFyYW17Vmlld30gPSAkU2VsZi0+eyAnVXNlclN1cnZleU92ZXJ2aWV3JyAuICRFbnYtPntBY3Rpb259IH07CiAgICB9CgogICAgIyBzZXQgZnJvbnRlbmQKICAgIG15ICRGcm9udGVuZCA9ICRQYXJhbXtGcm9udGVuZH0gfHwgJ0FnZW50JzsKCiAgICAjIHNldCBkZWZhdXQgdmlldyBtb2RlIHRvICdzbWFsbCcKICAgIG15ICRWaWV3ID0gJFBhcmFte1ZpZXd9IHx8ICdTbWFsbCc7CgogICAgIyBzdG9yZSBsYXRlc3QgdmlldyBtb2RlCiAgICAkU2VsZi0+e1Nlc3Npb25PYmplY3R9LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ1VzZXJTdXJ2ZXlPdmVydmlldycgLiAkRW52LT57QWN0aW9ufSwKICAgICAgICBWYWx1ZSAgICAgPT4gJFZpZXcsCiAgICApOwoKICAgICMgZ2V0IGJhY2tlbmQgZnJvbSBjb25maWcKICAgIG15ICRCYWNrZW5kcyA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6OkZyb250ZW5kOjpPdmVydmlldycpOwogICAgaWYgKCAhJEJhY2tlbmRzICkgewogICAgICAgIHJldHVybiAkRW52LT57TGF5b3V0T2JqZWN0fS0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAnTmVlZCBjb25maWcgb3B0aW9uIFN1cnZleTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3JywKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgZm9yIGhhc2gtcmVmCiAgICBpZiAoIHJlZiAkQmFja2VuZHMgbmUgJ0hBU0gnICkgewogICAgICAgIHJldHVybiAkRW52LT57TGF5b3V0T2JqZWN0fS0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAnQ29uZmlnIG9wdGlvbiBTdXJ2ZXk6OkZyb250ZW5kOjpPdmVydmlldyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmIScsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBjb25maWcga2V5CiAgICBpZiAoICEkQmFja2VuZHMtPnskVmlld30gKSB7CiAgICAgICAgcmV0dXJuICRFbnYtPntMYXlvdXRPYmplY3R9LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICJObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAnJFZpZXcnISIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG5hdiBiYXIKICAgIG15ICRTdGFydEhpdCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSgKICAgICAgICBQYXJhbSA9PiAnU3RhcnRIaXQnLAogICAgKSB8fCAxOwoKICAgICMgZ2V0IHBlcnNvbmFsIHBhZ2Ugc2hvd24gY291bnQKICAgIG15ICRQYWdlU2hvd25QcmVmZXJlbmNlc0tleSA9ICdVc2VyU3VydmV5T3ZlcnZpZXcnIC4gJFZpZXcgLiAnUGFnZVNob3duJzsKICAgIG15ICRQYWdlU2hvd24gICAgICAgICAgICAgICA9ICRTZWxmLT57JFBhZ2VTaG93blByZWZlcmVuY2VzS2V5fSB8fCAxMDsKICAgIG15ICRHcm91cCAgICAgICAgICAgICAgICAgICA9ICdTdXJ2ZXlPdmVydmlldycgLiAkVmlldyAuICdQYWdlU2hvd24nOwoKICAgICMgY2hlY2sgc3RhcnQgb3B0aW9uLCBpZiBoaWdoZXIgdGhlbiBlbGVtZW50cyBhdmFpbGFibGUsIHNldAogICAgIyBpdCB0byB0aGUgbGFzdCBvdmVydmlldyBwYWdlIChUaGFua3MgdG8gU3RlZmFuIFNjaG1pZHQhKQogICAgaWYgKCAkU3RhcnRIaXQgPiAkUGFyYW17VG90YWx9ICkgewogICAgICAgIG15ICRQYWdlcyA9IGludCggKCAkUGFyYW17VG90YWx9IC8gJFBhZ2VTaG93biApICsgMC45OTk5OSApOwogICAgICAgICRTdGFydEhpdCA9ICggKCAkUGFnZXMgLSAxICkgKiAkUGFnZVNob3duICkgKyAxOwogICAgfQoKICAgICMgZ2V0IGRhdGEgc2VsZWN0aW9uCiAgICBteSAlRGF0YTsKICAgIG15ICRDb25maWcgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnUHJlZmVyZW5jZXNHcm91cHMnKTsKICAgIGlmICggJENvbmZpZyAmJiAkQ29uZmlnLT57JEdyb3VwfSAmJiAkQ29uZmlnLT57JEdyb3VwfS0+e0RhdGF9ICkgewogICAgICAgICVEYXRhID0gJXsgJENvbmZpZy0+eyRHcm91cH0tPntEYXRhfSB9OwogICAgfQoKICAgICMgc2V0IHBhZ2UgbGltaXQgYW5kIGJ1aWxkIHBhZ2UgbmF2CiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDIwXzAwMDsKICAgIG15ICVQYWdlTmF2ID0gJEVudi0+e0xheW91dE9iamVjdH0tPlBhZ2VOYXZCYXIoCiAgICAgICAgTGltaXQgICAgID0+ICRMaW1pdCwKICAgICAgICBTdGFydEhpdCAgPT4gJFN0YXJ0SGl0LAogICAgICAgIFBhZ2VTaG93biA9PiAkUGFnZVNob3duLAogICAgICAgIEFsbEhpdHMgICA9PiAkUGFyYW17VG90YWx9IHx8IDAsCiAgICAgICAgQWN0aW9uICAgID0+ICdBY3Rpb249JyAuICRFbnYtPntMYXlvdXRPYmplY3R9LT57QWN0aW9ufSwKICAgICAgICBMaW5rICAgICAgPT4gJFBhcmFte0xpbmtQYWdlfSwKICAgICk7CgogICAgIyBidWlsZCBzaG93biBzdXJ2ZXlzIHBlciBwYWdlCiAgICAkUGFyYW17UmVxdWVzdGVkVVJMfSAgICA9ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IjsKICAgICRQYXJhbXtHcm91cH0gICAgICAgICAgID0gJEdyb3VwOwogICAgJFBhcmFte1ByZWZlcmVuY2VzS2V5fSAgPSAkUGFnZVNob3duUHJlZmVyZW5jZXNLZXk7CiAgICAkUGFyYW17UGFnZVNob3duU3RyaW5nfSA9ICRTZWxmLT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1lICAgICAgICA9PiAkUGFnZVNob3duUHJlZmVyZW5jZXNLZXksCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhZ2VTaG93biwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIERhdGEgICAgICAgID0+IFwlRGF0YSwKICAgICk7CgogICAgIyBidWlsZCBuYXZiYXIgY29udGVudAogICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgYmFjayBsaW5rCiAgICBpZiAoICRQYXJhbXtMaW5rQmFja30gKSB7CiAgICAgICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclBhZ2VCYWNrJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgZmlsdGVycwogICAgaWYgKCAkUGFyYW17RmlsdGVyc30gKSB7CgogICAgICAgICMgZ2V0IGdpdmVuIGZpbHRlcnMKICAgICAgICBteSBATmF2QmFyRmlsdGVyczsKICAgICAgICBmb3IgbXkgJFByaW8gKCBzb3J0IGtleXMgJXsgJFBhcmFte0ZpbHRlcnN9IH0gKSB7CiAgICAgICAgICAgIHB1c2ggQE5hdkJhckZpbHRlcnMsICRQYXJhbXtGaWx0ZXJzfS0+eyRQcmlvfTsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgZmlsdGVyIGNvbnRlbnQKICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyRmlsdGVyJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBsb29wIG92ZXIgZmlsdGVycwogICAgICAgIG15ICRDb3VudCA9IDA7CiAgICAgICAgZm9yIG15ICRGaWx0ZXIgKEBOYXZCYXJGaWx0ZXJzKSB7CgogICAgICAgICAgICAjIGluY3JlbWVudCBmaWx0ZXIgY291bnQgYW5kIGJ1aWxkIGZpbHRlciBpdGVtCiAgICAgICAgICAgICRDb3VudCsrOwogICAgICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlckl0ZW0nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICV7JEZpbHRlcn0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmaWx0ZXIgaXMgc2VsZWN0ZWQKICAgICAgICAgICAgaWYgKCAkRmlsdGVyLT57RmlsdGVyfSBlcSAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICAgICAgICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgJXskRmlsdGVyfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWROb3QnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICV7JEZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgbG9vcCBvdmVyIGNvbmZpZ3VyZWQgYmFja2VuZHMKICAgIGZvciBteSAkQmFja2VuZCAoIHNvcnQga2V5cyAleyRCYWNrZW5kc30gKSB7CgogICAgICAgICMgYnVpbGQgbmF2YmFyIHZpZXcgbW9kZQogICAgICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJXsgJEJhY2tlbmRzLT57JEJhY2tlbmR9IH0sCiAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJFBhcmFte0ZpbHRlcn0sCiAgICAgICAgICAgICAgICBWaWV3ICAgPT4gJEJhY2tlbmQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjdXJyZW50IHZpZXcgaXMgY29uZmlndXJlZCBpbiBiYWNrZW5kCiAgICAgICAgaWYgKCAkVmlldyBlcSAkQmFja2VuZCApIHsKICAgICAgICAgICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZVNlbGVjdGVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAleyAkQmFja2VuZHMtPnskQmFja2VuZH0gfSwKICAgICAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJFBhcmFte0ZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyVmlld01vZGVOb3RTZWxlY3RlZCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJXsgJEJhY2tlbmRzLT57JEJhY2tlbmR9IH0sCiAgICAgICAgICAgICAgICAgICAgRmlsdGVyID0+ICRQYXJhbXtGaWx0ZXJ9LAogICAgICAgICAgICAgICAgICAgIFZpZXcgICA9PiAkQmFja2VuZCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgcGFnZSBuYXYgaXMgYXZhaWxhYmxlCiAgICBpZiAoJVBhZ2VOYXYpIHsKICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyUGFnZU5hdkJhcicsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYWdlTmF2LAogICAgICAgICk7CgogICAgICAgICMgZG9uJ3Qgc2hvdyBjb250ZXh0IHNldHRpbmdzIGluIEFKQVggY2FzZSAoZS4gZy4gaW4gY3VzdG9tZXIgdGlja2V0IGhpc3RvcnkpLAogICAgICAgICMgICBiZWNhdXNlIHRoZSBzdWJtaXQgd2l0aCBwYWdlIHJlbG9hZCB3aWxsIG5vdCB3b3JrIHRoZXJlCiAgICAgICAgaWYgKCAhJFBhcmFte0FKQVh9ICkgewogICAgICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZXh0U2V0dGluZ3MnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhZ2VOYXYsCiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBidWlsZCBodG1sIGNvbnRlbnQKICAgIG15ICRPdXRwdXROYXZCYXIgPSAkRW52LT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRTdXJ2ZXlPdmVydmlld05hdkJhcicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgKTsKCiAgICAjIGNyZWF0ZSBvdXRwdXQKICAgIG15ICRPdXRwdXRSYXcgPSAnJzsKICAgIGlmICggISRQYXJhbXtPdXRwdXR9ICkgewogICAgICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5QcmludCgKICAgICAgICAgICAgT3V0cHV0ID0+IFwkT3V0cHV0TmF2QmFyLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkT3V0cHV0UmF3IC49ICRPdXRwdXROYXZCYXI7CiAgICB9CgogICAgIyBsb2FkIG1vZHVsZQogICAgaWYgKCAhJFNlbGYtPntNYWluT2JqZWN0fS0+UmVxdWlyZSggJEJhY2tlbmRzLT57JFZpZXd9LT57TW9kdWxlfSApICkgewogICAgICAgIHJldHVybiAkRW52LT57TGF5b3V0T2JqZWN0fS0+RmF0YWxFcnJvcigpOwogICAgfQoKICAgICMgY2hlY2sgZm9yIGJhY2tlbmQgb2JqZWN0CiAgICBteSAkT2JqZWN0ID0gJEJhY2tlbmRzLT57JFZpZXd9LT57TW9kdWxlfS0+bmV3KCAleyRFbnZ9ICk7CiAgICByZXR1cm4gaWYgISRPYmplY3Q7CgogICAgIyBydW4gbW9kdWxlCiAgICBteSAkT3V0cHV0ID0gJE9iamVjdC0+UnVuKAogICAgICAgICVQYXJhbSwKICAgICAgICBMaW1pdCAgICAgPT4gJExpbWl0LAogICAgICAgIFN0YXJ0SGl0ICA9PiAkU3RhcnRIaXQsCiAgICAgICAgUGFnZVNob3duID0+ICRQYWdlU2hvd24sCiAgICAgICAgQWxsSGl0cyAgID0+ICRQYXJhbXtUb3RhbH0gfHwgMCwKICAgICAgICBGcm9udGVuZCAgPT4gJEZyb250ZW5kLAogICAgKTsKCiAgICAjIGNyZWF0ZSBvdXRwdXQKICAgIGlmICggISRQYXJhbXtPdXRwdXR9ICkgewogICAgICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5QcmludCgKICAgICAgICAgICAgT3V0cHV0ID0+IFwkT3V0cHV0LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkT3V0cHV0UmF3IC49ICRPdXRwdXQ7CiAgICB9CgogICAgIyBjcmVhdGUgb3ZlcnZpZXcgbmF2IGJhcgogICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyJywKICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgKTsKCiAgICAjIHJldHVybiBjb250ZW50IGlmIGF2YWlsYWJsZQogICAgcmV0dXJuICRPdXRwdXRSYXc7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9aGVhZDEgVkVSU0lPTgoKJFJldmlzaW9uOiAxLjQgJCAkRGF0ZTogMjAxMi8xMS8yMCAxOToxMjoxMSAkCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0FnZW50U3VydmV5LnBtIC0gYSBzdXJ2ZXkgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBBZ2VudFN1cnZleS5wbSx2IDEuNTQgMjAxMi8xMS8yMSAxMDo1OTo1MyBqaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50U3VydmV5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzOwoKdXNlIHZhcnMgcXcoJFZFUlNJT04pOwokVkVSU0lPTiA9IHF3KCRSZXZpc2lvbjogMS41NCAkKSBbMV07CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IGNvbW1vbiBvYmplY3RzCiAgICAleyRTZWxmfSA9ICVQYXJhbTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoUGFyYW1PYmplY3QgREJPYmplY3QgTGF5b3V0T2JqZWN0IExvZ09iamVjdCBDb25maWdPYmplY3QpKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPnskT2JqZWN0fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5GYXRhbEVycm9yKCBNZXNzYWdlID0+ICJHb3Qgbm8gJE9iamVjdCEiICk7CiAgICAgICAgfQogICAgfQogICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9ICAgID0gS2VybmVsOjpTeXN0ZW06OlN1cnZleS0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzLT5uZXcoJVBhcmFtKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgiU3VydmV5OjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBnZXQgZGVmYXVsdCBwYXJhbWV0ZXJzCiAgICAkU2VsZi0+e0ZpbHRlcn0gPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgfHwgJyc7CiAgICAkU2VsZi0+e1ZpZXd9ICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdWaWV3JyApICAgfHwgJyc7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJE91dHB1dDsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1cnZleSBlZGl0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3VydmV5RWRpdCcgKSB7CiAgICAgICAgbXkgJFN1cnZleUlEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKCBFbGVtZW50SUQgPT4gJFN1cnZleUlELCBFbGVtZW50ID0+ICdTdXJ2ZXknICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50U3VydmV5IgogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KCBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQgKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fU3VydmV5QWRkTWFzaygKICAgICAgICAgICAgJVN1cnZleSwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1cnZleSBzYXZlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3VydmV5U2F2ZScgKSB7CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwoKICAgICAgICBpZiAoICEkU3VydmV5SUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHJlcXVpZXJlZCBmb3JtIGVsZW1lbnRzIGFuZCBlcnJvcnMKICAgICAgICBteSAlU2VydmVyRXJyb3I7CiAgICAgICAgbXkgJUZvcm1FbGVtZW50czsKICAgICAgICBmb3IgbXkgJEl0ZW0gKAogICAgICAgICAgICBxdyggVGl0bGUgSW50cm9kdWN0aW9uIERlc2NyaXB0aW9uIE5vdGlmaWNhdGlvblNlbmRlciBOb3RpZmljYXRpb25TdWJqZWN0IE5vdGlmaWNhdGlvbkJvZHkgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkRm9ybUVsZW1lbnRzeyRJdGVtfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIiRJdGVtIiApOwoKICAgICAgICAgICAgaWYgKCAhJEZvcm1FbGVtZW50c3skSXRlbX0gKSB7CiAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3J7ICIkSXRlbSIgLiAnU2VydmVyRXJyb3InIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBAeyAkRm9ybUVsZW1lbnRze1F1ZXVlc30gfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRBcnJheSggUGFyYW0gPT4gIlF1ZXVlcyIgKTsKCiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJvbnRlbmQ6OlJpY2hUZXh0JykgKSB7CiAgICAgICAgICAgICRGb3JtRWxlbWVudHN7SW50cm9kdWN0aW9ufQogICAgICAgICAgICAgICAgPSAoIGxlbmd0aCAkRm9ybUVsZW1lbnRze0ludHJvZHVjdGlvbn0gKQogICAgICAgICAgICAgICAgPyAiXCRodG1sL3RleHRcJCAkRm9ybUVsZW1lbnRze0ludHJvZHVjdGlvbn0iCiAgICAgICAgICAgICAgICA6ICcnOwogICAgICAgICAgICAkRm9ybUVsZW1lbnRze05vdGlmaWNhdGlvbkJvZHl9CiAgICAgICAgICAgICAgICA9ICggbGVuZ3RoICRGb3JtRWxlbWVudHN7Tm90aWZpY2F0aW9uQm9keX0gKQogICAgICAgICAgICAgICAgPyAiXCRodG1sL3RleHRcJCAkRm9ybUVsZW1lbnRze05vdGlmaWNhdGlvbkJvZHl9IgogICAgICAgICAgICAgICAgOiAnJzsKICAgICAgICAgICAgJEZvcm1FbGVtZW50c3tEZXNjcmlwdGlvbn0KICAgICAgICAgICAgICAgID0gKCBsZW5ndGggJEZvcm1FbGVtZW50c3tEZXNjcmlwdGlvbn0gKQogICAgICAgICAgICAgICAgPyAiXCRodG1sL3RleHRcJCAkRm9ybUVsZW1lbnRze0Rlc2NyaXB0aW9ufSIKICAgICAgICAgICAgICAgIDogJyc7CiAgICAgICAgfQoKICAgICAgICAjIHNhdmUgaWYgbm8gZXJyb3JzCiAgICAgICAgaWYgKCAhJVNlcnZlckVycm9yICkgewogICAgICAgICAgICBteSAkU2F2ZVJlc3VsdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5U2F2ZSgKICAgICAgICAgICAgICAgICVGb3JtRWxlbWVudHMsCiAgICAgICAgICAgICAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Qb3B1cENsb3NlKAogICAgICAgICAgICAgICAgVVJMID0+ICJBY3Rpb249QWdlbnRTdXJ2ZXlab29tO1N1cnZleUlEPSRTdXJ2ZXlJRDsiLAogICAgICAgICAgICApOwoKICAgICAgICB9CgogICAgICAgICMgcmVsb2FkIGZvcm0gaWYgZXJyb3IKICAgICAgICByZXR1cm4gJFNlbGYtPl9TdXJ2ZXlBZGRNYXNrKAogICAgICAgICAgICBGb3JtRWxlbWVudHMgPT4gXCVGb3JtRWxlbWVudHMsCiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiBcJVNlcnZlckVycm9yLAogICAgICAgICAgICBTdXJ2ZXlJRCAgICAgPT4gJFN1cnZleUlELAogICAgICAgICk7CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3VydmV5IGFkZAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1N1cnZleUFkZCcgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fU3VydmV5QWRkTWFzazsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1cnZleSBuZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdXJ2ZXlOZXcnICkgewoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBteSAkU3VydmV5SUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKCiAgICAgICAgIyBnZXQgcmVxdWllcmVkIGZvcm0gZWxlbWVudHMgYW5kIGVycm9ycwogICAgICAgIG15ICVTZXJ2ZXJFcnJvcjsKICAgICAgICBteSAlRm9ybUVsZW1lbnRzOwogICAgICAgIGZvciBteSAkSXRlbSAoCiAgICAgICAgICAgIHF3KCBUaXRsZSBJbnRyb2R1Y3Rpb24gRGVzY3JpcHRpb24gTm90aWZpY2F0aW9uU2VuZGVyIE5vdGlmaWNhdGlvblN1YmplY3QgTm90aWZpY2F0aW9uQm9keSApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRGb3JtRWxlbWVudHN7JEl0ZW19ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiJEl0ZW0iICk7CgogICAgICAgICAgICBpZiAoICEkRm9ybUVsZW1lbnRzeyRJdGVtfSApIHsKICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvcnsgIiRJdGVtIiAuICdTZXJ2ZXJFcnJvcicgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIEB7ICRGb3JtRWxlbWVudHN7UXVldWVzfSB9ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldEFycmF5KCBQYXJhbSA9PiAiUXVldWVzIiApOwoKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcm9udGVuZDo6UmljaFRleHQnKSApIHsKICAgICAgICAgICAgJEZvcm1FbGVtZW50c3tJbnRyb2R1Y3Rpb259ICAgICA9ICJcJGh0bWwvdGV4dFwkICRGb3JtRWxlbWVudHN7SW50cm9kdWN0aW9ufSI7CiAgICAgICAgICAgICRGb3JtRWxlbWVudHN7Tm90aWZpY2F0aW9uQm9keX0gPSAiXCRodG1sL3RleHRcJCAkRm9ybUVsZW1lbnRze05vdGlmaWNhdGlvbkJvZHl9IjsKICAgICAgICAgICAgJEZvcm1FbGVtZW50c3tEZXNjcmlwdGlvbn0gICAgICA9ICJcJGh0bWwvdGV4dFwkICRGb3JtRWxlbWVudHN7RGVzY3JpcHRpb259IjsKICAgICAgICB9CgogICAgICAgICMgc2F2ZSBpZiBubyBlcnJvcnMKICAgICAgICBpZiAoICElU2VydmVyRXJyb3IgKSB7CiAgICAgICAgICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5TmV3KAogICAgICAgICAgICAgICAgJUZvcm1FbGVtZW50cywKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRTdXJ2ZXlab29tO1N1cnZleUlEPSRTdXJ2ZXlJRCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHJlbG9hZCBmb3JtIGlmIGVycm9yCiAgICAgICAgcmV0dXJuICRTZWxmLT5fU3VydmV5QWRkTWFzaygKICAgICAgICAgICAgRm9ybUVsZW1lbnRzID0+IFwlRm9ybUVsZW1lbnRzLAogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gXCVTZXJ2ZXJFcnJvciwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1cnZleSBzdGF0dXMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdXJ2ZXlTdGF0dXMnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKICAgICAgICBteSAkTmV3U3RhdHVzID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiTmV3U3RhdHVzIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwgRWxlbWVudCA9PiAnU3VydmV5JyApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IGEgbmV3IHN0YXR1cwogICAgICAgIG15ICRTdGF0dXNTZXQgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlN1cnZleVN0YXR1c1NldCgKICAgICAgICAgICAgU3VydmV5SUQgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgTmV3U3RhdHVzID0+ICROZXdTdGF0dXMsCiAgICAgICAgKTsKICAgICAgICBteSAkTWVzc2FnZSA9ICcnOwogICAgICAgIGlmICggZGVmaW5lZCgkU3RhdHVzU2V0KSAmJiAkU3RhdHVzU2V0IGVxICdOb1F1ZXN0aW9uJyApIHsKICAgICAgICAgICAgJE1lc3NhZ2UgPSAnO01lc3NhZ2U9Tm9RdWVzdGlvbic7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggZGVmaW5lZCgkU3RhdHVzU2V0KSAmJiAkU3RhdHVzU2V0IGVxICdJbmNvbXBsZXRlUXVlc3Rpb24nICkgewogICAgICAgICAgICAkTWVzc2FnZSA9ICc7TWVzc2FnZT1JbmNvbXBsZXRlUXVlc3Rpb24nOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoIGRlZmluZWQoJFN0YXR1c1NldCkgJiYgJFN0YXR1c1NldCBlcSAnU3RhdHVzU2V0JyApIHsKICAgICAgICAgICAgJE1lc3NhZ2UgPSAnO01lc3NhZ2U9U3RhdHVzU2V0JzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRTdXJ2ZXlab29tO1N1cnZleUlEPSRTdXJ2ZXlJRCRNZXNzYWdlIiwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3RhdHMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdGF0cycgKSB7CiAgICAgICAgbXkgJFN1cnZleUlEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKCBFbGVtZW50SUQgPT4gJFN1cnZleUlELCBFbGVtZW50ID0+ICdTdXJ2ZXknICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KICAgICAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoCiAgICAgICAgICAgIFRpdGxlID0+ICdTdGF0cyBPdmVydmlldycsCiAgICAgICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KCBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQgKTsKCiAgICAgICAgIyBwcmludCB0aGUgbWFpbiB0YWJsZS4KICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTdGF0cycsCiAgICAgICAgICAgIERhdGEgPT4geyVTdXJ2ZXl9LAogICAgICAgICk7CiAgICAgICAgbXkgQExpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlZvdGVMaXN0KCBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQgKTsKICAgICAgICBmb3IgbXkgJFZvdGUgKEBMaXN0KSB7CiAgICAgICAgICAgICRWb3RlLT57U3VydmV5SUR9ID0gJFN1cnZleUlEOwogICAgICAgICAgICBteSAlVGlja2V0ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoIFRpY2tldElEID0+ICRWb3RlLT57VGlja2V0SUR9ICk7CiAgICAgICAgICAgICRWb3RlLT57VGlja2V0TnVtYmVyfSA9ICRUaWNrZXR7VGlja2V0TnVtYmVyfTsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N0YXRzVm90ZScsCiAgICAgICAgICAgICAgICBEYXRhID0+ICRWb3RlLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50U3VydmV5JywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Gb290ZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3RhdHMgZGV0YWlscwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1N0YXRzRGV0YWlsJyApIHsKICAgICAgICBteSAkU3VydmV5SUQgICAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CiAgICAgICAgbXkgJFJlcXVlc3RJRCAgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlJlcXVlc3RJRCIgKTsKICAgICAgICBteSAkVGlja2V0TnVtYmVyID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiVGlja2V0TnVtYmVyIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwgRWxlbWVudCA9PiAnU3VydmV5JyApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRSZXF1ZXN0SUQsIEVsZW1lbnQgPT4gJ1JlcXVlc3QnICkKICAgICAgICAgICAgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KICAgICAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoCiAgICAgICAgICAgIFRpdGxlID0+ICdTdGF0cyBEZXRhaWwnLAogICAgICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgICk7CgogICAgICAgIG15ICVTdXJ2ZXkgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlN1cnZleUdldCggU3VydmV5SUQgPT4gJFN1cnZleUlEICk7CgogICAgICAgICMgcHJpbnQgdGhlIG1haW4gdGFibGUuCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU3RhdHNEZXRhaWwnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVTdXJ2ZXksCiAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRpY2tldE51bWJlciwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15IEBRdWVzdGlvbkxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uTGlzdCggU3VydmV5SUQgPT4gJFN1cnZleUlEICk7CiAgICAgICAgZm9yIG15ICRRdWVzdGlvbiAoQFF1ZXN0aW9uTGlzdCkgewoKICAgICAgICAgICAgbXkgJENsYXNzID0gJyc7CiAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1RleHRhcmVhJyApIHsKICAgICAgICAgICAgICAgICRDbGFzcyA9ICdUZXh0YXJlYSc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRSZXF1aXJlZFRleHQgPSAnJzsKICAgICAgICAgICAgaWYgKCAkUXVlc3Rpb24tPntBbnN3ZXJSZXF1aXJlZH0gKSB7CiAgICAgICAgICAgICAgICAkQ2xhc3MgLj0gJyBNYW5kYXRvcnknOwogICAgICAgICAgICAgICAgJFJlcXVpcmVkVGV4dCA9ICcqICc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGF0c0RldGFpbFF1ZXN0aW9uJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkVGV4dCA9PiAkUmVxdWlyZWRUZXh0LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgQEFuc3dlcnM7CiAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1JhZGlvJyB8fCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgbXkgQEFuc3dlckxpc3Q7CiAgICAgICAgICAgICAgICBAQW5zd2VyTGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+Vm90ZUdldCgKICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SUQgID0+ICRSZXF1ZXN0SUQsCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFJvdyAoQEFuc3dlckxpc3QpIHsKICAgICAgICAgICAgICAgICAgICBteSAlQW5zd2VyID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJHZXQoIEFuc3dlcklEID0+ICRSb3ctPntWb3RlVmFsdWV9ICk7CiAgICAgICAgICAgICAgICAgICAgbXkgJURhdGE7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9ICRBbnN3ZXJ7QW5zd2VyfTsKICAgICAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VycywgXCVEYXRhICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnWWVzTm8nIHx8ICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICBteSBATGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+Vm90ZUdldCgKICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SUQgID0+ICRSZXF1ZXN0SUQsCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJURhdGE7CiAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0gJExpc3RbMF0tPntWb3RlVmFsdWV9OwoKICAgICAgICAgICAgICAgICMgY2xlYW4gaHRtbAogICAgICAgICAgICAgICAgaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnVGV4dGFyZWEnICYmICREYXRhe0Fuc3dlcn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkRGF0YXtBbnN3ZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBIVE1MUmVzdWx0TW9kZSA9PiAxLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fS0+VG9Bc2NpaSggU3RyaW5nID0+ICREYXRhe0Fuc3dlcn0gKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHB1c2goIEBBbnN3ZXJzLCBcJURhdGEgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgbXkgJFJvdyAoQEFuc3dlcnMpIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhdHNEZXRhaWxBbnN3ZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAleyRSb3d9LAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFN1cnZleScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNob3cgb3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuLCB1c2VkIGZvciBiYWNrbGlua3MKICAgICRTZWxmLT57U2Vzc2lvbk9iamVjdH0tPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlblZpZXcnLAogICAgICAgIFZhbHVlICAgICA9PiAkU2VsZi0+e1JlcXVlc3RlZFVSTH0sCiAgICApOwoKICAgICMgZ2V0IHNvcnRpbmcgcGFyYW1ldGVycwogICAgbXkgJFNvcnRCeSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdOdW1iZXInOwoKICAgICMgZ2V0IG9yZGVyaW5nIHBhcmFtZXRlcnMKICAgIG15ICRPcmRlckJ5ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnT3JkZXJCeScgKQogICAgICAgIHx8ICRTZWxmLT57Q29uZmlnfS0+eydPcmRlcjo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ0Rvd24nOwoKICAgICMgaW52ZXN0aWdhdGUgcmVmcmVzaAogICAgbXkgJFJlZnJlc2ggPSAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gPyA2MCAqICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfSA6IHVuZGVmOwoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgJE91dHB1dCA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+SGVhZGVyKAogICAgICAgIFRpdGxlICAgPT4gJ092ZXJ2aWV3JywKICAgICAgICBSZWZyZXNoID0+ICRSZWZyZXNoLAogICAgKTsKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPlByaW50KCBPdXRwdXQgPT4gXCRPdXRwdXQgKTsKICAgICRPdXRwdXQgPSAnJzsKCiAgICAjIGdldCBzdXJ2ZXkgbGlzdAogICAgbXkgQFN1cnZleUlEcyA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5U2VhcmNoKAogICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gWyRTb3J0QnldLAogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWyRPcmRlckJ5XSwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBmaW5kIG91dCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzaG93bgogICAgbXkgQFNob3dDb2x1bW5zOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTaG93Q29sdW1uc30gKSB7CgogICAgICAgICMgZ2V0IGFsbCBwb3NzaWJsZSBjb2x1bW5zIGZyb20gY29uZmlnCiAgICAgICAgbXkgJVBvc3NpYmxlQ29sdW1uID0gJXsgJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9IH07CgogICAgICAgICMgZ2V0IHRoZSBjb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICBDT0xVTU5OQU1FOgogICAgICAgIGZvciBteSAkTmFtZSAoIHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW4gKSB7CiAgICAgICAgICAgIG5leHQgQ09MVU1OTkFNRSBpZiAhJFBvc3NpYmxlQ29sdW1ueyROYW1lfTsKICAgICAgICAgICAgcHVzaCBAU2hvd0NvbHVtbnMsICROYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgdGhlIGxpc3QKICAgIG15ICRMaW5rUGFnZSA9CiAgICAgICAgJ0ZpbHRlcj0nIC4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57RmlsdGVyfSApCiAgICAgICAgLiAnO1ZpZXc9JyAuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e1ZpZXd9ICkKICAgICAgICAuICc7U29ydEJ5PScgLiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCggVGV4dCA9PiAkT3JkZXJCeSApCiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua1NvcnQgPQogICAgICAgICdGaWx0ZXI9JyAuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgIC4gJztWaWV3PScgLiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua0ZpbHRlciA9CiAgICAgICAgJ1NvcnRCeT0nIC4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJztWaWV3PScgLiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnOyc7CgogICAgIyBzaG93IGNvbmZpZyBpdGVtIGxpc3QKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5TdXJ2ZXlMaXN0U2hvdygKICAgICAgICBTdXJ2ZXlJRHMgICA9PiBbQFN1cnZleUlEc10sCiAgICAgICAgVG90YWwgICAgICAgPT4gc2NhbGFyIEBTdXJ2ZXlJRHMsCiAgICAgICAgVmlldyAgICAgICAgPT4gJFNlbGYtPntWaWV3fSwKICAgICAgICBGaWx0ZXJMaW5rICA9PiAkTGlua0ZpbHRlciwKICAgICAgICBUaXRsZU5hbWUgICA9PiAkU2VsZi0+e0xheW91dE9iamVjdH0tPntMYW5ndWFnZU9iamVjdH0tPkdldCgnT3ZlcnZpZXcnKSwKICAgICAgICBUaXRsZVZhbHVlICA9PiAkU2VsZi0+e0xheW91dE9iamVjdH0tPntMYW5ndWFnZU9iamVjdH0tPkdldCgnU3VydmV5JyksCiAgICAgICAgRW52ICAgICAgICAgPT4gJFNlbGYsCiAgICAgICAgTGlua1BhZ2UgICAgPT4gJExpbmtQYWdlLAogICAgICAgIExpbmtTb3J0ICAgID0+ICRMaW5rU29ydCwKICAgICAgICBTaG93Q29sdW1ucyA9PiBcQFNob3dDb2x1bW5zLAogICAgICAgIFNvcnRCeSAgICAgID0+ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCggVGV4dCA9PiAkU29ydEJ5ICksCiAgICAgICAgT3JkZXJCeSAgICAgPT4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICksCiAgICApOwoKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX1N1cnZleUFkZE1hc2sgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU2VydmVyRXJyb3I7CiAgICBpZiAoICRQYXJhbXtTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgJVNlcnZlckVycm9yID0gJXsgJFBhcmFte1NlcnZlckVycm9yfSB9OwogICAgfQoKICAgIG15ICVGb3JtRWxlbWVudHM7CiAgICBpZiAoICRQYXJhbXtGb3JtRWxlbWVudHN9ICkgewogICAgICAgICVGb3JtRWxlbWVudHMgPSAleyAkUGFyYW17Rm9ybUVsZW1lbnRzfSB9OwogICAgfQoKICAgIG15ICRPdXRwdXQ7CgogICAgIyBpZiBTdXJ2ZXlJRCB0aGUgU3VydmV5RWRpdCBzaG91bGQgYmUgbG9hZGVkIChwb3B1cCkKICAgIG15ICRUaXRsZTsKICAgIG15ICRUeXBlOwogICAgaWYgKCAkUGFyYW17U3VydmV5SUR9ICkgewogICAgICAgICRUaXRsZSA9ICdTdXJ2ZXkgRWRpdCc7CgogICAgICAgICMgZm9yIGhlYWRlciBhbmQgZm9vdGVyCiAgICAgICAgJFR5cGUgPSAnU21hbGwnOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFRpdGxlID0gJ0FkZCBOZXcgU3VydmV5JzsKICAgIH0KCiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICRUaXRsZSwKICAgICAgICBUeXBlICA9PiAkVHlwZSwKICAgICk7CgogICAgbXkgJFNlbGVjdGVkUXVldWVzOwogICAgaWYgKCAhJFBhcmFte1N1cnZleUlEfSApIHsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+TmF2aWdhdGlvbkJhcigpOwoKICAgIH0KICAgIGVsc2UgewogICAgICAgIG15ICVTdXJ2ZXkgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlN1cnZleUdldCggU3VydmV5SUQgPT4gJFBhcmFte1N1cnZleUlEfSApOwoKICAgICAgICAjIGdldCBzZWxlY3RlZCBxdWV1ZXMKICAgICAgICAkU2VsZWN0ZWRRdWV1ZXMgPSAkU3VydmV5e1F1ZXVlc307CiAgICB9CgogICAgbXkgJVF1ZXVlcyAgICAgID0gJFNlbGYtPntRdWV1ZU9iamVjdH0tPkdldEFsbFF1ZXVlcygpOwogICAgbXkgJFF1ZXVlU3RyaW5nID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVRdWV1ZXMsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdRdWV1ZXMnLAogICAgICAgIFNpemUgICAgICAgICA9PiA2LAogICAgICAgIE11bHRpcGxlICAgICA9PiAxLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAwLAogICAgICAgIFNvcnQgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkRm9ybUVsZW1lbnRze1F1ZXVlc30gfHwgJFNlbGVjdGVkUXVldWVzLAogICAgKTsKCiAgICBteSAkQmxvY2s7CiAgICBpZiAoICEkUGFyYW17U3VydmV5SUR9ICkgewogICAgICAgICRCbG9jayA9ICdTdXJ2ZXlBZGQnOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEJsb2NrID0gJ1N1cnZleUVkaXQnOwogICAgfQoKICAgICMgcHJpbnQgdGhlIGZvcm0KICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAkQmxvY2ssCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgUXVldWVTdHJpbmcgICAgICAgID0+ICRRdWV1ZVN0cmluZywKICAgICAgICAgICAgTm90aWZpY2F0aW9uU2VuZGVyID0+ICRGb3JtRWxlbWVudHN7Tm90aWZpY2F0aW9uU2VuZGVyfQogICAgICAgICAgICAgICAgfHwgJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0KICAgICAgICAgICAgICAgIHx8ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6Ok5vdGlmaWNhdGlvblNlbmRlcicpLAogICAgICAgICAgICBOb3RpZmljYXRpb25TdWJqZWN0ID0+ICRGb3JtRWxlbWVudHN7Tm90aWZpY2F0aW9uU3ViamVjdH0KICAgICAgICAgICAgICAgIHx8ICRQYXJhbXtOb3RpZmljYXRpb25TdWJqZWN0fQogICAgICAgICAgICAgICAgfHwgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6Tm90aWZpY2F0aW9uU3ViamVjdCcpLAogICAgICAgICAgICAlU2VydmVyRXJyb3IsCiAgICAgICAgICAgICVGb3JtRWxlbWVudHMsCiAgICAgICAgfSwKICAgICk7CgogICAgIyByaWNoIHRleHQgZWxlbWVudHMKICAgIG15ICVTdXJ2ZXlFbGVtZW50czsKCiAgICAkU3VydmV5RWxlbWVudHN7SW50cm9kdWN0aW9ufSA9ICRGb3JtRWxlbWVudHN7SW50cm9kdWN0aW9ufSB8fAogICAgICAgICRQYXJhbXtJbnRyb2R1Y3Rpb259OwoKICAgICRTdXJ2ZXlFbGVtZW50c3tOb3RpZmljYXRpb25Cb2R5fSA9ICRGb3JtRWxlbWVudHN7Tm90aWZpY2F0aW9uQm9keX0gfHwKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uQm9keX0gfHwKICAgICAgICAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpOb3RpZmljYXRpb25Cb2R5Jyk7CgogICAgJFN1cnZleUVsZW1lbnRze0Rlc2NyaXB0aW9ufSA9ICRGb3JtRWxlbWVudHN7RGVzY3JpcHRpb259IHx8CiAgICAgICAgJFBhcmFte0Rlc2NyaXB0aW9ufSB8fAogICAgICAgICcnOwoKICAgICMgbG9hZCByaWNoIHRleHQgZWRpdG9yCiAgICBteSAkUmljaFRleHRFZGl0b3IgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJvbnRlbmQ6OlJpY2hUZXh0Jyk7CiAgICBpZiAoJFJpY2hUZXh0RWRpdG9yKSB7CiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jayggTmFtZSA9PiAiJEJsb2NrIiAuICdSaWNoVGV4dCcgKTsKICAgIH0KCiAgICAjIGNvbnZlcnQgcmVxdWlyZWQgZWxlbWVudHMgdG8gUlRFCiAgICBmb3IgbXkgJFN1cnZleUZpZWxkICggc29ydCBrZXlzICVTdXJ2ZXlFbGVtZW50cyApIHsKICAgICAgICBuZXh0IGlmICEkU3VydmV5RWxlbWVudHN7JFN1cnZleUZpZWxkfTsKCiAgICAgICAgIyBjbGVhbiBodG1sCiAgICAgICAgbXkgJEhUTUxDb250ZW50ID0KICAgICAgICAgICAgJFN1cnZleUVsZW1lbnRzeyRTdXJ2ZXlGaWVsZH0gPX4gc3tcQVwkaHRtbFwvdGV4dFwkXHMoLiopfXskMX14bXM7CgogICAgICAgIGlmICggISRIVE1MQ29udGVudCAmJiAkUmljaFRleHRFZGl0b3IgKSB7CiAgICAgICAgICAgICRTdXJ2ZXlFbGVtZW50c3skU3VydmV5RmllbGR9ID0KICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRTdXJ2ZXlFbGVtZW50c3skU3VydmV5RmllbGR9LAogICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJEhUTUxDb250ZW50ICYmICEkUmljaFRleHRFZGl0b3IgKSB7CiAgICAgICAgICAgICRTdXJ2ZXlFbGVtZW50c3skU3VydmV5RmllbGR9ID0KICAgICAgICAgICAgICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fS0+VG9Bc2NpaSggU3RyaW5nID0+ICRTdXJ2ZXlFbGVtZW50c3skU3VydmV5RmllbGR9ICk7CiAgICAgICAgfQogICAgfQoKICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAiJEJsb2NrIiAuICdJbnRyb2R1Y3Rpb24nLAogICAgICAgIERhdGEgPT4geyBJbnRyb2R1Y3Rpb24gPT4gJFN1cnZleUVsZW1lbnRze0ludHJvZHVjdGlvbn0sIH0sCiAgICApOwoKICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAiJEJsb2NrIiAuICdOb3RpZmljYXRpb25Cb2R5JywKICAgICAgICBEYXRhID0+IHsgTm90aWZpY2F0aW9uQm9keSA9PiAkU3VydmV5RWxlbWVudHN7Tm90aWZpY2F0aW9uQm9keX0sIH0sCiAgICApOwoKICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAiJEJsb2NrIiAuICdJbnRlcm5hbERlc2NyaXB0aW9uJywKICAgICAgICBEYXRhID0+IHsgRGVzY3JpcHRpb24gPT4gJFN1cnZleUVsZW1lbnRze0Rlc2NyaXB0aW9ufSwgfSwKICAgICk7CgogICAgIyBnZW5lcmF0ZXMgZ2VuZXJpYyBlcnJvcnMgZm9yIGphdmFzY3JpcHQKICAgIGZvciBteSAkTmVlZGVkSXRlbSAoCiAgICAgICAgcXcoIFRpdGxlIEludHJvZHVjdGlvbiBEZXNjcmlwdGlvbiBOb3RpZmljYXRpb25TZW5kZXIgTm90aWZpY2F0aW9uU3ViamVjdCBOb3RpZmljYXRpb25Cb2R5ICkKICAgICAgICApCiAgICB7CiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkQmxvY2sgLiAnR2VuZXJpY0Vycm9yJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBJdGVtTmFtZSA9PiAkTmVlZGVkSXRlbSAuICdFcnJvcicsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJEl0ZW0gKCBzb3J0IGtleXMgJVNlcnZlckVycm9yICkgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrIC4gJ0dlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgSXRlbU5hbWUgPT4gJEl0ZW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KCBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50U3VydmV5JyApOwogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZvb3RlciggVHlwZSA9PiAkVHlwZSApOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CjE7Cg==
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0FnZW50U3VydmV5RWRpdFF1ZXN0aW9ucy5wbSAtIGEgc3VydmV5IG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDEyIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy8KIyAtLQojICRJZDogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zLnBtLHYgMS4xMyAyMDEyLzExLzIxIDEyOjAyOjA5IGpoIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXk7Cgp1c2UgdmFycyBxdygkVkVSU0lPTik7CiRWRVJTSU9OID0gcXcoJFJldmlzaW9uOiAxLjEzICQpIFsxXTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgY29tbW9uIG9iamVjdHMKICAgICV7JFNlbGZ9ID0gJVBhcmFtOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhQYXJhbU9iamVjdCBEQk9iamVjdCBMYXlvdXRPYmplY3QgTG9nT2JqZWN0IENvbmZpZ09iamVjdCkpIHsKICAgICAgICBpZiAoICEkU2VsZi0+eyRPYmplY3R9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoIE1lc3NhZ2UgPT4gIkdvdCBubyAkT2JqZWN0ISIgKTsKICAgICAgICB9CiAgICB9CiAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5LT5uZXcoJVBhcmFtKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0OwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgcXVlc3Rpb24gYWRkCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUXVlc3Rpb25BZGQnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwogICAgICAgIG15ICRRdWVzdGlvbiA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlF1ZXN0aW9uIiApOwogICAgICAgIG15ICRUeXBlICAgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlR5cGUiICk7CgogICAgICAgIG15ICRBbnN3ZXJSZXF1aXJlZCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Fuc3dlclJlcXVpcmVkJyApOwogICAgICAgIGlmICggJEFuc3dlclJlcXVpcmVkICYmICRBbnN3ZXJSZXF1aXJlZCBlcSAnTm8nICkgewogICAgICAgICAgICAkQW5zd2VyUmVxdWlyZWQgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEFuc3dlclJlcXVpcmVkID0gMTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKCBFbGVtZW50SUQgPT4gJFN1cnZleUlELCBFbGVtZW50ID0+ICdTdXJ2ZXknICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KCiAgICAgICAgbXkgJVNlcnZlckVycm9yOwogICAgICAgIGlmICgkUXVlc3Rpb24pIHsKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvbkFkZCgKICAgICAgICAgICAgICAgIFN1cnZleUlEICAgICAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIFF1ZXN0aW9uICAgICAgID0+ICRRdWVzdGlvbiwKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICAgID0+ICRUeXBlLAogICAgICAgICAgICAgICAgQW5zd2VyUmVxdWlyZWQgPT4gJEFuc3dlclJlcXVpcmVkLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uU29ydCggU3VydmV5SUQgPT4gJFN1cnZleUlEICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VydmVyRXJyb3J7UXVlc3Rpb259ID0gMTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+X01hc2tRdWVzdGlvbk92ZXJ2aWV3KAogICAgICAgICAgICBTdXJ2ZXlJRCAgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgIFNlcnZlckVycm9yID0+IFwlU2VydmVyRXJyb3IsCiAgICAgICAgKTsKCiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBxdWVzdGlvbiBkZWxldGUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdRdWVzdGlvbkRlbGV0ZScgKSB7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJRdWVzdGlvbklEIiApOwogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGFuZCBxdWVzdGlvbiBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwgRWxlbWVudCA9PiAnU3VydmV5JyApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnUXVlc3Rpb24nCiAgICAgICAgICAgICkgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uRGVsZXRlKAogICAgICAgICAgICBTdXJ2ZXlJRCAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICApOwogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25Tb3J0KCBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQgKTsKICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07U3ViYWN0aW9uPVN1cnZleUVkaXQ7U3VydmV5SUQ9JFN1cnZleUlEI1F1ZXN0aW9uIgogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBxdWVzdGlvbiB1cAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1F1ZXN0aW9uVXAnICkgewogICAgICAgIG15ICRRdWVzdGlvbklEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiUXVlc3Rpb25JRCIgKTsKICAgICAgICBteSAkU3VydmV5SUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBhbmQgcXVlc3Rpb24gZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsIEVsZW1lbnQgPT4gJ1N1cnZleScgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvblNvcnQoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25VcCgKICAgICAgICAgICAgU3VydmV5SUQgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1TdXJ2ZXlFZGl0O1N1cnZleUlEPSRTdXJ2ZXlJRCNRdWVzdGlvbiIKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgcXVlc3Rpb24gZG93bgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1F1ZXN0aW9uRG93bicgKSB7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJRdWVzdGlvbklEIiApOwogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGFuZCBxdWVzdGlvbiBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwgRWxlbWVudCA9PiAnU3VydmV5JyApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnUXVlc3Rpb24nCiAgICAgICAgICAgICkgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uU29ydCggU3VydmV5SUQgPT4gJFN1cnZleUlEICk7CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvbkRvd24oCiAgICAgICAgICAgIFN1cnZleUlEICAgPT4gJFN1cnZleUlELAogICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklELAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1TdXJ2ZXlFZGl0O1N1cnZleUlEPSRTdXJ2ZXlJRCNRdWVzdGlvbiIKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgcXVlc3Rpb24gZWRpdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1F1ZXN0aW9uRWRpdCcgKSB7CiAgICAgICAgbXkgJFN1cnZleUlEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdXJ2ZXlJRCcgKTsKICAgICAgICBteSAkUXVlc3Rpb25JRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1F1ZXN0aW9uSUQnICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGFuZCBxdWVzdGlvbiBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwgRWxlbWVudCA9PiAnU3VydmV5JyApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnUXVlc3Rpb24nCiAgICAgICAgICAgICkgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFza1F1ZXN0aW9uRWRpdCgKICAgICAgICAgICAgU3VydmV5SUQgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgKTsKCiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBxdWVzdGlvbiBzYXZlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUXVlc3Rpb25TYXZlJyApIHsKICAgICAgICBteSAkUXVlc3Rpb25JRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1F1ZXN0aW9uSUQnICk7CiAgICAgICAgbXkgJFN1cnZleUlEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdXJ2ZXlJRCcgKTsKICAgICAgICBteSAkUXVlc3Rpb24gICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1F1ZXN0aW9uJyApOwoKICAgICAgICBteSAkQW5zd2VyUmVxdWlyZWQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdBbnN3ZXJSZXF1aXJlZCcgKTsKICAgICAgICBpZiAoICRBbnN3ZXJSZXF1aXJlZCAmJiAkQW5zd2VyUmVxdWlyZWQgZXEgJ05vJyApIHsKICAgICAgICAgICAgJEFuc3dlclJlcXVpcmVkID0gMDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRBbnN3ZXJSZXF1aXJlZCA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBhbmQgcXVlc3Rpb24gZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsIEVsZW1lbnQgPT4gJ1N1cnZleScgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CgogICAgICAgIG15ICVTZXJ2ZXJFcnJvcjsKICAgICAgICBpZiAoJFF1ZXN0aW9uKSB7CiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25TYXZlKAogICAgICAgICAgICAgICAgUXVlc3Rpb25JRCAgICAgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBTdXJ2ZXlJRCAgICAgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBRdWVzdGlvbiAgICAgICA9PiAkUXVlc3Rpb24sCiAgICAgICAgICAgICAgICBBbnN3ZXJSZXF1aXJlZCA9PiAkQW5zd2VyUmVxdWlyZWQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrUXVlc3Rpb25FZGl0KAogICAgICAgICAgICAgICAgU3VydmV5SUQgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlcnZlckVycm9ye1F1ZXN0aW9uU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+X01hc2tRdWVzdGlvbkVkaXQoCiAgICAgICAgICAgIFN1cnZleUlEICAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgUXVlc3Rpb25JRCAgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIFNlcnZlckVycm9yID0+IFwlU2VydmVyRXJyb3IsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciBhZGQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBbnN3ZXJBZGQnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJRdWVzdGlvbklEIiApOwogICAgICAgIG15ICRBbnN3ZXIgICAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiQW5zd2VyIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBhbmQgcXVlc3Rpb24gZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsIEVsZW1lbnQgPT4gJ1N1cnZleScgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CgogICAgICAgIG15ICVTZXJ2ZXJFcnJvcjsKICAgICAgICBpZiAoJEFuc3dlcikgewogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlckFkZCgKICAgICAgICAgICAgICAgIFN1cnZleUlEICAgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgICAgIEFuc3dlciAgICAgPT4gJEFuc3dlciwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFza1F1ZXN0aW9uRWRpdCgKICAgICAgICAgICAgICAgIFN1cnZleUlEICAgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZXJ2ZXJFcnJvcntBbnN3ZXJTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFza1F1ZXN0aW9uRWRpdCgKICAgICAgICAgICAgU3VydmV5SUQgICAgPT4gJFN1cnZleUlELAogICAgICAgICAgICBRdWVzdGlvbklEICA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgU2VydmVyRXJyb3IgPT4gXCVTZXJ2ZXJFcnJvciwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYW5zd2VyIGRlbGV0ZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0Fuc3dlckRlbGV0ZScgKSB7CiAgICAgICAgbXkgJEFuc3dlcklEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJBbnN3ZXJJRCIgKTsKICAgICAgICBteSAkUXVlc3Rpb25JRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlF1ZXN0aW9uSUQiICk7CiAgICAgICAgbXkgJFN1cnZleUlEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKCiAgICAgICAgIyBjaGVjayBpZiBzdXJ2ZXksIHF1ZXN0aW9uIGFuZCBhbnN3ZXIgZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsIEVsZW1lbnQgPT4gJ1N1cnZleScgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRBbnN3ZXJJRCwgRWxlbWVudCA9PiAnQW5zd2VyJyApCiAgICAgICAgICAgIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJEZWxldGUoCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIEFuc3dlcklEICAgPT4gJEFuc3dlcklELAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJTb3J0KCBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklEICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249UXVlc3Rpb25FZGl0O1N1cnZleUlEPSRTdXJ2ZXlJRDtRdWVzdGlvbklEPSRRdWVzdGlvbklEI0Fuc3dlciIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciB1cAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0Fuc3dlclVwJyApIHsKICAgICAgICBteSAkQW5zd2VySUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIkFuc3dlcklEIiApOwogICAgICAgIG15ICRRdWVzdGlvbklEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiUXVlc3Rpb25JRCIgKTsKICAgICAgICBteSAkU3VydmV5SUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSwgcXVlc3Rpb24gYW5kIGFuc3dlciBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwgRWxlbWVudCA9PiAnU3VydmV5JyApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnUXVlc3Rpb24nCiAgICAgICAgICAgICkgbmUgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKCBFbGVtZW50SUQgPT4gJEFuc3dlcklELCBFbGVtZW50ID0+ICdBbnN3ZXInICkKICAgICAgICAgICAgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlclNvcnQoIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQgKTsKICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlclVwKAogICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICBBbnN3ZXJJRCAgID0+ICRBbnN3ZXJJRCwKICAgICAgICApOwogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07U3ViYWN0aW9uPVF1ZXN0aW9uRWRpdDtTdXJ2ZXlJRD0kU3VydmV5SUQ7UXVlc3Rpb25JRD0kUXVlc3Rpb25JRCNBbnN3ZXIiLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhbnN3ZXIgZG93bgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0Fuc3dlckRvd24nICkgewogICAgICAgIG15ICRBbnN3ZXJJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiQW5zd2VySUQiICk7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJRdWVzdGlvbklEIiApOwogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5LCBxdWVzdGlvbiBhbmQgYW5zd2VyIGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKCBFbGVtZW50SUQgPT4gJFN1cnZleUlELCBFbGVtZW50ID0+ICdTdXJ2ZXknICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdRdWVzdGlvbicKICAgICAgICAgICAgKSBuZSAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoIEVsZW1lbnRJRCA9PiAkQW5zd2VySUQsIEVsZW1lbnQgPT4gJ0Fuc3dlcicgKQogICAgICAgICAgICBuZSAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyU29ydCggUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCApOwogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyRG93bigKICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgQW5zd2VySUQgICA9PiAkQW5zd2VySUQsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1RdWVzdGlvbkVkaXQ7U3VydmV5SUQ9JFN1cnZleUlEO1F1ZXN0aW9uSUQ9JFF1ZXN0aW9uSUQjQW5zd2VyIiwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYW5zd2VyIGVkaXQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBbnN3ZXJFZGl0JyApIHsKICAgICAgICBteSAkU3VydmV5SUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1cnZleUlEJyApOwogICAgICAgIG15ICRRdWVzdGlvbklEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnUXVlc3Rpb25JRCcgKTsKICAgICAgICBteSAkQW5zd2VySUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Fuc3dlcklEJyApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSwgcXVlc3Rpb24gYW5kIGFuc3dlciBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwgRWxlbWVudCA9PiAnU3VydmV5JyApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnUXVlc3Rpb24nCiAgICAgICAgICAgICkgbmUgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKCBFbGVtZW50SUQgPT4gJEFuc3dlcklELCBFbGVtZW50ID0+ICdBbnN3ZXInICkKICAgICAgICAgICAgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFza0Fuc3dlckVkaXQoCiAgICAgICAgICAgIFN1cnZleUlEICAgPT4gJFN1cnZleUlELAogICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICBBbnN3ZXJJRCAgID0+ICRBbnN3ZXJJRCwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciBzYXZlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQW5zd2VyU2F2ZScgKSB7CiAgICAgICAgbXkgJEFuc3dlcklEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJBbnN3ZXJJRCIgKTsKICAgICAgICBteSAkUXVlc3Rpb25JRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlF1ZXN0aW9uSUQiICk7CiAgICAgICAgbXkgJFN1cnZleUlEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKICAgICAgICBteSAkQW5zd2VyICAgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIkFuc3dlciIgKTsKCiAgICAgICAgIyBjaGVjayBpZiBzdXJ2ZXksIHF1ZXN0aW9uIGFuZCBhbnN3ZXIgZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsIEVsZW1lbnQgPT4gJ1N1cnZleScgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRBbnN3ZXJJRCwgRWxlbWVudCA9PiAnQW5zd2VyJyApCiAgICAgICAgICAgIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CgogICAgICAgIG15ICVTZXJ2ZXJFcnJvcjsKICAgICAgICBpZiAoJEFuc3dlcikgewogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlclNhdmUoCiAgICAgICAgICAgICAgICBBbnN3ZXJJRCAgID0+ICRBbnN3ZXJJRCwKICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBBbnN3ZXIgICAgID0+ICRBbnN3ZXIsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1RdWVzdGlvbkVkaXQ7U3VydmV5SUQ9JFN1cnZleUlEO1F1ZXN0aW9uSUQ9JFF1ZXN0aW9uSUQjQW5zd2VyIgogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlcnZlckVycm9ye0Fuc3dlclNlcnZlckVycm9yfSA9ICdTZXZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+X01hc2tBbnN3ZXJFZGl0KAogICAgICAgICAgICBTdXJ2ZXlJRCAgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICBBbnN3ZXJJRCAgICA9PiAkQW5zd2VySUQsCiAgICAgICAgICAgIFNlcnZlckVycm9yID0+IFwlU2VydmVyRXJyb3IsCiAgICAgICAgICAgICkKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHF1ZXN0aW9uIG92ZXJ2aWV3CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBteSAkU3VydmV5SUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdXJ2ZXlJRCcgKTsKCiAgICBpZiAoICEkU3VydmV5SUQgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249QWdlbnRTdXJ2ZXkiICk7CiAgICB9CgogICAgcmV0dXJuICRTZWxmLT5fTWFza1F1ZXN0aW9uT3ZlcnZpZXcoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwp9CgpzdWIgX01hc2tRdWVzdGlvbk92ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVNlcnZlckVycm9yOwogICAgaWYgKCAkUGFyYW17U2VydmVyRXJyb3J9ICkgewogICAgICAgICVTZXJ2ZXJFcnJvciA9ICV7ICRQYXJhbXtTZXJ2ZXJFcnJvcn0gfTsKICAgIH0KCiAgICBteSAkT3V0cHV0OwoKICAgIGlmICggISRQYXJhbXtTdXJ2ZXlJRH0gKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249QWdlbnRTdXJ2ZXkiICk7CiAgICB9CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ1N1cnZleSBFZGl0IFF1ZXN0aW9ucycsCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICk7CgogICAgIyBnZXQgYWxsIGF0dHJpYnV0ZXMgb2YgdGhlIHN1cnZleQogICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KCBTdXJ2ZXlJRCA9PiAkUGFyYW17U3VydmV5SUR9ICk7CgogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTdXJ2ZXlFZGl0UXVlc3Rpb25zJywKICAgICAgICBEYXRhID0+IFwlU3VydmV5LAogICAgKTsKCiAgICBteSBATGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25MaXN0KCBTdXJ2ZXlJRCA9PiAkUGFyYW17U3VydmV5SUR9ICk7CgogICAgaWYgKCAkU3VydmV5e1N0YXR1c30gJiYgJFN1cnZleXtTdGF0dXN9IGVxICdOZXcnICkgewoKICAgICAgICBteSAkQXJyYXlIYXNoUmVmID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnWWVzTm8nLAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gJ1llc05vJywKICAgICAgICAgICAgICAgIFNlbGVjdGVkID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICdSYWRpbycsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAnUmFkaW8gKExpc3QpJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0NoZWNrYm94JywKICAgICAgICAgICAgICAgIFZhbHVlID0+ICdDaGVja2JveCAoTGlzdCknLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAnVGV4dGFyZWEnLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJ1RleHRhcmVhJywKICAgICAgICAgICAgfSwKICAgICAgICBdOwoKICAgICAgICBteSAkU2VsZWN0aW9uVHlwZSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gJEFycmF5SGFzaFJlZiwKICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAnVHlwZScsCiAgICAgICAgICAgIElEICAgICAgICAgICAgPT4gJ1R5cGUnLAogICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICdZZXMvTm8nLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJEFycmF5SGFzaFJlZiA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgICAgPT4gJ1llcycsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAnWWVzJywKICAgICAgICAgICAgICAgIFNlbGVjdGVkID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICdObycsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAnTm8nLAogICAgICAgICAgICB9CiAgICAgICAgXTsKCiAgICAgICAgbXkgJEFuc3dlclJlcXVpcmVkU2VsZWN0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiAkQXJyYXlIYXNoUmVmLAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdBbnN3ZXJSZXF1aXJlZCcsCiAgICAgICAgICAgIElEICAgICAgICAgICAgPT4gJ0Fuc3dlclJlcXVpcmVkJywKICAgICAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAnWWVzJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15ICRRdWVzdGlvbkVycm9yQ2xhc3MgPSAnJzsKICAgICAgICBpZiAoICRTZXJ2ZXJFcnJvcntRdWVzdGlvbn0gKSB7CiAgICAgICAgICAgICRRdWVzdGlvbkVycm9yQ2xhc3MgPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU3VydmV5QWRkUXVlc3Rpb24nLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFN1cnZleUlEICAgICAgICAgICAgID0+ICRQYXJhbXtTdXJ2ZXlJRH0sCiAgICAgICAgICAgICAgICBTZWxlY3Rpb25UeXBlICAgICAgICA9PiAkU2VsZWN0aW9uVHlwZSwKICAgICAgICAgICAgICAgIEFuc3dlclJlcXVpcmVkU2VsZWN0ID0+ICRBbnN3ZXJSZXF1aXJlZFNlbGVjdCwKICAgICAgICAgICAgICAgIFF1ZXN0aW9uRXJyb3JDbGFzcyAgID0+ICRRdWVzdGlvbkVycm9yQ2xhc3MsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jayggTmFtZSA9PiAnU3VydmV5RGVsZXRlQ29sdW1uJyApOwogICAgICAgIGlmICggc2NhbGFyIEBMaXN0ICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKCBOYW1lID0+ICdTdXJ2ZXlTdGF0dXNDb2x1bW4nICk7CiAgICAgICAgICAgIG15ICRDb3VudGVyID0gMDsKCiAgICAgICAgICAgIGZvciBteSAkUXVlc3Rpb24gKEBMaXN0KSB7CiAgICAgICAgICAgICAgICBteSAkQW5zd2VyQ291bnQgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlckNvdW50KAogICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICRDbGFzczsKICAgICAgICAgICAgICAgIG15ICRDbGFzc1VwOwogICAgICAgICAgICAgICAgbXkgJENsYXNzRG93bjsKCiAgICAgICAgICAgICAgICBpZiAoICEkQ291bnRlciApIHsKICAgICAgICAgICAgICAgICAgICAkQ2xhc3NVcCA9ICdEaXNhYmxlZCcsCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkQ291bnRlciA9PSAkI0xpc3QgKSB7CiAgICAgICAgICAgICAgICAgICAgJENsYXNzRG93biA9ICdEaXNhYmxlZCcsCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgJFN0YXR1cyA9ICdDb21wbGV0ZSc7CiAgICAgICAgICAgICAgICBpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdSYWRpbycgfHwgJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ0NoZWNrYm94JyApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRBbnN3ZXJDb3VudCA8IDIgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDbGFzcyAgPSAnRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICAkU3RhdHVzID0gJ0luY29tcGxldGUnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N1cnZleVF1ZXN0aW9uc1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzICAgID0+ICRTdGF0dXMsCiAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzICAgICA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzVXAgICA9PiAkQ2xhc3NVcCwKICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NEb3duID0+ICRDbGFzc0Rvd24sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N1cnZleVF1ZXN0aW9uc0RlbGV0ZUJ1dHRvbicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkUXVlc3Rpb24sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJENvdW50ZXIrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N1cnZleU5vUXVlc3Rpb25zU2F2ZWQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7IENvbHVtbnMgPT4gNSwgfQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICB9CiAgICBlbHNlIHsKICAgICAgICBteSAkQ291bnRlcjsKICAgICAgICBmb3IgbXkgJFF1ZXN0aW9uIChATGlzdCkgewoKICAgICAgICAgICAgbXkgJENsYXNzVXA7CiAgICAgICAgICAgIG15ICRDbGFzc0Rvd247CgogICAgICAgICAgICBpZiAoICEkQ291bnRlciApIHsKICAgICAgICAgICAgICAgICRDbGFzc1VwID0gJ0Rpc2FibGVkJywKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkQ291bnRlciAmJiAkQ291bnRlciA9PSAkI0xpc3QgKSB7CiAgICAgICAgICAgICAgICAkQ2xhc3NEb3duID0gJ0Rpc2FibGVkJywKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N1cnZleVF1ZXN0aW9uc1NhdmVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICBDbGFzc1VwICAgPT4gJENsYXNzVXAsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3NEb3duID0+ICRDbGFzc0Rvd24sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJENvdW50ZXIrKzsKICAgICAgICB9CiAgICB9CgogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50U3VydmV5RWRpdFF1ZXN0aW9ucycsCiAgICAgICAgRGF0YSA9PiB7IFN1cnZleUlEID0+ICRQYXJhbXtTdXJ2ZXlJRH0gfSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9NYXNrUXVlc3Rpb25FZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVNlcnZlckVycm9yOwogICAgaWYgKCAkUGFyYW17U2VydmVyRXJyb3J9ICkgewogICAgICAgICVTZXJ2ZXJFcnJvciA9ICV7ICRQYXJhbXtTZXJ2ZXJFcnJvcn0gfTsKICAgIH0KCiAgICBteSAkT3V0cHV0OwoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgJE91dHB1dCA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdRdWVzdGlvbiBFZGl0JywKICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgKTsKICAgIG15ICVTdXJ2ZXkgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlN1cnZleUdldCggU3VydmV5SUQgPT4gJFBhcmFte1N1cnZleUlEfSApOwogICAgbXkgJVF1ZXN0aW9uID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvbkdldCggUXVlc3Rpb25JRCA9PiAkUGFyYW17UXVlc3Rpb25JRH0gKTsKCiAgICBteSAkQXJyYXlIYXNoUmVmID0gWwogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ1llcycsCiAgICAgICAgICAgIFZhbHVlID0+ICdZZXMnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnTm8nLAogICAgICAgICAgICBWYWx1ZSA9PiAnTm8nLAogICAgICAgIH0KICAgIF07CgogICAgaWYgKCAkUXVlc3Rpb257QW5zd2VyUmVxdWlyZWR9ICkgewogICAgICAgICRBcnJheUhhc2hSZWYtPlswXXtTZWxlY3RlZH0gPSAxOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEFycmF5SGFzaFJlZi0+WzFde1NlbGVjdGVkfSA9IDE7CiAgICB9CgogICAgbXkgJEFuc3dlclJlcXVpcmVkU2VsZWN0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgID0+ICRBcnJheUhhc2hSZWYsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnQW5zd2VyUmVxdWlyZWQnLAogICAgICAgIElEICAgICAgICAgICAgPT4gJ0Fuc3dlclJlcXVpcmVkJywKICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICdZZXMnLAogICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMSwKICAgICk7CgogICAgIyBwcmludCB0aGUgbWFpbiBib2R5CiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1F1ZXN0aW9uRWRpdCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEFuc3dlclJlcXVpcmVkU2VsZWN0ID0+ICRBbnN3ZXJSZXF1aXJlZFNlbGVjdCwKICAgICAgICAgICAgJVF1ZXN0aW9uLAogICAgICAgICAgICAlU2VydmVyRXJyb3IsCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAkUXVlc3Rpb257VHlwZX0gZXEgJ1llc05vJyApIHsKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKCBOYW1lID0+ICdRdWVzdGlvbkVkaXRUYWJsZScgKTsKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKCBOYW1lID0+ICdRdWVzdGlvbkVkaXRZZXNubycgKTsKICAgIH0KICAgIGVsc2lmICggJFF1ZXN0aW9ue1R5cGV9IGVxICdSYWRpbycgfHwgJFF1ZXN0aW9ue1R5cGV9IGVxICdDaGVja2JveCcgKSB7CgogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ1F1ZXN0aW9uRWRpdFRhYmxlJyApOwoKICAgICAgICBteSAkVHlwZSA9ICRRdWVzdGlvbntUeXBlfTsKICAgICAgICBteSBATGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyTGlzdCggUXVlc3Rpb25JRCA9PiAkUGFyYW17UXVlc3Rpb25JRH0gKTsKICAgICAgICBpZiAoIHNjYWxhciBATGlzdCApIHsKCiAgICAgICAgICAgIGlmICggJFN1cnZleXtTdGF0dXN9IGVxICdOZXcnICkgewoKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ1F1ZXN0aW9uRWRpdFRhYmxlRGVsZXRlJyApOwoKICAgICAgICAgICAgICAgIG15ICRDb3VudGVyID0gMDsKICAgICAgICAgICAgICAgIGZvciBteSAkQW5zd2VyMiAoQExpc3QpIHsKICAgICAgICAgICAgICAgICAgICAkQW5zd2VyMi0+e1N1cnZleUlEfSA9ICRQYXJhbXtTdXJ2ZXlJRH07CgogICAgICAgICAgICAgICAgICAgIG15ICRDbGFzc1VwOwogICAgICAgICAgICAgICAgICAgIG15ICRDbGFzc0Rvd247CgogICAgICAgICAgICAgICAgICAgICMgZGlzYWJsZSB1cCBhY3Rpb24gb24gZmlyc3Qgcm93CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJENvdW50ZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDbGFzc1VwID0gJ0Rpc2FibGVkJzsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgZGlzYWJsZSBkb3duIGFjdGlvbiBvbiBsYXN0IHJvdwogICAgICAgICAgICAgICAgICAgIGlmICggJENvdW50ZXIgPT0gJCNMaXN0ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ2xhc3NEb3duID0gJ0Rpc2FibGVkJzsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gIlF1ZXN0aW9uRWRpdCIgLiAkVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAleyRBbnN3ZXIyfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzVXAgICA9PiAkQ2xhc3NVcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzRG93biA9PiAkQ2xhc3NEb3duLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUXVlc3Rpb25FZGl0JyAuICRUeXBlIC4gJ0RlbGV0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJEFuc3dlcjIsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUXVlc3Rpb25FZGl0QWRkQW5zd2VyJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVF1ZXN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAlU2VydmVyRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBteSAkQ291bnRlcjsKICAgICAgICAgICAgICAgIGZvciBteSAkQW5zd2VyMiAoQExpc3QpIHsKICAgICAgICAgICAgICAgICAgICAkQW5zd2VyMi0+e1N1cnZleUlEfSA9ICRQYXJhbXtTdXJ2ZXlJRH07CgogICAgICAgICAgICAgICAgICAgIG15ICRDbGFzc1VwOwogICAgICAgICAgICAgICAgICAgIG15ICRDbGFzc0Rvd247CgogICAgICAgICAgICAgICAgICAgIGlmICggISRDb3VudGVyICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ2xhc3NVcCA9ICdEaXNhYmxlZCcsCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoICRDb3VudGVyICYmICRDb3VudGVyID09ICQjTGlzdCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJENsYXNzRG93biA9ICdEaXNhYmxlZCcsCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICJRdWVzdGlvbkVkaXQiIC4gJFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJXskQW5zd2VyMn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc1VwICAgPT4gJENsYXNzVXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc0Rvd24gPT4gJENsYXNzRG93biwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRDb3VudGVyKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb0Fuc3dlcnNTYXZlZCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBDb2x1bW5zID0+IDMsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUXVlc3Rpb25FZGl0QWRkQW5zd2VyJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVRdWVzdGlvbn0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzaWYgKCAkUXVlc3Rpb257VHlwZX0gZXEgJ1RleHRhcmVhJyApIHsKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKCBOYW1lID0+ICdRdWVzdGlvbkVkaXRUZXh0QXJlYScgKTsKICAgIH0KICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Rm9vdGVyKCBUeXBlID0+ICdTbWFsbCcgKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX01hc2tBbnN3ZXJFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVNlcnZlckVycm9yOwogICAgaWYgKCAkUGFyYW17U2VydmVyRXJyb3J9ICkgewogICAgICAgICVTZXJ2ZXJFcnJvciA9ICV7ICRQYXJhbXtTZXJ2ZXJFcnJvcn0gfTsKICAgIH0KCiAgICBteSAkT3V0cHV0OwogICAgJE91dHB1dCA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdBbnN3ZXIgRWRpdCcsCiAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICk7CiAgICBteSAlQW5zd2VyID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJHZXQoIEFuc3dlcklEID0+ICRQYXJhbXtBbnN3ZXJJRH0gKTsKICAgICRBbnN3ZXJ7U3VydmV5SUR9ID0gJFBhcmFte1N1cnZleUlEfTsKCiAgICAjIHByaW50IHRoZSBtYWluIHRhYmxlLgogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBbnN3ZXJFZGl0JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJUFuc3dlciwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlU2VydmVyRXJyb3IsCiAgICAgICAgfSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50U3VydmV5RWRpdFF1ZXN0aW9ucycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Rm9vdGVyKCBUeXBlID0+ICdTbWFsbCcgKTsKICAgIHJldHVybiAkT3V0cHV0OwoKfQoKMTsK
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0FnZW50U3VydmV5Wm9vbS5wbSAtIGEgc3VydmV5IG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDEyIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy8KIyAtLQojICRJZDogQWdlbnRTdXJ2ZXlab29tLnBtLHYgMS4xMSAyMDEyLzExLzIwIDE5OjEyOjAyIG1oIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRTdXJ2ZXlab29tOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzOwoKdXNlIHZhcnMgcXcoJFZFUlNJT04pOwokVkVSU0lPTiA9IHF3KCRSZXZpc2lvbjogMS4xMSAkKSBbMV07CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IGNvbW1vbiBvYmplY3RzCiAgICAleyRTZWxmfSA9ICVQYXJhbTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoUGFyYW1PYmplY3QgREJPYmplY3QgTGF5b3V0T2JqZWN0IExvZ09iamVjdCBDb25maWdPYmplY3QpKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPnskT2JqZWN0fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5GYXRhbEVycm9yKCBNZXNzYWdlID0+ICJHb3Qgbm8gJE9iamVjdCEiICk7CiAgICAgICAgfQogICAgfQogICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9ICAgID0gS2VybmVsOjpTeXN0ZW06OlN1cnZleS0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzLT5uZXcoJVBhcmFtKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0OwoKICAgICMgdmlldyBhdHRhY2htZW50IGZvciBodG1sIGVtYWlsCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnSFRNTFZpZXcnICkgewoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBteSAkU3VydmV5SUQgICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKICAgICAgICBteSAkU3VydmV5RmllbGQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlGaWVsZCIgKTsKCiAgICAgICAgIyBuZWVkZWQgcGFyYW1zCiAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KCBTdXJ2ZXlJRCBTdXJ2ZXlGaWVsZCApKSB7CiAgICAgICAgICAgIGlmICggISROZWVkZWQgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZGVkIFBhcmFtOiAkTmVlZGVkISIsCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFN1cnZleUZpZWxkIG5lICdJbnRyb2R1Y3Rpb24nICYmICRTdXJ2ZXlGaWVsZCBuZSAnRGVzY3JpcHRpb24nICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIFN1cnZleUZpZWxkIFBhcmFtOiAkU3VydmV5RmllbGQhIiwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKCBFbGVtZW50SUQgPT4gJFN1cnZleUlELCBFbGVtZW50ID0+ICdTdXJ2ZXknICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCBTdXJ2ZXlJRDogJFN1cnZleUlEISIsCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGdldCBhbGwgYXR0cmlidXRlcyBvZiB0aGUgc3VydmV5CiAgICAgICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KCBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQgKTsKCiAgICAgICAgaWYgKCAkU3VydmV5eyRTdXJ2ZXlGaWVsZH0gKSB7CgogICAgICAgICAgICAjIGNsZWFuIGh0bWwgYW5kIGNvbnZlcnQgdGhlIEZpZWxkIGluIGh0bWwgKFxuIC0tPjxicj4pCiAgICAgICAgICAgICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgICAgICAgICAgJFN1cnZleXskU3VydmV5RmllbGR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgVGV4dCAgICAgICAgICAgPT4gJFN1cnZleXskU3VydmV5RmllbGR9LAogICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY29udmVydCB0ZXh0IGFyZWEgZmllbGRzIHRvIGFzY2lpCiAgICAgICAgJFN1cnZleXskU3VydmV5RmllbGR9CiAgICAgICAgICAgID0gJFNlbGYtPntIVE1MVXRpbHNPYmplY3R9LT5Ub0FzY2lpKCBTdHJpbmcgPT4gJFN1cnZleXskU3VydmV5RmllbGR9ICk7CgogICAgICAgICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSA9ICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fS0+RG9jdW1lbnRDb21wbGV0ZSgKICAgICAgICAgICAgU3RyaW5nICA9PiAkU3VydmV5eyRTdXJ2ZXlGaWVsZH0sCiAgICAgICAgICAgIENoYXJzZXQgPT4gJ3V0Zi04JywKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5BdHRhY2htZW50KAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3VydmV5IHpvb20KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIGdldCBwYXJhbXMKICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwogICAgbXkgJE1lc3NhZ2UgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiTWVzc2FnZSIgKTsKCiAgICAjIGNoZWNrIGlmIHN1cnZleSBleGlzdHMKICAgIGlmICgKICAgICAgICAhJFN1cnZleUlEIHx8CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKCBFbGVtZW50SUQgPT4gJFN1cnZleUlELCBFbGVtZW50ID0+ICdTdXJ2ZXknICkgbmUKICAgICAgICAnWWVzJwogICAgICAgICkKICAgIHsKICAgICAgICAkTWVzc2FnZSA9ICc7TWVzc2FnZT1Ob1N1cnZleUlEJzsKICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj1BZ2VudFN1cnZleSRNZXNzYWdlIiApOwogICAgfQoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgJE91dHB1dCA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+SGVhZGVyKCBUaXRsZSA9PiAnU3VydmV5JyApOwogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk5hdmlnYXRpb25CYXIoKTsKCiAgICAjIG91dHB1dCBtZXNhZ2VzIGlmIHN0YXR1cyB3YXMgY2hhbmdlZAogICAgaWYgKCBkZWZpbmVkKCRNZXNzYWdlKSAmJiAkTWVzc2FnZSBlcSAnTm9RdWVzdGlvbicgKSB7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgSW5mbyAgICAgPT4gJ0NhblwndCBzZXQgbmV3IHN0YXR1cyEgTm8gcXVlc3Rpb25zIGRlZmluZWQuJywKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCBkZWZpbmVkKCRNZXNzYWdlKSAmJiAkTWVzc2FnZSBlcSAnSW5jb21wbGV0ZVF1ZXN0aW9uJyApIHsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBRdWVzdGlvbnMgaW5jb21wbGV0ZS4nLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoIGRlZmluZWQoJE1lc3NhZ2UpICYmICRNZXNzYWdlIGVxICdTdGF0dXNTZXQnICkgewogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdOb3RpY2UnLAogICAgICAgICAgICBJbmZvICAgICA9PiAnU3RhdHVzIGNoYW5nZWQuJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGFsbCBhdHRyaWJ1dGVzIG9mIHRoZSBzdXJ2ZXkKICAgIG15ICVTdXJ2ZXkgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlN1cnZleUdldCggU3VydmV5SUQgPT4gJFN1cnZleUlEICk7CiAgICBteSAlSFRNTDsKCiAgICAjIGNsZWFuIGh0bWwgYW5kIGNvbnZlcnQgdGhlIHRleHRhcmVhcyBpbiBodG1sIChcbiAtLT48YnI+KQogICAgZm9yIG15ICRTdXJ2ZXlGaWVsZCAocXcoIEludHJvZHVjdGlvbiBEZXNjcmlwdGlvbiApKSB7CiAgICAgICAgbmV4dCBpZiAhJFN1cnZleXskU3VydmV5RmllbGR9OwoKICAgICAgICAkU3VydmV5eyRTdXJ2ZXlGaWVsZH0gPX4gc3tcQVwkaHRtbFwvdGV4dFwkXHMoLiopfXskMX14bXM7CgogICAgICAgIGlmICgkMSkgewogICAgICAgICAgICAkSFRNTHskU3VydmV5RmllbGR9ID0gMTsKICAgICAgICB9CgogICAgICAgICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgVGV4dCAgICAgICAgICAgPT4gJFN1cnZleXskU3VydmV5RmllbGR9LAogICAgICAgICAgICBIVE1MUmVzdWx0TW9kZSA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgbnVtYmVycyBvZiByZXF1ZXN0cyBhbmQgdm90ZXMKICAgIG15ICRTZW5kUmVxdWVzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+Q291bnRSZXF1ZXN0KAogICAgICAgIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCwKICAgICAgICBWYWxpZElEICA9PiAnYWxsJywKICAgICk7CiAgICBteSAkUmVxdWVzdENvbXBsZXRlID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5Db3VudFJlcXVlc3QoCiAgICAgICAgU3VydmV5SUQgPT4gJFN1cnZleUlELAogICAgICAgIFZhbGlkSUQgID0+IDAsCiAgICApOwogICAgJFN1cnZleXtTZW5kUmVxdWVzdH0gICAgID0gJFNlbmRSZXF1ZXN0OwogICAgJFN1cnZleXtSZXF1ZXN0Q29tcGxldGV9ID0gJFJlcXVlc3RDb21wbGV0ZTsKCiAgICAjIGdldCBzZWxlY3RlZCBxdWV1ZXMKICAgIG15ICVRdWV1ZXMgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+R2V0QWxsUXVldWVzKCk7CiAgICBteSBAUXVldWVMaXN0ID0gbWFwIHsgJFF1ZXVlc3skX30gfSBAeyAkU3VydmV5e1F1ZXVlc30gfTsKICAgIEBRdWV1ZUxpc3QgPSBzb3J0IHsgbGMgJGEgY21wIGxjICRiIH0gQFF1ZXVlTGlzdDsKICAgIG15ICRRdWV1ZUxpc3RTdHJpbmcgPSBqb2luIHF7LCB9LCBAUXVldWVMaXN0OwoKICAgIG15ICROb1F1ZXVlTWVzc2FnZSA9ICcnOwogICAgaWYgKCAhJFF1ZXVlTGlzdFN0cmluZyApIHsKICAgICAgICAkUXVldWVMaXN0U3RyaW5nID0gJy0gTm8gcXVldWUgc2VsZWN0ZWQgLSc7CiAgICB9CgogICAgIyBwcmludCB0aGUgbWFpbiB0YWJsZS4KICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU3VydmV5Wm9vbScsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVTdXJ2ZXksCiAgICAgICAgICAgIE5vUXVldWVNZXNzYWdlICA9PiAkTm9RdWV1ZU1lc3NhZ2UsCiAgICAgICAgICAgIFF1ZXVlTGlzdFN0cmluZyA9PiAkUXVldWVMaXN0U3RyaW5nLAogICAgICAgICAgICBIVE1MUmljaFRleHRIZWlnaHREZWZhdWx0ID0+CiAgICAgICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpGcm9udGVuZDo6SFRNTFJpY2hUZXh0SGVpZ2h0RGVmYXVsdCcpIHx8IDgwLAogICAgICAgICAgICBIVE1MUmljaFRleHRIZWlnaHRNYXggPT4KICAgICAgICAgICAgICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6OkZyb250ZW5kOjpIVE1MUmljaFRleHRIZWlnaHRNYXgnKSB8fCAyNTAwLAogICAgICAgIH0sCiAgICApOwoKICAgIGZvciBteSAkRmllbGQgKHF3KCBJbnRyb2R1Y3Rpb24gRGVzY3JpcHRpb24pKSB7CiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU3VydmV5QmxvY2snLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFRpdGxlID0+ICJTdXJ2ZXkgJEZpZWxkIiwKICAgICAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIGlmICggJEhUTUx7JEZpZWxkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0JvZHlIVE1MJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFN1cnZleUZpZWxkID0+ICRGaWVsZCwKICAgICAgICAgICAgICAgICAgICBTdXJ2ZXlJRCAgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0JvZHlQbGFpbicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBMYWJlbCAgID0+ICRGaWVsZCwKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRTdXJ2ZXl7JEZpZWxkfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZGlzcGxheSBzdGF0cyBpZiBzdGF0dXMgTWFzdGVyLCBWYWxpZCBvciBJbnZhbGlkCiAgICBpZiAoCiAgICAgICAgJFN1cnZleXtTdGF0dXN9ICAgIGVxICdNYXN0ZXInCiAgICAgICAgfHwgJFN1cnZleXtTdGF0dXN9IGVxICdWYWxpZCcKICAgICAgICB8fCAkU3VydmV5e1N0YXR1c30gZXEgJ0ludmFsaWQnCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1N1cnZleUVkaXRTdGF0cycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgU3VydmV5SUQgPT4gJFN1cnZleUlELAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGFsbCBxdWVzdGlvbnMgb2YgdGhlIHN1cnZleQogICAgICAgIG15IEBRdWVzdGlvbkxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uTGlzdCggU3VydmV5SUQgPT4gJFN1cnZleUlEICk7CiAgICAgICAgZm9yIG15ICRRdWVzdGlvbiAoQFF1ZXN0aW9uTGlzdCkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3VydmV5RWRpdFN0YXRzUXVlc3Rpb24nLAogICAgICAgICAgICAgICAgRGF0YSA9PiAkUXVlc3Rpb24sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15IEBBbnN3ZXJzOwoKICAgICAgICAgICAgIyBnZW5lcmF0ZSB0aGUgYW5zd2VycyBvZiB0aGUgcXVlc3Rpb24KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFF1ZXN0aW9uLT57VHlwZX0gICAgZXEgJ1llc05vJwogICAgICAgICAgICAgICAgfHwgJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1JhZGlvJwogICAgICAgICAgICAgICAgfHwgJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ0NoZWNrYm94JwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSBAQW5zd2VyTGlzdDsKCiAgICAgICAgICAgICAgICAjIHNldCBhbnN3ZXJzIHRvIFllcyBhbmQgTm8gaWYgdHlwZSB3YXMgWWVzTm8KICAgICAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1llc05vJyApIHsKICAgICAgICAgICAgICAgICAgICBteSAlRGF0YTsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ICAgPSAiWWVzIjsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJJRH0gPSAiWWVzIjsKICAgICAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VyTGlzdCwgXCVEYXRhICk7CiAgICAgICAgICAgICAgICAgICAgbXkgJURhdGEyOwogICAgICAgICAgICAgICAgICAgICREYXRhMntBbnN3ZXJ9ICAgPSAiTm8iOwogICAgICAgICAgICAgICAgICAgICREYXRhMntBbnN3ZXJJRH0gPSAiTm8iOwogICAgICAgICAgICAgICAgICAgIHB1c2goIEBBbnN3ZXJMaXN0LCBcJURhdGEyICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgYWxsIGFuc3dlcnMgb2YgYSBxdWVzdGlvbgogICAgICAgICAgICAgICAgICAgIEBBbnN3ZXJMaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJMaXN0KAogICAgICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IgbXkgJFJvdyAoQEFuc3dlckxpc3QpIHsKICAgICAgICAgICAgICAgICAgICBteSAkQ291bnRWb3RlID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5Db3VudFZvdGUoCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIFZvdGVWYWx1ZSAgPT4gJFJvdy0+e0Fuc3dlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIG15ICRQZXJjZW50ID0gMDsKCiAgICAgICAgICAgICAgICAgICAgIyBjYWxjdWxhdGUgdGhlIHBlcmNlbnRzCiAgICAgICAgICAgICAgICAgICAgaWYgKCRSZXF1ZXN0Q29tcGxldGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFBlcmNlbnQgPSAxMDAgLyAkUmVxdWVzdENvbXBsZXRlICogJENvdW50Vm90ZTsKICAgICAgICAgICAgICAgICAgICAgICAgJFBlcmNlbnQgPSBzcHJpbnRmKCAiJS4wZiIsICRQZXJjZW50ICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIG15ICVEYXRhOwogICAgICAgICAgICAgICAgICAgICREYXRhe0Fuc3dlcn0gICAgICAgID0gJFJvdy0+e0Fuc3dlcn07CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyUGVyY2VudH0gPSAkUGVyY2VudDsKICAgICAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VycywgXCVEYXRhICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnVGV4dGFyZWEnICkgewogICAgICAgICAgICAgICAgbXkgJEFuc3dlck5vID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5Db3VudFZvdGUoCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICBWb3RlVmFsdWUgID0+ICcnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG15ICRQZXJjZW50ID0gMDsKCiAgICAgICAgICAgICAgICAjIGNhbGN1bGF0ZSB0aGUgcGVyY2VudHMKICAgICAgICAgICAgICAgIGlmICgkUmVxdWVzdENvbXBsZXRlKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmNlbnQgPSAxMDAgLyAkUmVxdWVzdENvbXBsZXRlICogJEFuc3dlck5vOwogICAgICAgICAgICAgICAgICAgICRQZXJjZW50ID0gc3ByaW50ZiggIiUuMGYiLCAkUGVyY2VudCApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbXkgJURhdGE7CiAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0gImFuc3dlcmVkIjsKICAgICAgICAgICAgICAgIGlmICggISRSZXF1ZXN0Q29tcGxldGUgKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyUGVyY2VudH0gPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyUGVyY2VudH0gPSAxMDAgLSAkUGVyY2VudDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHB1c2goIEBBbnN3ZXJzLCBcJURhdGEgKTsKICAgICAgICAgICAgICAgIG15ICVEYXRhMjsKICAgICAgICAgICAgICAgICREYXRhMntBbnN3ZXJ9ICAgICAgICA9ICJub3QgYW5zd2VyZWQiOwogICAgICAgICAgICAgICAgJERhdGEye0Fuc3dlclBlcmNlbnR9ID0gJFBlcmNlbnQ7CiAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VycywgXCVEYXRhMiApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG91dHB1dCBhbGwgYW5zd2VycyBvZiB0aGUgc3VydmV5CiAgICAgICAgICAgIGZvciBteSAkUm93IChAQW5zd2VycykgewogICAgICAgICAgICAgICAgJFJvdy0+e0Fuc3dlclBlcmNlbnRUYWJsZX0gPSAkUm93LT57QW5zd2VyUGVyY2VudH07CiAgICAgICAgICAgICAgICBpZiAoICEkUm93LT57QW5zd2VyUGVyY2VudH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFJvdy0+e0Fuc3dlclBlcmNlbnRUYWJsZX0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdTdXJ2ZXlFZGl0U3RhdHNBbnN3ZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJFJvdywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCRSZXF1ZXN0Q29tcGxldGUpIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N1cnZleUVkaXRTdGF0c0RldGFpbHMnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7IFN1cnZleUlEID0+ICRTdXJ2ZXlJRCB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRTdXJ2ZXl7U3RhdHVzfSBlcSAnTmV3JyApIHsKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKCBOYW1lID0+ICdOb1N0YXRSZXN1bHRzJyApOwogICAgfQoKICAgICMgb3V0cHV0IHRoZSBwb3NzaWJsZSBzdGF0dXMKICAgIG15ICVOZXdTdGF0dXM7CiAgICAkTmV3U3RhdHVze0NoYW5nZVN0YXR1c30gPSAnLSBDaGFuZ2UgU3RhdHVzIC0nOwoKICAgIGlmICggJFN1cnZleXtTdGF0dXN9IGVxICdOZXcnIHx8ICRTdXJ2ZXl7U3RhdHVzfSBlcSAnSW52YWxpZCcgKSB7CiAgICAgICAgJE5ld1N0YXR1c3tNYXN0ZXJ9ID0gJ01hc3Rlcic7CiAgICAgICAgJE5ld1N0YXR1c3tWYWxpZH0gID0gJ1ZhbGlkJzsKICAgIH0KICAgIGVsc2lmICggJFN1cnZleXtTdGF0dXN9IGVxICdWYWxpZCcgKSB7CiAgICAgICAgJE5ld1N0YXR1c3tNYXN0ZXJ9ICA9ICdNYXN0ZXInOwogICAgICAgICROZXdTdGF0dXN7SW52YWxpZH0gPSAnSW52YWxpZCc7CiAgICB9CiAgICBlbHNpZiAoICRTdXJ2ZXl7U3RhdHVzfSBlcSAnTWFzdGVyJyApIHsKICAgICAgICAkTmV3U3RhdHVze1ZhbGlkfSAgID0gJ1ZhbGlkJzsKICAgICAgICAkTmV3U3RhdHVze0ludmFsaWR9ID0gJ0ludmFsaWQnOwogICAgfQoKICAgIG15ICROZXdTdGF0dXNTdHIgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIE5hbWUgICAgICAgPT4gJ05ld1N0YXR1cycsCiAgICAgICAgSUQgICAgICAgICA9PiAnTmV3U3RhdHVzJywKICAgICAgICBEYXRhICAgICAgID0+IFwlTmV3U3RhdHVzLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJ0NoYW5nZVN0YXR1cycsCiAgICApOwoKICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU3VydmV5U3RhdHVzJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgTmV3U3RhdHVzU3RyID0+ICROZXdTdGF0dXNTdHIsCiAgICAgICAgICAgIFN1cnZleUlEICAgICA9PiAkU3VydmV5SUQsCiAgICAgICAgfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRTdXJ2ZXlab29tJywKICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICApOwogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgoxOwo=
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL1B1YmxpY1N1cnZleS5wbSAtIGEgc3VydmV5IG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDEyIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy8KIyAtLQojICRJZDogUHVibGljU3VydmV5LnBtLHYgMS4zMSAyMDEyLzExLzIzIDEzOjM2OjE5IGpoIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6UHVibGljU3VydmV5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzOwoKdXNlIHZhcnMgcXcoJFZFUlNJT04pOwokVkVSU0lPTiA9IHF3KCRSZXZpc2lvbjogMS4zMSAkKSBbMV07CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IGNvbW1vbiBvYmplY3RzCiAgICAleyRTZWxmfSA9ICVQYXJhbTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoUGFyYW1PYmplY3QgREJPYmplY3QgTGF5b3V0T2JqZWN0IExvZ09iamVjdCBDb25maWdPYmplY3QgVXNlck9iamVjdCkpIHsKICAgICAgICBpZiAoICEkU2VsZi0+eyRPYmplY3R9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoIE1lc3NhZ2UgPT4gIkdvdCBubyAkT2JqZWN0ISIgKTsKICAgICAgICB9CiAgICB9CiAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5LT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fSA9IEtlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMtPm5ldyglUGFyYW0pOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPdXRwdXQ7CgogICAgbXkgJUFuc3dlcnM7CiAgICBteSAlRXJyb3JzOwogICAgbXkgQFF1ZXN0aW9uTGlzdDsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHB1YmxpYyBzdXJ2ZXkgdm90ZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1B1YmxpY1N1cnZleVZvdGUnICkgewogICAgICAgIG15ICRQdWJsaWNTdXJ2ZXlLZXkgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdQdWJsaWNTdXJ2ZXlLZXknICk7CiAgICAgICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UHVibGljU3VydmV5R2V0KCBQdWJsaWNTdXJ2ZXlLZXkgPT4gJFB1YmxpY1N1cnZleUtleSApOwogICAgICAgIGlmICggJFN1cnZleXtTdXJ2ZXlJRH0gKSB7CiAgICAgICAgICAgIEBRdWVzdGlvbkxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uTGlzdCggU3VydmV5SUQgPT4gJFN1cnZleXtTdXJ2ZXlJRH0gKTsKCiAgICAgICAgICAgIGZvciBteSAkUXVlc3Rpb24gKEBRdWVzdGlvbkxpc3QpIHsKICAgICAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1llc05vJyApIHsKICAgICAgICAgICAgICAgICAgICBteSAkUHVibGljU3VydmV5Vm90ZTEgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtID0+ICJQdWJsaWNTdXJ2ZXlWb3RlMVskUXVlc3Rpb24tPntRdWVzdGlvbklEfV0iCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkUXVlc3Rpb24tPntBbnN3ZXJSZXF1aXJlZH0KICAgICAgICAgICAgICAgICAgICAgICAgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKCAhJFB1YmxpY1N1cnZleVZvdGUxIHx8ICFsZW5ndGggJFB1YmxpY1N1cnZleVZvdGUxICkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVycm9yc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfXsnQW5zd2VyIHJlcXVpcmVkJ30gPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gPSAkUHVibGljU3VydmV5Vm90ZTE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdSYWRpbycgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFB1YmxpY1N1cnZleVZvdGUyID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKAogICAgICAgICAgICAgICAgICAgICAgICBQYXJhbSA9PiAiUHVibGljU3VydmV5Vm90ZTJbJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH1dIgogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFF1ZXN0aW9uLT57QW5zd2VyUmVxdWlyZWR9CiAgICAgICAgICAgICAgICAgICAgICAgICYmICggISRQdWJsaWNTdXJ2ZXlWb3RlMiB8fCAhbGVuZ3RoICRQdWJsaWNTdXJ2ZXlWb3RlMiApCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH17J0Fuc3dlciByZXF1aXJlZCd9ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9ID0gJFB1YmxpY1N1cnZleVZvdGUyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgICAgIG15IEBBbnN3ZXJMaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJMaXN0KAogICAgICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9CiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRBbnN3ZXIgKEBBbnN3ZXJMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRQdWJsaWNTdXJ2ZXlWb3RlMyA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtID0+ICJQdWJsaWNTdXJ2ZXlWb3RlM1skQW5zd2VyLT57QW5zd2VySUR9XSIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHVibGljU3VydmV5Vm90ZTMgJiYgJFB1YmxpY1N1cnZleVZvdGUzIGVxICdZZXMnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAeyAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSB9LCAkQW5zd2VyLT57QW5zd2VySUR9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFF1ZXN0aW9uLT57QW5zd2VyUmVxdWlyZWR9CiAgICAgICAgICAgICAgICAgICAgICAgICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICFkZWZpbmVkICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IG5lICdBUlJBWScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhQHsgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH17J0Fuc3dlciByZXF1aXJlZCd9ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFB1YmxpY1N1cnZleVZvdGU0ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKAogICAgICAgICAgICAgICAgICAgICAgICBQYXJhbSA9PiAiUHVibGljU3VydmV5Vm90ZTRbJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH1dIgogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgcmljaCB0ZXh0IGlzIGVuYWJsZWQKICAgICAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRQdWJsaWNTdXJ2ZXlWb3RlNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoIGxlbmd0aCAkUHVibGljU3VydmV5Vm90ZTQgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiXCRodG1sL3RleHRcJCAkUHVibGljU3VydmV5Vm90ZTQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRRdWVzdGlvbi0+e0Fuc3dlclJlcXVpcmVkfQogICAgICAgICAgICAgICAgICAgICAgICAmJgogICAgICAgICAgICAgICAgICAgICAgICAoICEkUHVibGljU3VydmV5Vm90ZTQgfHwgIWxlbmd0aCAkUHVibGljU3VydmV5Vm90ZTQgKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9eydBbnN3ZXIgcmVxdWlyZWQnfSA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9ID0gJFB1YmxpY1N1cnZleVZvdGU0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIElmIHdlIGRpZG4ndCBoYXZlIGVycm9ycywganVzdCBzYXZlIHRoZSBhbnN3ZXJzCiAgICAgICAgICAgIGlmICggIXNjYWxhciBrZXlzICVFcnJvcnMgKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFF1ZXN0aW9uIChAUXVlc3Rpb25MaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnWWVzTm8nICkgewogICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlB1YmxpY0Fuc3dlclNhdmUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJFB1YmxpY1N1cnZleUtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgICAgICA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZvdGVWYWx1ZSAgICAgICA9PiAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnUmFkaW8nICkgewogICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlB1YmxpY0Fuc3dlclNhdmUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJFB1YmxpY1N1cnZleUtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgICAgICA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZvdGVWYWx1ZSAgICAgICA9PiAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgICAgICAgICBteSBAQW5zd2VyTGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyTGlzdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHJlZiAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBAeyAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkQW5zd2VyICggQHsgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlB1YmxpY0Fuc3dlclNhdmUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY1N1cnZleUtleSA9PiAkUHVibGljU3VydmV5S2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbklEICAgICAgPT4gJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZvdGVWYWx1ZSAgICAgICA9PiAkQW5zd2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnVGV4dGFyZWEnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlB1YmxpY0Fuc3dlclNhdmUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJFB1YmxpY1N1cnZleUtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgICAgICA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZvdGVWYWx1ZSAgICAgICA9PiAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0KICAgICAgICAgICAgICAgICAgICAtPlB1YmxpY1N1cnZleUludmFsaWRTZXQoIFB1YmxpY1N1cnZleUtleSA9PiAkUHVibGljU3VydmV5S2V5ICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5DdXN0b21lckhlYWRlciggVGl0bGUgPT4gJ1N1cnZleScgKTsKCiAgICAgICAgICAgICAgICAjIHByaW50IHRoZSBtYWluIHRhYmxlLgogICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQdWJsaWNTdXJ2ZXlNZXNzYWdlJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVR5cGUgICA9PiAnU3VydmV5IEluZm9ybWF0aW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZUhlYWRlciA9PiAnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLicsCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgICAgICAgPT4gJ1RoZSBzdXJ2ZXkgaXMgZmluaXNoZWQuJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnUHVibGljU3VydmV5JywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNob3cgc3VydmV5IHZvdGUgZGF0YQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1Nob3dWb3RlRGF0YScgKSB7CiAgICAgICAgbXkgJFB1YmxpY1N1cnZleUtleSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1B1YmxpY1N1cnZleUtleScgKTsKCiAgICAgICAgIyByZXR1cm4gaWYgZmVhdHVyZSBub3QgZW5hYmxlZAogICAgICAgIGlmICggISRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCJTdXJ2ZXk6OlNob3dWb3RlRGF0YSIpICkgewogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Q3VzdG9tZXJIZWFkZXIoKTsKCiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQdWJsaWNTdXJ2ZXlNZXNzYWdlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VUeXBlICAgPT4gJ1N1cnZleSBNZXNzYWdlIScsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZUhlYWRlciA9PiAnTW9kdWxlIG5vdCBlbmFibGVkLicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAnVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBlbmFibGVkLCBwbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNTdXJ2ZXknLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgIyBHZXQgdGhlIHJlcXVlc3QgZGF0YSBhbmQgc3RhcnQgc2hvd2luZyB0aGUgZGF0YQogICAgICAgIG15ICVSZXF1ZXN0RGF0YSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UmVxdWVzdEdldCgKICAgICAgICAgICAgUHVibGljU3VydmV5S2V5ID0+ICRQdWJsaWNTdXJ2ZXlLZXksCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFN1cnZleUlEICA9ICRSZXF1ZXN0RGF0YXtTdXJ2ZXlJRH07CiAgICAgICAgbXkgJFRpY2tldElEICA9ICRSZXF1ZXN0RGF0YXtUaWNrZXRJRH07CiAgICAgICAgbXkgJFJlcXVlc3RJRCA9ICRSZXF1ZXN0RGF0YXtSZXF1ZXN0SUR9OwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwgRWxlbWVudCA9PiAnU3VydmV5JyApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cyggRWxlbWVudElEID0+ICRSZXF1ZXN0SUQsIEVsZW1lbnQgPT4gJ1JlcXVlc3QnICkKICAgICAgICAgICAgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiV3JvbmcgcHVibGljIHN1cnZleSBrZXk6ICRQdWJsaWNTdXJ2ZXlLZXkhIiwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdpbmZvJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVySGVhZGVyKCBUaXRsZSA9PiAnU3VydmV5JyApOwoKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleU1lc3NhZ2UnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVR5cGUgICA9PiAnU3VydmV5IEVycm9yIScsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZUhlYWRlciA9PiAnSW52YWxpZCBzdXJ2ZXkga2V5LicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAnVGhlIGluc2VydGVkIHN1cnZleSBrZXkgaXMgaW52YWxpZCwgaWYgeW91IGZvbGxvd2VkIGEgbGluayBtYXliZSB0aGlzIGlzIG9ic29sZXRlIG9yIGJyb2tlbi4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ1B1YmxpY1N1cnZleScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Q3VzdG9tZXJGb290ZXIoKTsKICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5DdXN0b21lckhlYWRlciggVGl0bGUgPT4gJ1N1cnZleSBWb3RlJyApOwoKICAgICAgICBteSAlU3VydmV5ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5TdXJ2ZXlHZXQoCiAgICAgICAgICAgIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgUHVibGljICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIGh0bWwKICAgICAgICBpZiAoICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSApIHsKICAgICAgICAgICAgJFN1cnZleXtJbnRyb2R1Y3Rpb259ID1+IHN7XEFcJGh0bWxcL3RleHRcJFxzKC4qKX17JDF9eG1zOwoKICAgICAgICAgICAgbXkgJEhUTUxDb250ZW50ID0gJDE7CiAgICAgICAgICAgIGlmICggISRIVE1MQ29udGVudCApIHsKICAgICAgICAgICAgICAgICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkU3VydmV5e0ludHJvZHVjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcHJpbnQgdGhlIG1haW4gdGFibGUuCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljU3VydmV5Vm90ZURhdGEnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVTdXJ2ZXksCiAgICAgICAgICAgICAgICBNZXNzYWdlVHlwZSA9PiAnU3VydmV5IFZvdGUgRGF0YScsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICBteSBAUXVlc3Rpb25MaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvbkxpc3QoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgIGZvciBteSAkUXVlc3Rpb24gKEBRdWVzdGlvbkxpc3QpIHsKCiAgICAgICAgICAgIG15ICRDbGFzcyA9ICcnOwogICAgICAgICAgICBpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICAkQ2xhc3MgPSAnVGV4dGFyZWEnOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkUmVxdWlyZWRUZXh0ID0gJyc7CiAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57QW5zd2VyUmVxdWlyZWR9ICkgewogICAgICAgICAgICAgICAgJENsYXNzIC49ICcgTWFuZGF0b3J5JzsKICAgICAgICAgICAgICAgICRSZXF1aXJlZFRleHQgPSAnKiAnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljU3VydmV5Vm90ZVF1ZXN0aW9uJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkVGV4dCA9PiAkUmVxdWlyZWRUZXh0LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgQEFuc3dlcnM7CiAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1JhZGlvJyB8fCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgbXkgQEFuc3dlckxpc3Q7CiAgICAgICAgICAgICAgICBAQW5zd2VyTGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+Vm90ZUdldCgKICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SUQgID0+ICRSZXF1ZXN0SUQsCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFJvdyAoQEFuc3dlckxpc3QpIHsKICAgICAgICAgICAgICAgICAgICBteSAlQW5zd2VyID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJHZXQoIEFuc3dlcklEID0+ICRSb3ctPntWb3RlVmFsdWV9ICk7CiAgICAgICAgICAgICAgICAgICAgbXkgJURhdGE7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9ICRBbnN3ZXJ7QW5zd2VyfTsKICAgICAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VycywgXCVEYXRhICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnWWVzTm8nIHx8ICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICBteSBATGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+Vm90ZUdldCgKICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SUQgID0+ICRSZXF1ZXN0SUQsCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJURhdGE7CiAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0gJExpc3RbMF0tPntWb3RlVmFsdWV9OwoKICAgICAgICAgICAgICAgICMgY2xlYW4gaHRtbAogICAgICAgICAgICAgICAgaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnVGV4dGFyZWEnICYmICREYXRhe0Fuc3dlcn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkRGF0YXtBbnN3ZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBIVE1MUmVzdWx0TW9kZSA9PiAxLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkMSkgewogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fS0+VG9Bc2NpaSggU3RyaW5nID0+ICREYXRhe0Fuc3dlcn0gKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VycywgXCVEYXRhICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBBbnN3ZXJzKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleVZvdGVBbnN3ZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAleyRSb3d9LAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNTdXJ2ZXknLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IHN1cnZleQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgbXkgJFB1YmxpY1N1cnZleUtleSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1B1YmxpY1N1cnZleUtleScgKTsKICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVySGVhZGVyKCBUaXRsZSA9PiAnU3VydmV5JyApOwoKICAgIG15ICRVc2VkU3VydmV5S2V5ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5QdWJsaWNTdXJ2ZXlHZXQoCiAgICAgICAgUHVibGljU3VydmV5S2V5ID0+ICRQdWJsaWNTdXJ2ZXlLZXksCiAgICAgICAgSW52YWxpZCAgICAgICAgID0+IDEsCiAgICApOwoKICAgIG15ICVTdXJ2ZXkgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlB1YmxpY1N1cnZleUdldCggUHVibGljU3VydmV5S2V5ID0+ICRQdWJsaWNTdXJ2ZXlLZXkgKTsKCiAgICAkU3VydmV5e1B1YmxpY1N1cnZleUtleX0gPSAkUHVibGljU3VydmV5S2V5OwoKICAgIGlmICgkVXNlZFN1cnZleUtleSkgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleU1lc3NhZ2UnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIE1lc3NhZ2VUeXBlICAgPT4gJ1N1cnZleSBJbmZvcm1hdGlvbicsCiAgICAgICAgICAgICAgICBNZXNzYWdlSGVhZGVyID0+ICdUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgICAgICAgPT4gJ1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoIlN1cnZleTo6U2hvd1ZvdGVEYXRhIikgKSB7CiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTaG93QW5zd2Vyc0J1dHRvbicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJFB1YmxpY1N1cnZleUtleSwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzaWYgKCAkU3VydmV5e1N1cnZleUlEfSApIHsKCiAgICAgICAgIyBjbGVhbiBodG1sIGFuZCBwcm9jY2VzcyBpbnRyb2R1Y3Rpb24gdGV4dAogICAgICAgICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgICAgICBteSAkSFRNTENvbnRlbnQgPSAkMTsKICAgICAgICBpZiAoICEkSFRNTENvbnRlbnQgKSB7CiAgICAgICAgICAgICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSwKICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleScsCiAgICAgICAgICAgIERhdGEgPT4geyVTdXJ2ZXl9LAogICAgICAgICk7CgogICAgICAgICMgSWYgd2UgaGFkIGVycm9ycywgQFF1ZXN0aW9uTGlzdCBpcyBhbHJlYWR5IGZpbGxlZCwgc28gbGV0J3Mgc2F2ZSBhIFNRTCBxdWVyeQogICAgICAgIGlmICggIUBRdWVzdGlvbkxpc3QgKSB7CiAgICAgICAgICAgIEBRdWVzdGlvbkxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uTGlzdCggU3VydmV5SUQgPT4gJFN1cnZleXtTdXJ2ZXlJRH0gKTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkUXVlc3Rpb24gKEBRdWVzdGlvbkxpc3QpIHsKCiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ1B1YmxpY1F1ZXN0aW9ucycgKTsKCiAgICAgICAgICAgIG15ICRDbGFzcyAgICAgICAgPSAnJzsKICAgICAgICAgICAgbXkgJFJlcXVpcmVkVGV4dCA9ICcnOwogICAgICAgICAgICBteSAkRXJyb3JUZXh0OwogICAgICAgICAgICBpZiAoICRRdWVzdGlvbi0+e0Fuc3dlclJlcXVpcmVkfSApIHsKICAgICAgICAgICAgICAgICRDbGFzcyAuPSAnTWFuZGF0b3J5JzsKICAgICAgICAgICAgICAgICRSZXF1aXJlZFRleHQgPSAnKiAnOwoKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9CiAgICAgICAgICAgICAgICAmJiByZWYgJEVycm9yc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSBlcSAnSEFTSCcKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgJUVycm9ycyBob2xkcyBhIGtleSBmb3IgZWFjaCBRdWVzdGlvbklEIHRoYXQgaGFkIGVycm9ycy4KICAgICAgICAgICAgICAgICMgVGhlIHZhbHVlIGlzIGEgaGFzaHJlZiB3aG8ncyBrZXlzIGFyZSB0aGUgRXJyb3JUeXBlCiAgICAgICAgICAgICAgICAjIFRoZSB2YWx1ZSBpcyBzZXQgdG8gMQogICAgICAgICAgICAgICAgIyBSZWFzb24gZm9yIHRoaXMgaXMsIHRoYXQgdGhlIHZhbHVlIG1heSBiZSB1c2VkIHRvIGRpc3BsYXkKICAgICAgICAgICAgICAgICMgYSBtb3JlIHNwZWNpZmljIEVycm9yIE1lc3NhZ2UgY29udGFpbmluZyB0ZXh0IHF1ZXN0aW9uIHNwZWNpZmljIGVycm9yIG1lc3NhZ2VzCiAgICAgICAgICAgICAgICAjIG9yIHNpbWlsYXIuIFNvIGEgdHlwZSBzcGVjaWZpYyBlcnJvciBtZXNzYWdlIHRyZWF0bWVudCB3b3VsZCBiZSBwb3NzaWJsZSBoZXJlLgoKICAgICAgICAgICAgICAgICMgQXQgdGhlIHRpbWUgb2YgY3JlYXRpb24gdGhlIG9ubHkgZXJyb3IgdHlwZSB3YXMgJ0Fuc3dlciByZXF1aXJlZCcuCiAgICAgICAgICAgICAgICAjIFNvIGEgZGF0YSBzdHJ1Y3R1cmUgbG9va3MgbGlrZSB0aGlzOgogICAgICAgICAgICAgICAgIyAlRXJyb3JzID0gKAogICAgICAgICAgICAgICAgIyAgIDEgPT4gewogICAgICAgICAgICAgICAgIyAgICAgICAgJ0Fuc3dlciByZXF1aXJlZCcgPT4gMSwKICAgICAgICAgICAgICAgICMgICB9LAogICAgICAgICAgICAgICAgIyAgIDIgPT4gewogICAgICAgICAgICAgICAgIyAgICAgICAgJ0Fuc3dlciByZXF1aXJlZCcgPT4gMSwKICAgICAgICAgICAgICAgICMgICAgfSwKICAgICAgICAgICAgICAgICMgKTsKCiAgICAgICAgICAgICAjIExhdGVyIG9uIGEgRGF0YXN0cnVjdHVyZSBsaWtlIHRoZSBmb2xsb3dpbmcgd291bGQgYmUgcG9zc2libGU6CiAgICAgICAgICAgICAjICVFcnJvcnMgPSAoCiAgICAgICAgICAgICAjICAgMSA9PiB7CiAgICAgICAgICAgICAjICAgICAgICAnSW52YWxpZCB0ZXh0JyA9PiAnWW91ciBUZXh0IGRpZCBub3QgY29udGFpbiB0aGUgT3JkZXIgbnVtYmVyJywKICAgICAgICAgICAgICMgICB9LAogICAgICAgICAgICAgIyAgIDIgPT4gewogICAgICAgICAgICAgIyAgICAgICAgJ0Fuc3dlciByZXF1aXJlZCcgPT4gMSwKICAgICAgICAgICAgICMgICAgfSwKICAgICAgICAgICAgICMgKTsKICAgICAgICAgICAgICMgQXMgc29vbiBhcyB0aGlzIGlzIG5lZWRlZCwgdGhlIGZvbGxvd2luZyAkRXJyb3JUZXh0IHN0cmluZ2J1aWxkaW5nIGhhcyB0byBiZSBjaGFuZ2VkLgoKICAgICAgICAgICAgICAgICMgVGhlIHN0cmluZ2J1aWxkaW5nIHdvcmtzIGF0IHRoZSBtb21lbnQgdGhpcyB3YXk6CiAgICAgICAgICAgICAgICAjIDEuIEdvIHRocm91Z2ggYWxsIGtleXMgb2YgdGhlICV7ICRFcnJvcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gfSBoYXNoCiAgICAgICAgICAgICAgICAjIDIuIERvIGEgdHJhbnNsYXRpb24gZm9yIGVhY2gga2V5IChpbnNpZGUgdGhlICJtYXAge30iLWNsYXVzZSkKICAgICAgICAgICAgICAgICMgMy4gam9pbiB0aGUgcmVzdWx0aW5nIEFycmF5IGJ5IHB1dHRpbmcgIjwvcD5cbjwvcD4iIGluIGJldHdlZW4gdGhlIEFycmF5a2V5cwogICAgICAgICAgICAgICAgIyA0LiBhZGQgJzxwPicgYXQgdGhlIGJlZ2lubmluZyBhbmQgJzwvcD4nIGF0IHRoZSBlbmQuCgogICAgICAgICAgICAgICAgJEVycm9yVGV4dCA9ICc8cD4nCiAgICAgICAgICAgICAgICAgICAgLiAoCiAgICAgICAgICAgICAgICAgICAgam9pbiAiPC9wPlxuPHA+IiwKICAgICAgICAgICAgICAgICAgICBtYXAgeyAkU2VsZi0+e0xheW91dE9iamVjdH0tPntMYW5ndWFnZU9iamVjdH0tPkdldCgkXykgfQogICAgICAgICAgICAgICAgICAgICAgICBrZXlzICV7ICRFcnJvcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAuICc8L3A+JzsKCiAgICAgICAgICAgICAgICAkRXJyb3JUZXh0ID0gPDxFTkQ7CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJUb29sdGlwRXJyb3IiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVG9vbHRpcCBUb25ndWVMZWZ0Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJUb25ndWUiID48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IiByb2xlPSJ0b29sdGlwIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXJyb3JUZXh0CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgpFTkQKICAgICAgICAgICAgICAgICRDbGFzcyAuPSAnIEVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnWWVzTm8nICkgewoKICAgICAgICAgICAgICAgIG15ICVTZWxlY3RlZCA9ICgKICAgICAgICAgICAgICAgICAgICBZZXNTZWxlY3RlZCA9PiAoCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IGVxICdZZXMnCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgICAgICAgICA6ICcnLAogICAgICAgICAgICAgICAgICAgIE5vU2VsZWN0ZWQgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSBlcSAnTm8nCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgICAgICAgICA6ICcnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY0Fuc3dlclllc05vJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJXskUXVlc3Rpb259LAogICAgICAgICAgICAgICAgICAgICAgICAlU2VsZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yVGV4dCA9PiAkRXJyb3JUZXh0IHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkVGV4dCA9PiAkUmVxdWlyZWRUZXh0LAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1JhZGlvJyApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljQW5zd2VyUmFkaW8nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAleyRRdWVzdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yVGV4dCA9PiAkRXJyb3JUZXh0IHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkVGV4dCA9PiAkUmVxdWlyZWRUZXh0LAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbXkgQEFuc3dlckxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlckxpc3QoCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmb3IgbXkgJEFuc3dlciAoQEFuc3dlckxpc3QpIHsKCiAgICAgICAgICAgICAgICAgICAgbXkgJFNlbGVjdGVkID0gJyc7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICYmICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IGVxICRBbnN3ZXItPntBbnN3ZXJJRH0KICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFNlbGVjdGVkID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljQW5zd2VyUmFkaW9iJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAleyRBbnN3ZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5zd2VyU2VsZWN0ZWQgPT4gJFNlbGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQdWJsaWNBbnN3ZXJDaGVja2JveCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JUZXh0ID0+ICRFcnJvclRleHQgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzID0+ICRDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWlyZWRUZXh0ID0+ICRSZXF1aXJlZFRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBteSBAQW5zd2VyTGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyTGlzdCgKICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZvciBteSAkQW5zd2VyIChAQW5zd2VyTGlzdCkgewogICAgICAgICAgICAgICAgICAgIG15ICRTZWxlY3RlZCA9ICcnOwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfQogICAgICAgICAgICAgICAgICAgICAgICAmJiByZWYgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gZXEgJ0FSUkFZJwogICAgICAgICAgICAgICAgICAgICAgICAmJiBAeyAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICYmIHNjYWxhciBncmVwIHsgJF8gZXEgJEFuc3dlci0+e0Fuc3dlcklEfSB9CiAgICAgICAgICAgICAgICAgICAgICAgIEB7ICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IH0KICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFNlbGVjdGVkID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljQW5zd2VyQ2hlY2tib3hiJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAleyRBbnN3ZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5zd2VyU2VsZWN0ZWQgPT4gJFNlbGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnVGV4dGFyZWEnICkgewogICAgICAgICAgICAgICAgbXkgJFZhbHVlID0gJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gfHwgJyc7CiAgICAgICAgICAgICAgICAkVmFsdWUgPX4gcy9eXCRodG1sXC90ZXh0XCRccy8vOwogICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQdWJsaWNBbnN3ZXJUZXh0YXJlYScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JUZXh0ID0+ICRFcnJvclRleHQgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzID0+ICRDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWlyZWRUZXh0ID0+ICRSZXF1aXJlZFRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiByaWNoIHRleHQgaXMgZW5hYmxlZAogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0xheW91dE9iamVjdH0tPntCcm93c2VyUmljaFRleHR9ICkgewogICAgICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ1JpY2hUZXh0JyApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljU3VydmV5TWVzc2FnZScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTWVzc2FnZVR5cGUgICA9PiAnU3VydmV5IEVycm9yIScsCiAgICAgICAgICAgICAgICBNZXNzYWdlSGVhZGVyID0+ICdJbnZhbGlkIHN1cnZleSBrZXkuJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAnVGhlIGluc2VydGVkIHN1cnZleSBrZXkgaXMgaW52YWxpZCwgaWYgeW91IGZvbGxvd2VkIGEgbGluayBtYXliZSB0aGlzIGlzIG9ic29sZXRlIG9yIGJyb2tlbi4nLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnUHVibGljU3VydmV5JywKICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICApOwogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVyRm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9TdXJ2ZXlPdmVydmlld1NtYWxsLnBtLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBTdXJ2ZXlPdmVydmlld1NtYWxsLnBtLHYgMS40IDIwMTIvMTEvMjAgMTk6MTI6MTQgbWggRXhwICQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OlN1cnZleU92ZXJ2aWV3U21hbGw7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgdmFycyBxdygkVkVSU0lPTik7CiRWRVJTSU9OID0gcXcoJFJldmlzaW9uOiAxLjQgJCkgWzFdOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKAogICAgICAgIHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgREJPYmplY3QgTGF5b3V0T2JqZWN0IFVzZXJJRCBVc2VyT2JqZWN0IE1haW5PYmplY3QpCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoUGFnZVNob3duIFN0YXJ0SGl0KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgbmVlZCBTdXJ2ZXlJRHMKICAgIGlmICggISRQYXJhbXtTdXJ2ZXlJRHN9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCB0aGUgU3VydmV5SURzIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzdG9yZSB0aGUgU3VydmV5SURzIGxvY2FsbHkKICAgIG15IEBJRHMgPSBAeyAkUGFyYW17U3VydmV5SURzfSB9OwoKICAgICMgY2hlY2sgU2hvd0NvbHVtbnMgcGFyYW1ldGVyCiAgICBteSBAU2hvd0NvbHVtbnM7CiAgICBpZiAoICRQYXJhbXtTaG93Q29sdW1uc30gJiYgcmVmICRQYXJhbXtTaG93Q29sdW1uc30gZXEgJ0FSUkFZJyApIHsKICAgICAgICBAU2hvd0NvbHVtbnMgPSBAeyAkUGFyYW17U2hvd0NvbHVtbnN9IH07CiAgICB9CgogICAgbXkgJE91dHB1dCA9ICcnOwoKICAgICMgc2hvdyBzdXJ2ZXlzIGlmIHRoZXJlIGFyZSBzb21lCiAgICBpZiAoQElEcykgewoKICAgICAgICAjIGJ1aWxkIGNvbHVtbiBoZWFkZXIgYmxvY2tzCiAgICAgICAgIyBjdXJyZW50bHkgc29ydGluZyBpcyBub3QgaW1wbGVtZW50ZWQgb24gc3VydmV5LCBsZWF2ZSB0aGUgY29kZSBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uCiAgICAgICAgaWYgKEBTaG93Q29sdW1ucykgewogICAgICAgICAgICBmb3IgbXkgJENvbHVtbiAoQFNob3dDb2x1bW5zKSB7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgbmVlZGVkIHZhcmlhYmxlcwogICAgICAgICAgICAgICAgbXkgJENTUyA9ICcnOwogICAgICAgICAgICAgICAgbXkgJE9yZGVyQnk7CgogICAgICAgICAgICAgICAgIyBzZXQgdGhlIGNvcnJlY3QgU2V0IENTUyBjbGFzcyBhbmQgb3JkZXIgYnkgbGluawogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17U29ydEJ5fSAmJiAoICRQYXJhbXtTb3J0Qnl9IGVxICRDb2x1bW4gKSApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtPcmRlckJ5fSAmJiAoICRQYXJhbXtPcmRlckJ5fSBlcSAnVXAnICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRPcmRlckJ5ID0gJ0Rvd24nOwogICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydERlc2NlbmRpbmcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJE9yZGVyQnkgPSAnVXAnOwogICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydEFzY2VuZGluZyc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJE9yZGVyQnkgPSAnVXAnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgb3V0cHV0IGVhY2ggaGVhZGVyCiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ0hlYWRlcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ID0+ICRPcmRlckJ5LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkQ291bnRlciA9IDA7CgogICAgICAgIElEOgogICAgICAgIGZvciBteSAkSUQgKEBJRHMpIHsKICAgICAgICAgICAgJENvdW50ZXIrKzsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJENvdW50ZXIgPj0gJFBhcmFte1N0YXJ0SGl0fQogICAgICAgICAgICAgICAgJiYgJENvdW50ZXIgPCAoICRQYXJhbXtQYWdlU2hvd259ICsgJFBhcmFte1N0YXJ0SGl0fSApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGdldCBzdXJ2ZXkgZGF0YQogICAgICAgICAgICAgICAgbXkgJURhdGEgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlN1cnZleUdldCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgU3VydmV5SUQgPT4gJElELAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBuZXh0IElEIGlmICElRGF0YTsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIHJlY29yZCBibG9jawogICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgYnVpbGQgY29sdW1uIHJlY29yZCBibG9ja3MKICAgICAgICAgICAgICAgIGlmIChAU2hvd0NvbHVtbnMpIHsKICAgICAgICAgICAgICAgICAgICBDT0xVTU46CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRDb2x1bW4gKEBTaG93Q29sdW1ucykgewogICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkJyAuICRDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBzaG93IGxpbmtzIGlmIGF2YWlsYWJsZQogICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkJyAuICRDb2x1bW4gLiAnTGlua1N0YXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbiAuICdMaW5rRW5kJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgaWYgdGhlcmUgYXJlIG5vIHN1cnZleXMgdG8gc2hvdywgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGluIHRoZSB0YWJsZQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFRvdGFsQ29sdW1ucyA9PiBzY2FsYXIgQFNob3dDb2x1bW5zLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyB1c2UgdGVtcGxhdGUKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJFNlbGYtPntWaWV3VHlwZX0sCiAgICAgICAgICAgIENvbHVtbkNvdW50ID0+IHNjYWxhciBAU2hvd0NvbHVtbnMsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIEFnZW50U3VydmV5LmR0bCAtIHByb3ZpZGVzIEhUTUwgZm9ybSBmb3IgQWdlbnRTdXJ2ZXkKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMiBPVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvCiMgLS0KIyAkSWQ6IEFnZW50U3VydmV5LmR0bCx2IDEuNTkgMjAxMi8xMS8yMSAxMDo1OTo1NCBqaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkIC0tPgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckxhc3QiPgoKICAgIDxoMT4kVGV4dHsiQ3JlYXRlIE5ldyBTdXJ2ZXkifTwvaDE+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iU3VydmV5IiBpZD0iU3VydmV5IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlN1cnZleU5ldyIgLz4KCiAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRpdGxlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiVGl0bGUifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJUaXRsZSIgbmFtZT0iVGl0bGUiIHR5cGU9InRleHQiIGNsYXNzPSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IlRpdGxlU2VydmVyRXJyb3IifSIgdmFsdWU9IiRRRGF0YXsiVGl0bGUifSIgLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlBZGRSaWNoVGV4dCAtLT4KJEluY2x1ZGV7IlJpY2hUZXh0RWRpdG9yIn0KPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkUmljaFRleHQgLS0+CgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkSW50cm9kdWN0aW9uIC0tPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkludHJvZHVjdGlvbiI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IkludHJvZHVjdGlvbiJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iSW50cm9kdWN0aW9uIiBuYW1lPSJJbnRyb2R1Y3Rpb24iIG5hbWU9IkludHJvZHVjdGlvbiIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiSW50cm9kdWN0aW9uU2VydmVyRXJyb3IifSIgdGl0bGU9IlN1cnZleSBJbnRyb2R1Y3Rpb24iIHJvd3M9IjE1IiBjb2xzPSIkQ29uZmlneyJUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUifSI+JERhdGF7IkludHJvZHVjdGlvbiJ9PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZEludHJvZHVjdGlvbiAtLT4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTm90aWZpY2F0aW9uU2VuZGVyIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiU2VuZGVyIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iTm90aWZpY2F0aW9uU2VuZGVyIiBuYW1lPSJOb3RpZmljYXRpb25TZW5kZXIiIHR5cGU9InRleHQiIGNsYXNzPSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7Ik5vdGlmaWNhdGlvblNlbmRlclNlcnZlckVycm9yIn0iIHZhbHVlPSIkUURhdGF7Ik5vdGlmaWNhdGlvblNlbmRlciJ9IiAvPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTm90aWZpY2F0aW9uU3ViamVjdCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IlN1YmplY3QifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJOb3RpZmljYXRpb25TdWJqZWN0IiBuYW1lPSJOb3RpZmljYXRpb25TdWJqZWN0IiB0eXBlPSJ0ZXh0IiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJOb3RpZmljYXRpb25TdWJqZWN0U2VydmVyRXJyb3IifSIgdmFsdWU9IiRRRGF0YXsiTm90aWZpY2F0aW9uU3ViamVjdCJ9IiAvPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZE5vdGlmaWNhdGlvbkJvZHkgLS0+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTm90aWZpY2F0aW9uQm9keSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IkJvZHkifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJpY2hUZXh0RmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9Ik5vdGlmaWNhdGlvbkJvZHkiIG5hbWU9Ik5vdGlmaWNhdGlvbkJvZHkiIGNsYXNzPSJSaWNoVGV4dCBWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7Ik5vdGlmaWNhdGlvbkJvZHlTZXJ2ZXJFcnJvciJ9IiB0aXRsZT0iTm90aWZpY2F0aW9uIEJvZHkiIHJvd3M9IjE1IiBjb2xzPSIkQ29uZmlneyJUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUifSI+JFFEYXRheyJOb3RpZmljYXRpb25Cb2R5In08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkTm90aWZpY2F0aW9uQm9keSAtLT4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUXVldWVzIj4kVGV4dHsiUXVldWVzIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRheyJRdWV1ZVN0cmluZyJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkSW50ZXJuYWxEZXNjcmlwdGlvbiAtLT4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJEZXNjcmlwdGlvbiI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IkludGVybmFsIERlc2NyaXB0aW9uIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJEZXNjcmlwdGlvbiIgbmFtZT0iRGVzY3JpcHRpb24iIGNsYXNzPSJSaWNoVGV4dCBWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IkRlc2NyaXB0aW9uU2VydmVyRXJyb3IifSIgdGl0bGU9IkludGVybmFsIERlc2NyaXB0aW9uIiByb3dzPSIxNSIgY29scz0iJENvbmZpZ3siVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIn0iPiRRRGF0YXsiRGVzY3JpcHRpb24ifTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlBZGRJbnRlcm5hbERlc2NyaXB0aW9uIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkR2VuZXJpY0Vycm9yIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IiRRRGF0YXsiSXRlbU5hbWUifSIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD4kVGV4dHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifTwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkR2VuZXJpY0Vycm9yIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkR2VuZXJpY1NlcnZlckVycm9yIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IiRRRGF0YXsiSXRlbU5hbWUifSIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD4kVGV4dHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifTwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkR2VuZXJpY1NlcnZlckVycm9yIC0tPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IiRUZXh0eyJTYXZlIn0iPiRUZXh0eyJTYXZlIn08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICA8L2Zvcm0+CgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlBZGQgLS0+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0IC0tPgo8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IlN1cnZleSIgaWQ9IlN1cnZleSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTdXJ2ZXlTYXZlIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VydmV5SUQiIHZhbHVlPSIkUURhdGF7IlN1cnZleUlEIn0iIC8+CgogICAgPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICA8aDE+JFRleHR7IkVkaXQgR2VuZXJhbCBJbmZvIn06ICRUZXh0eyIkQ29uZmlneyJTdXJ2ZXk6Okhvb2sifSJ9JFFEYXRheyJTdXJ2ZXlOdW1iZXIifSAtICRRRGF0YXsiVGl0bGUifTwvaDE+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9IiMiPiRUZXh0eyJDYW5jZWwgJiBjbG9zZSB3aW5kb3cifTwvYT4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiR2VuZXJhbCBJbmZvIn08L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUaXRsZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IlRpdGxlIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IlRpdGxlIiBuYW1lPSJUaXRsZSIgdHlwZT0idGV4dCIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiVGl0bGVTZXJ2ZXJFcnJvciJ9IiB2YWx1ZT0iJFFEYXRheyJUaXRsZSJ9IiAvPgogICAgICAgICAgICAgICAgPC9kaXY+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0UmljaFRleHQgLS0+CiRJbmNsdWRleyJSaWNoVGV4dEVkaXRvciJ9CjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRSaWNoVGV4dCAtLT4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRJbnRyb2R1Y3Rpb24gLS0+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJJbnRyb2R1Y3Rpb24iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJJbnRyb2R1Y3Rpb24ifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJJbnRyb2R1Y3Rpb24iIG5hbWU9IkludHJvZHVjdGlvbiIgbmFtZT0iSW50cm9kdWN0aW9uIiBjbGFzcz0iUmljaFRleHQgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJJbnRyb2R1Y3Rpb25TZXJ2ZXJFcnJvciJ9IiB0aXRsZT0iU3VydmV5IEludHJvZHVjdGlvbiIgcm93cz0iMTUiIGNvbHM9IiRDb25maWd7IlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSJ9Ij4kRGF0YXsiSW50cm9kdWN0aW9uIn08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRJbnRyb2R1Y3Rpb24gLS0+CgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTm90aWZpY2F0aW9uU2VuZGVyIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiU2VuZGVyIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik5vdGlmaWNhdGlvblNlbmRlciIgbmFtZT0iTm90aWZpY2F0aW9uU2VuZGVyIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJOb3RpZmljYXRpb25TZW5kZXJTZXJ2ZXJFcnJvciJ9IiB2YWx1ZT0iJFFEYXRheyJOb3RpZmljYXRpb25TZW5kZXIifSIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5vdGlmaWNhdGlvblN1YmplY3QiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJTdWJqZWN0In06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik5vdGlmaWNhdGlvblN1YmplY3QiIG5hbWU9Ik5vdGlmaWNhdGlvblN1YmplY3QiIHR5cGU9InRleHQiIGNsYXNzPSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7Ik5vdGlmaWNhdGlvblN1YmplY3RTZXJ2ZXJFcnJvciJ9IiB2YWx1ZT0iJFFEYXRheyJOb3RpZmljYXRpb25TdWJqZWN0In0iIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXROb3RpZmljYXRpb25Cb2R5IC0tPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTm90aWZpY2F0aW9uQm9keSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IkJvZHkifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJOb3RpZmljYXRpb25Cb2R5IiBuYW1lPSJOb3RpZmljYXRpb25Cb2R5IiBjbGFzcz0iUmljaFRleHQgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJOb3RpZmljYXRpb25Cb2R5U2VydmVyRXJyb3IifSIgdGl0bGU9Ik5vdGlmaWNhdGlvbiBCb2R5IiByb3dzPSIxNSIgY29scz0iJENvbmZpZ3siVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIn0iPiRRRGF0YXsiTm90aWZpY2F0aW9uQm9keSJ9PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0Tm90aWZpY2F0aW9uQm9keSAtLT4KCiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJRdWV1ZXMiPiRUZXh0eyJRdWV1ZXMifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICREYXRheyJRdWV1ZVN0cmluZyJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRJbnRlcm5hbERlc2NyaXB0aW9uIC0tPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iRGVzY3JpcHRpb24iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJJbnRlcm5hbCBEZXNjcmlwdGlvbiJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IkRlc2NyaXB0aW9uIiBuYW1lPSJEZXNjcmlwdGlvbiIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiRGVzY3JpcHRpb25TZXJ2ZXJFcnJvciJ9IiB0aXRsZT0iSW50ZXJuYWwgRGVzY3JpcHRpb24iIHJvd3M9IjE1IiBjb2xzPSIkQ29uZmlneyJUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUifSI+JFFEYXRheyJEZXNjcmlwdGlvbiJ9PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0SW50ZXJuYWxEZXNjcmlwdGlvbiAtLT4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRHZW5lcmljRXJyb3IgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSIkUURhdGF7Ikl0ZW1OYW1lIn0iIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICA8cD4kVGV4dHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0R2VuZXJpY0Vycm9yIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFNlcnZlckVycm9yIC0tPgogICAgICAgICAgICAgICAgPGRpdiBpZD0iJFFEYXRheyJJdGVtTmFtZSJ9IiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFNlcnZlckVycm9yIC0tPgoKICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJGb290ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSIkVGV4dHsiU2F2ZSJ9Ij4kVGV4dHsiU2F2ZSJ9PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9mb3JtPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0IC0tPgoKPCEtLSBkdGw6YmxvY2s6U3RhdHMgLS0+CjxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT4kVGV4dHsiU3RhdHMgT3ZlcnZpZXcgb2YifSA6ICRUZXh0eyIkQ29uZmlneyJTdXJ2ZXk6Okhvb2sifSJ9JERhdGF7IlN1cnZleU51bWJlciJ9IC0gJERhdGF7IlRpdGxlIn0gPC9oMT4KICAgICAgICA8cD4KICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9IiMiPiRUZXh0eyJDYW5jZWwgJiBjbG9zZSB3aW5kb3cifTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICA8aDI+PC9oMj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tTWVkaXVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiUmVxdWVzdHMgVGFibGUifTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiU2VuZCBUaW1lIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRleHR7IlZvdGUgVGltZSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJUaWNrZXQifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiRGV0YWlscyJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5Pgo8IS0tIGR0bDpibG9jazpTdGF0c1ZvdGUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGltZUxvbmd7IiREYXRheyJTZW5kVGltZSJ9In0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWVMb25neyIkRGF0YXsiVm90ZVRpbWUifSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJMaW5rWm9vbVZpZXcgQXNCbG9jayIgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj1BZ2VudFRpY2tldFpvb207VGlja2V0SUQ9JExRRGF0YXsiVGlja2V0SUQifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRRRGF0YXsiVGlja2V0TnVtYmVyIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPVN0YXRzRGV0YWlsO1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtSZXF1ZXN0SUQ9JFFEYXRheyJSZXF1ZXN0SUQifTtUaWNrZXROdW1iZXI9JFFEYXRheyJUaWNrZXROdW1iZXIifSIgY2xhc3M9IlNlZURldGFpbHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZWUgRGV0YWlsczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgo8IS0tIGR0bDpibG9jazpTdGF0c1ZvdGUgLS0+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAgUHJpbWFyeSIgdmFsdWU9IiRUZXh0eyJDbG9zZSB3aW5kb3cifSI+JFRleHR7IkNsb3NlIHdpbmRvdyJ9PC9idXR0b24+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgICQoJ2EuTGlua1pvb21WaWV3JykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgd2luZG93Lm9wZW5lci5Db3JlLlVJLlBvcHVwLkZpcmVQb3B1cEV2ZW50KCdVUkwnLCB7IFVSTDogJCh0aGlzKS5hdHRyKCdocmVmJyl9KTsKICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgIH0pOwoKICAgICQoJ2EuSGlzdG9yeUJhY2snKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgIGhpc3RvcnkuYmFjaygpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0pOwogICAgJCgnYnV0dG9uLkhpc3RvcnlCYWNrJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBoaXN0b3J5LmJhY2soKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKCi8vXV0+PC9zY3JpcHQ+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3RhdHMgLS0+Cgo8IS0tIGR0bDpibG9jazpTdGF0c0RldGFpbCAtLT4KPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgPGgxPiRUZXh0eyJTdXJ2ZXkgU3RhdCBEZXRhaWxzIn0gOiAkVGV4dHsiVGlja2V0In0jJERhdGF7IlRpY2tldE51bWJlciJ9IDogJENvbmZpZ3siU3VydmV5OjpIb29rIn0kRGF0YXsiU3VydmV5TnVtYmVyIn0gLSAkRGF0YXsiVGl0bGUifSA6ICA8L2gxPgogICAgICAgIDxwPgogICAgICAgICAgICA8YSBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCIgaHJlZj0iIyI+JFRleHR7IkNhbmNlbCAmIGNsb3NlIHdpbmRvdyJ9PC9hPgogICAgICAgICAgICAkVGV4dHsib3IifQogICAgICAgICAgICA8YSBjbGFzcz0iSGlzdG9yeUJhY2siIGhyZWY9IiMiPiRUZXh0eyJnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3In08L2E+CiAgICAgICAgPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgyPjwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AgU3BhY2luZ0JvdHRvbU1lZGl1bSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+JFRleHR7IkRldGFpbHMifTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KPCEtLSBkdGw6YmxvY2s6U3RhdHNEZXRhaWxRdWVzdGlvbiAtLT4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9IiREYXRheyJDbGFzcyJ9Ij4kUURhdGF7IlJlcXVpcmVkVGV4dCJ9JFFEYXRheyJRdWVzdGlvbiJ9OjwvbGFiZWw+CjwhLS0gZHRsOmJsb2NrOlN0YXRzRGV0YWlsQW5zd2VyIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkICREYXRheyJDbGFzcyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgJERhdGF7IkFuc3dlciJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdGF0c0RldGFpbEFuc3dlciAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN0YXRzRGV0YWlsUXVlc3Rpb24gLS0+CiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgICAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU3RhdHMiIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1cnZleUlEIiB2YWx1ZT0iJFFEYXRheyJTdXJ2ZXlJRCJ9IiAvPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9IlByaW1hcnkiIHZhbHVlPSIkVGV4dHsiR28gQmFjayJ9Ij4kVGV4dHsiR28gQmFjayJ9PC9idXR0b24+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAkKCdhLkhpc3RvcnlCYWNrJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBoaXN0b3J5LmJhY2soKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KPCEtLSBkdGw6anNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+CjwhLS0gZHRsOmJsb2NrOlN0YXRzRGV0YWlsIC0tPgo=
IyAtLQojIEFnZW50U3VydmV5Wm9vbS5kdGwgLSBwcm92aWRlcyBIVE1MIGZvcm0gZm9yIEFnZW50U3VydmV5CiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBBZ2VudFN1cnZleVpvb20uZHRsLHYgMS4yMSAyMDEyLzExLzIwIDE5OjEyOjI2IG1oIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlab29tIC0tPgo8ZGl2IGNsYXNzPSJNYWluQm94IEFyaWFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxkaXYgY2xhc3M9IkNsZWFyTGVmdCI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJIZWFkbGluZSI+CiAgICAgICAgPGgxPiRUZXh0eyIkQ29uZmlneyJTdXJ2ZXk6Okhvb2sifSJ9JFFEYXRheyJTdXJ2ZXlOdW1iZXIifSAtICRRRGF0YXsiVGl0bGUifTwvaDE+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckxhc3QiPgogICAgICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+JFRleHR7IlN1cnZleSBJbmZvcm1hdGlvbiJ9PC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD4kVGV4dHsiQ3JlYXRlZCJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+JFRpbWVTaG9ydHsiJFFEYXRheyJDcmVhdGVUaW1lIn0ifTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPiRUZXh0eyJDcmVhdGVkIGJ5In06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4kUURhdGF7IkNyZWF0ZVVzZXJGaXJzdG5hbWUifSAkUURhdGF7IkNyZWF0ZVVzZXJMYXN0bmFtZSJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+JFRleHR7IkNoYW5nZWQifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiID4kVGltZVNob3J0eyIkUURhdGF7IkNoYW5nZVRpbWUifSJ9PC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPiRUZXh0eyJDaGFuZ2VkIGJ5In06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4kUURhdGF7IkNoYW5nZVVzZXJGaXJzdG5hbWUifSAkUURhdGF7IkNoYW5nZVVzZXJMYXN0bmFtZSJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+JFRleHR7IlN0YXR1cyJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+JFRleHR7IiREYXRheyJTdGF0dXMifSJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPiRUZXh0eyJTZW50IHJlcXVlc3RzIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4kUURhdGF7IlNlbmRSZXF1ZXN0In08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD4kVGV4dHsiUmVjZWl2ZWQgc3VydmV5cyJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+JFFEYXRheyJSZXF1ZXN0Q29tcGxldGUifTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250cm9sUm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFkZGl0aW9uYWxJbmZvcm1hdGlvbiI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFjdGlvblJvdyI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIiBjbGFzcz0iSGlzdG9yeUJhY2siPiRUZXh0eyJCYWNrIn08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249QWdlbnRTdXJ2ZXk7U3ViYWN0aW9uPVN1cnZleUVkaXQ7U3VydmV5SUQ9JExRRGF0YXsiU3VydmV5SUQifSIgY2xhc3M9IkFzUG9wdXAiPiRUZXh0eyJFZGl0IEdlbmVyYWwgSW5mbyJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPUFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucztTdXJ2ZXlJRD0kTFFEYXRheyJTdXJ2ZXlJRCJ9IiBjbGFzcz0iQXNQb3B1cCI+JFRleHR7IkVkaXQgUXVlc3Rpb25zIn08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFN0YXRzRGV0YWlscyAtLT4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249QWdlbnRTdXJ2ZXk7U3ViYWN0aW9uPVN0YXRzO1N1cnZleUlEPSRMUURhdGF7IlN1cnZleUlEIn0iIGNsYXNzPSJBc1BvcHVwIj4kVGV4dHsiU3RhdHMgRGV0YWlscyJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRTdGF0c0RldGFpbHMgLS0+CjwhLS0gZHRsOmJsb2NrOlN1cnZleVN0YXR1cyAtLT4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IkFjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iQWdlbnRTdXJ2ZXkiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTdXJ2ZXlTdGF0dXMiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdXJ2ZXlJRCIgdmFsdWU9IiRRRGF0YXsiU3VydmV5SUQifSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICREYXRheyJOZXdTdGF0dXNTdHIifQogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KPCEtLSBkdGw6YmxvY2s6U3VydmV5U3RhdHVzIC0tPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiU3VydmV5IERldGFpbHMifTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+JFRleHR7Ik51bWJlciJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4kUURhdGF7IlN1cnZleU51bWJlciJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD4kVGV4dHsiVGl0bGUifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+JFFEYXRheyJUaXRsZSIsIjgwIn08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPiRUZXh0eyJRdWV1ZXMifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCIgdGl0bGU9IiRRRGF0YXsiUXVldWVMaXN0U3RyaW5nIn0iPiRRRGF0YXsiUXVldWVMaXN0U3RyaW5nIiwiODAifSAkUURhdGF7Ik5vUXVldWVNZXNzYWdlIn08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5QmxvY2sgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIFRvZ2dsZSIgaWQ9IiREYXRheyJTdXJ2ZXlGaWVsZCJ9QmxvY2siPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iJFRleHR7IlNob3cgb3IgaGlkZSB0aGUgY29udGVudCJ9Ij48c3Bhbj48L3NwYW4+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiJERhdGF7IlRpdGxlIn0ifTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgo8IS0tIGR0bDpibG9jazpCb2R5SFRNTCAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHdpZHRoPSIxMDAlIiBmcmFtZWJvcmRlcj0iMCIgaWQ9IklmcmFtZVN1cnZleSRRRGF0YXsiU3VydmV5RmllbGQifSIgb25sb2FkPSJTdXJ2ZXkuQWdlbnQuU3VydmV5Wm9vbS5JZnJhbWVBdXRvSGVpZ2h0KCQoJyNJZnJhbWVTdXJ2ZXkkUURhdGF7IlN1cnZleUZpZWxkIn0nKSk7IiBzcmM9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249QWdlbnRTdXJ2ZXlab29tO1N1YmFjdGlvbj1IVE1MVmlldztTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07U3VydmV5RmllbGQ9JFFEYXRheyJTdXJ2ZXlGaWVsZCJ9OyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvaWZyYW1lPgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgo8IS0tIGR0bDpibG9jazpCb2R5SFRNTCAtLT4KPCEtLSBkdGw6YmxvY2s6Qm9keVBsYWluIC0tPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJUZXh0YXJlYSI+JFRleHR7IiREYXRheyJMYWJlbCJ9In06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgVGV4dGFyZWEiPiRRRGF0YXsiQ29udGVudCJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0Pgo8IS0tIGR0bDpibG9jazpCb2R5UGxhaW4gLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUJsb2NrIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tTWVkaXVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IiRUZXh0eyJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQifSI+PHNwYW4+PC9zcGFuPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDI+JFRleHR7IlN1cnZleSBSZXN1bHRzIEdyYXBoIn08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCjwhLS0gZHRsOmJsb2NrOk5vU3RhdFJlc3VsdHMgLS0+CiAgICAgICAgICAgICAgICAgICAgJFRleHR7Ik5vIHN0YXQgcmVzdWx0cy4ifQo8IS0tIGR0bDpibG9jazpOb1N0YXRSZXN1bHRzIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFN0YXRzIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFN0YXRzUXVlc3Rpb24gLS0+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJTcGFjaW5nVG9wIFN1cnZleUdyYXBocyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlF1ZXN0aW9uIiB0aXRsZT0iJERhdGF7IlF1ZXN0aW9uIn0iID4kUURhdGF7IlF1ZXN0aW9uIiwiMTAwIn06IDwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0U3RhdHNBbnN3ZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFuc3dlciI+JFRleHR7IiREYXRheyJBbnN3ZXIifSJ9PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTdXJ2ZXlHcmFwaCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTdXJ2ZXlHcmFwaENvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3VydmV5R3JhcGhCYXIiIHN0eWxlPSJ3aWR0aDokUURhdGF7IkFuc3dlclBlcmNlbnRUYWJsZSJ9JTsiPjwvZGl2ID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlN1cnZleUdyYXBoTGV5ZW5kIj4kUURhdGF7IkFuc3dlclBlcmNlbnQifSU8L3A+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRTdGF0c0Fuc3dlciAtLT4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0U3RhdHNRdWVzdGlvbiAtLT4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRTdGF0cyAtLT4KCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgICQoJ3VsLkFjdGlvbnMgYS5Bc1BvcHVwJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBDb3JlLlVJLlBvcHVwLk9wZW5Qb3B1cCAoJCh0aGlzKS5hdHRyKCdocmVmJyksICdBY3Rpb24nKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKCiAgICAkKCd1bC5BY3Rpb25zIGEuSGlzdG9yeUJhY2snKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgIGhpc3RvcnkuYmFjaygpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0pOwoKICAgICQoJyNOZXdTdGF0dXMnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ2Zvcm0nKS5zdWJtaXQoKTsKICAgIH0pOwoKICAgIENvcmUuQ29uZmlnLlNldCgnU3VydmV5LkhUTUxSaWNoVGV4dEhlaWdodERlZmF1bHQnLCAiJFFEYXRheyJIVE1MUmljaFRleHRIZWlnaHREZWZhdWx0In0iKTsKICAgIENvcmUuQ29uZmlnLlNldCgnU3VydmV5LkhUTUxSaWNoVGV4dEhlaWdodE1heCcsICIkUURhdGF7IkhUTUxSaWNoVGV4dEhlaWdodE1heCJ9Iik7CgovL11dPjwvc2NyaXB0Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPCEtLSBkdGw6YmxvY2s6U3VydmV5Wm9vbSAtLT4K
IyAtLQojIEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucy5kdGwgLSBwcm92aWRlcyBIVE1MIGZvcm0gZm9yIEFnZW50U3VydmV5CiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMuZHRsLHYgMS4xOSAyMDEyLzExLzIxIDEwOjU5OjU0IGpoIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRRdWVzdGlvbnMgLS0+CjxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT4kVGV4dHsiRWRpdCBRdWVzdGlvbnMifTogJFRleHR7IiRDb25maWd7IlN1cnZleTo6SG9vayJ9In0kUURhdGF7IlN1cnZleU51bWJlciJ9IC0gJFFEYXRheyJUaXRsZSJ9PC9oMT4KICAgICAgICA8cD4KICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9IiMiPiRUZXh0eyJDYW5jZWwgJiBjbG9zZSB3aW5kb3cifTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDwvZGl2PgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkUXVlc3Rpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AgU3BhY2luZ0JvdHRvbU1lZGl1bSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+JFRleHR7IkFkZCBRdWVzdGlvbiJ9PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iU3VydmV5UXVlc3Rpb25zIiBpZD0iU3VydmV5UXVlc3Rpb25zIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iUXVlc3Rpb25BZGQiIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VydmV5SUQiIHZhbHVlPSIkUURhdGF7IlN1cnZleUlEIn0iIC8+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJRdWVzdGlvbiI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IlR5cGUgdGhlIHF1ZXN0aW9uIn06Jm5ic3A7PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJRdWVzdGlvbiIgbmFtZT0iUXVlc3Rpb24iIGNsYXNzPSJWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IlF1ZXN0aW9uRXJyb3JDbGFzcyJ9ICIgc2l6ZT0iNjAiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRGF0YXsiU2VsZWN0aW9uVHlwZSJ9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUXVlc3Rpb25FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPiRUZXh0eyJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUXVlc3Rpb25TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPiRUZXh0eyJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQW5zd2VyUmVxdWlyZWQiPiAkVGV4dHsiQW5zd2VyIHJlcXVpcmVkIn06Jm5ic3A7PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJERhdGF7IkFuc3dlclJlcXVpcmVkU2VsZWN0In0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiB2YWx1ZT0iJFRleHR7IkFkZCJ9Ij4kVGV4dHsiQWRkIn08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZFF1ZXN0aW9uIC0tPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tTWVkaXVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiU3VydmV5IFF1ZXN0aW9ucyJ9PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJRdWVzdGlvbiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJUeXBlIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlN1cnZleVN0YXR1c0NvbHVtbiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiU3RhdHVzIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlN1cnZleVN0YXR1c0NvbHVtbiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiVXAifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiRG93biJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlEZWxldGVDb2x1bW4gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRleHR7IkRlbGV0ZSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlEZWxldGVDb2x1bW4gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CjwhLS0gZHRsOmJsb2NrOlN1cnZleU5vUXVlc3Rpb25zU2F2ZWQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIkUURhdGF7IkNvbHVtbnMifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRleHR7Ik5vIHF1ZXN0aW9ucyBzYXZlZCBmb3IgdGhpcyBzdXJ2ZXkuIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CjwhLS0gZHRsOmJsb2NrOlN1cnZleU5vUXVlc3Rpb25zU2F2ZWQgLS0+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlRdWVzdGlvbnNTYXZlZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPVF1ZXN0aW9uRWRpdDtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifSIgPiRRRGF0YXsiUXVlc3Rpb24iLCI5MCJ9PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiJERhdGF7IlR5cGUifSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPVF1ZXN0aW9uVXA7U3VydmV5SUQ9JFFEYXRheyJTdXJ2ZXlJRCJ9O1F1ZXN0aW9uSUQ9JFFEYXRheyJRdWVzdGlvbklEIn0iIGNsYXNzPSJBcnJvd1VwJFFEYXRheyJDbGFzc1VwIn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4kVGV4dHsiVXAifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPVF1ZXN0aW9uRG93bjtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifSIgY2xhc3M9IkFycm93RG93biRRRGF0YXsiQ2xhc3NEb3duIn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4kVGV4dHsiRG93biJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CjwhLS0gZHRsOmJsb2NrOlN1cnZleVF1ZXN0aW9uc1NhdmVkIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5UXVlc3Rpb25zUm93IC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249UXVlc3Rpb25FZGl0O1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtRdWVzdGlvbklEPSRRRGF0YXsiUXVlc3Rpb25JRCJ9IiBjbGFzcz0iJFFEYXRheyJDbGFzcyJ9Ij4kUURhdGF7IlF1ZXN0aW9uIiwiNzAifTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRleHR7IiREYXRheyJUeXBlIn0ifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiJERhdGF7IlN0YXR1cyJ9In0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249UXVlc3Rpb25VcDtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifSIgY2xhc3M9IkFycm93VXAkUURhdGF7IkNsYXNzVXAifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiRUZXh0eyJVcCJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249UXVlc3Rpb25Eb3duO1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtRdWVzdGlvbklEPSRRRGF0YXsiUXVlc3Rpb25JRCJ9IiBjbGFzcz0iQXJyb3dEb3duJFFEYXRheyJDbGFzc0Rvd24ifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiRUZXh0eyJEb3duIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6U3VydmV5UXVlc3Rpb25zRGVsZXRlQnV0dG9uIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IiRFbnZ7IkFjdGlvbiJ9IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJRdWVzdGlvbkRlbGV0ZSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VydmV5SUQiIHZhbHVlPSIkUURhdGF7IlN1cnZleUlEIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlF1ZXN0aW9uSUQiIHZhbHVlPSIkUURhdGF7IlF1ZXN0aW9uSUQifSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJUcmFzaENhbiIgdmFsdWU9IiRUZXh0eyJEZWxldGUifSIgPiRUZXh0eyJEZWxldGUifTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlN1cnZleVF1ZXN0aW9uc0RlbGV0ZUJ1dHRvbiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5UXVlc3Rpb25zUm93IC0tPgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIFByaW1hcnkiIHZhbHVlPSIkVGV4dHsiQ2xvc2Ugd2luZG93In0iPiRUZXh0eyJDbG9zZSB3aW5kb3cifTwvYnV0dG9uPgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAkKCdhLkhpc3RvcnlCYWNrJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBoaXN0b3J5LmJhY2soKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKCiAgICAkKCdidXR0b24uQ2FuY2VsQ2xvc2VQb3B1cCcpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgaGlzdG9yeS5iYWNrKCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7CgovL11dPjwvc2NyaXB0Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFF1ZXN0aW9ucyAtLT4KCgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXQgLS0+CjxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT4kVGV4dHsiRWRpdCBRdWVzdGlvbiJ9OiAkVGV4dHsiJERhdGF7IlF1ZXN0aW9uIn0ifTwvaDE+CiAgICAgICAgPHA+CiAgICAgICAgICAgIDxhIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIiBocmVmPSIjIj4kVGV4dHsiQ2FuY2VsICYgY2xvc2Ugd2luZG93In08L2E+CiAgICAgICAgICAgICRUZXh0eyJvciJ9CiAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3VydmV5SUQ9JExRRGF0YXsiU3VydmV5SUQifSIgPiRUZXh0eyJnbyBiYWNrIHRvIHF1ZXN0aW9ucyJ9PC9hPgogICAgICAgIDwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b21NZWRpdW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPiRUZXh0eyJFZGl0IFF1ZXN0aW9uIn08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJTdXJ2ZXlRdWVzdGlvbiIgaWQ9IlN1cnZleVF1ZXN0aW9uIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iUXVlc3Rpb25TYXZlIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlF1ZXN0aW9uSUQiIHZhbHVlPSIkUURhdGF7IlF1ZXN0aW9uSUQifSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdXJ2ZXlJRCIgdmFsdWU9IiRRRGF0YXsiU3VydmV5SUQifSIgLz4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlF1ZXN0aW9uIiBjbGFzcz0iTWFuZGF0b3J5Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiUXVlc3Rpb24ifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNjAiIG5hbWU9IlF1ZXN0aW9uIiBpZD0iUXVlc3Rpb24iIHZhbHVlPSIkUURhdGF7IlF1ZXN0aW9uIn0iIGNsYXNzPSJWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IlF1ZXN0aW9uU2VydmVyRXJyb3IifSIgLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJRdWVzdGlvbkVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJRdWVzdGlvblNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkFuc3dlclJlcXVpcmVkIj4gJFRleHR7IkFuc3dlciByZXF1aXJlZCJ9OiZuYnNwOzwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICREYXRheyJBbnN3ZXJSZXF1aXJlZFNlbGVjdCJ9CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzID0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHZhbHVlPSIkVGV4dHsiU2F2ZSJ9Ij4kVGV4dHsiU2F2ZSJ9PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tTWVkaXVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiUG9zc2libGUgQW5zd2VycyBGb3IifTogJFRleHR7IiREYXRheyJUeXBlIn0ifTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0QWRkQW5zd2VyIC0tPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJBbnN3ZXJBZGQiIGlkPSJBbnN3ZXJBZGQiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBbnN3ZXJBZGQiIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUXVlc3Rpb25JRCIgdmFsdWU9IiRRRGF0YXsiUXVlc3Rpb25JRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1cnZleUlEIiB2YWx1ZT0iJFFEYXRheyJTdXJ2ZXlJRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQW5zd2VyIiBjbGFzcz0iTWFuZGF0b3J5Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiQWRkIEFuc3dlciJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iQW5zd2VyIiBuYW1lPSJBbnN3ZXIiIHNpemU9IjYwIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJBbnN3ZXJTZXJ2ZXJFcnJvciJ9ICIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHZhbHVlPSIkVGV4dHsiQWRkIn0iPiRUZXh0eyJBZGQifTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFuc3dlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4kVGV4dHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBbnN3ZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRBZGRBbnN3ZXIgLS0+Cgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRUYWJsZSAtLT4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4gJFRleHR7IkRlc2NyaXB0aW9uIn0gPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4gJFRleHR7IlVwIn0gPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4gJFRleHR7IkRvd24ifSA8L3RoPgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRUYWJsZURlbGV0ZSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4gJFRleHR7IkRlbGV0ZSJ9IDwvdGg+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFRhYmxlRGVsZXRlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5Pgo8IS0tIGR0bDpibG9jazpOb0Fuc3dlcnNTYXZlZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IiRRRGF0YXsiQ29sdW1ucyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4ifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6Tm9BbnN3ZXJzU2F2ZWQgLS0+Cgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRSYWRpbyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPUFuc3dlckVkaXQ7U3VydmV5SUQ9JFFEYXRheyJTdXJ2ZXlJRCJ9O1F1ZXN0aW9uSUQ9JFFEYXRheyJRdWVzdGlvbklEIn07QW5zd2VySUQ9JFFEYXRheyJBbnN3ZXJJRCJ9Ij4gJFFEYXRheyJBbnN3ZXIiLCI5MCJ9IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249QW5zd2VyVXA7U3VydmV5SUQ9JFFEYXRheyJTdXJ2ZXlJRCJ9O1F1ZXN0aW9uSUQ9JFFEYXRheyJRdWVzdGlvbklEIn07QW5zd2VySUQ9JFFEYXRheyJBbnN3ZXJJRCJ9IiBjbGFzcz0iQXJyb3dVcCRRRGF0YXsiQ2xhc3NVcCJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JFRleHR7IlVwIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1N1YmFjdGlvbj1BbnN3ZXJEb3duO1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtRdWVzdGlvbklEPSRRRGF0YXsiUXVlc3Rpb25JRCJ9O0Fuc3dlcklEPSRRRGF0YXsiQW5zd2VySUQifSIgY2xhc3M9IkFycm93RG93biRRRGF0YXsiQ2xhc3NEb3duIn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4kVGV4dHsiRG93biJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFJhZGlvRGVsZXRlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IiRFbnZ7IkFjdGlvbiJ9IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBbnN3ZXJEZWxldGUiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1cnZleUlEIiB2YWx1ZT0iJFFEYXRheyJTdXJ2ZXlJRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJRdWVzdGlvbklEIiB2YWx1ZT0iJFFEYXRheyJRdWVzdGlvbklEIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFuc3dlcklEIiB2YWx1ZT0iJFFEYXRheyJBbnN3ZXJJRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9IlRyYXNoQ2FuIiB2YWx1ZT0iJFRleHR7IkRlbGV0ZSJ9Ij4kVGV4dHsiRGVsZXRlIn08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRSYWRpb0RlbGV0ZSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0UmFkaW8gLS0+Cgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRDaGVja2JveCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPUFuc3dlckVkaXQ7U3VydmV5SUQ9JFFEYXRheyJTdXJ2ZXlJRCJ9O1F1ZXN0aW9uSUQ9JFFEYXRheyJRdWVzdGlvbklEIn07QW5zd2VySUQ9JFFEYXRheyJBbnN3ZXJJRCJ9Ij4kUURhdGF7IkFuc3dlciJ9PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1N1YmFjdGlvbj1BbnN3ZXJVcDtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifTtBbnN3ZXJJRD0kUURhdGF7IkFuc3dlcklEIn0iIGNsYXNzPSJBcnJvd1VwJFFEYXRheyJDbGFzc1VwIn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4kVGV4dHsiVXAifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPUFuc3dlckRvd247U3VydmV5SUQ9JFFEYXRheyJTdXJ2ZXlJRCJ9O1F1ZXN0aW9uSUQ9JFFEYXRheyJRdWVzdGlvbklEIn07QW5zd2VySUQ9JFFEYXRheyJBbnN3ZXJJRCJ9IiBjbGFzcz0iQXJyb3dEb3duJFFEYXRheyJDbGFzc0Rvd24ifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiRUZXh0eyJEb3duIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0Q2hlY2tib3hEZWxldGUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFuc3dlckRlbGV0ZSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VydmV5SUQiIHZhbHVlPSIkUURhdGF7IlN1cnZleUlEIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlF1ZXN0aW9uSUQiIHZhbHVlPSIkUURhdGF7IlF1ZXN0aW9uSUQifSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQW5zd2VySUQiIHZhbHVlPSIkUURhdGF7IkFuc3dlcklEIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiB2YWx1ZT0iJFRleHR7IkRlbGV0ZSJ9IiBjbGFzcz0iVHJhc2hDYW4iID4gJFRleHR7IkRlbGV0ZSJ9IDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdENoZWNrYm94RGVsZXRlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRDaGVja2JveCAtLT4KCjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFllc25vIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ICRUZXh0eyJZZXMifSA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9IiIgY2xhc3M9IkFycm93VXBEaXNhYmxlZCI+PHNwYW4+JFRleHR7IlVwIn08L3NwYW4+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iIiBjbGFzcz0iQXJyb3dEb3duRGlzYWJsZWQiPjxzcGFuPiRUZXh0eyJEb3duIn08L3NwYW4+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4gJFRleHR7Ik5vIn0gPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIiIGNsYXNzPSJBcnJvd1VwRGlzYWJsZWQiID48c3Bhbj4kVGV4dHsiVXAifTwvc3Bhbj48L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIiIGNsYXNzPSJBcnJvd0Rvd25EaXNhYmxlZCIgPjxzcGFuPiRUZXh0eyJEb3duIn08L3NwYW4+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFllc25vIC0tPgoKICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0VGFibGUgLS0+CgoKPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0VGV4dEFyZWEgLS0+CiAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiVGhpcyBkb2Vzbid0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLiJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0Pgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRUZXh0QXJlYSAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1cnZleUlEIiB2YWx1ZT0iJFFEYXRheyJTdXJ2ZXlJRCJ9IiAvPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9IlByaW1hcnkiIHZhbHVlPSIkVGV4dHsiR28gQmFjayJ9Ij4kVGV4dHsiR28gQmFjayJ9PC9idXR0b24+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXQgLS0+Cgo8IS0tIGR0bDpibG9jazpBbnN3ZXJFZGl0IC0tPgo8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IkFuc3dlckVkaXQiIGlkPSJBbnN3ZXJFZGl0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFuc3dlclNhdmUiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbnN3ZXJJRCIgdmFsdWU9IiRRRGF0YXsiQW5zd2VySUQifSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlF1ZXN0aW9uSUQiIHZhbHVlPSIkUURhdGF7IlF1ZXN0aW9uSUQifSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1cnZleUlEIiB2YWx1ZT0iJFFEYXRheyJTdXJ2ZXlJRCJ9IiAvPgogICAgPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgxPiRUZXh0eyJFZGl0IEFuc3dlciJ9OiAkUURhdGF7IkFuc3dlciJ9IDwvaDE+CiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9IiMiPiRUZXh0eyJDYW5jZWwgJiBjbG9zZSB3aW5kb3cifTwvYT4KICAgICAgICAgICAgICAgICRUZXh0eyJvciJ9CiAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1N1YmFjdGlvbj1RdWVzdGlvbkVkaXQ7UXVlc3Rpb25JRD0kTFFEYXRheyJRdWVzdGlvbklEIn07U3VydmV5SUQ9JExRRGF0YXsiU3VydmV5SUQifSI+JFRleHR7ImdvIGJhY2sgdG8gZWRpdCBxdWVzdGlvbiJ9PC9hPgogICAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AgU3BhY2luZ0JvdHRvbU1lZGl1bSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiRWRpdCBBbnN3ZXIifTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkFuc3dlciIgY2xhc3M9Ik1hbmRhdG9yeSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IkFuc3dlciJ9OjwvbGFiZWw+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNjAiIGlkPSJBbnN3ZXIiIG5hbWU9IkFuc3dlciIgdmFsdWU9IiRRRGF0YXsiQW5zd2VyIn0iIGNsYXNzPSJWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IkFuc3dlclNlcnZlckVycm9yIn0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBbnN3ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQW5zd2VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPiRUZXh0eyJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iUHJpbWFyeSIgdmFsdWU9IiRUZXh0eyJTYXZlIn0iPiRUZXh0eyJTYXZlIn08L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Zvcm0+CjwhLS0gZHRsOmJsb2NrOkFuc3dlckVkaXQgLS0+Cg==
IyAtLQojIFB1YmxpY1N1cnZleS5kdGwgLSBwcm92aWRlcyBIVE1MIGZvcm0gZm9yIFB1YmxpY1N1cnZleQojIENvcHlyaWdodCAoQykgMjAwMS0yMDEyIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy8KIyAtLQojICRJZDogUHVibGljU3VydmV5LmR0bCx2IDEuMzAgMjAxMi8xMS8yMyAxMzozNjoxOSBqaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5IC0tPgo8ZGl2IGNsYXNzPSJDb250ZW50IEFSSUFSb2xlTWFpbiIgaWQ9Ik1haW5Cb3giPgogICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICA8aDI+JFRleHR7IlN1cnZleSJ9OiAkUURhdGF7IlRpdGxlIn08L2gyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iU3VydmV5QmxvY2siPgogICAgICAgIDxkaXYgY2xhc3M9IlN1cnZleUJsb2NrSGVhZGVyIj4KICAgICAgICAgICAgJFRleHR7IkludHJvZHVjdGlvbiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICREYXRheyJJbnRyb2R1Y3Rpb24ifQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iUHVibGljU3VydmV5Vm90ZSIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJQdWJsaWNTdXJ2ZXlLZXkiIHZhbHVlPSIkUURhdGF7IlB1YmxpY1N1cnZleUtleSJ9IiAvPgogICAgICAgIDxmaWVsZHNldCBjbGFzcz0iU3VydmV5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3VydmV5QmxvY2tIZWFkZXIiPgogICAgICAgICAgICAgICAgJFRleHR7IlBsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zIn06CiAgICAgICAgICAgIDwvZGl2PgoKPCEtLSBkdGw6YmxvY2s6UHVibGljUXVlc3Rpb25zIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJRdWVzdGlvbkNvbnRhaW5lciI+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlclllc05vIC0tPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlF1ZXN0aW9uICRRRGF0YXsiQ2xhc3MifSI+ICRRRGF0YXsiUmVxdWlyZWRUZXh0In0kRGF0YXsiUXVlc3Rpb24ifSA8L2Rpdj4KICAgICAgICAgICAgICAgICREYXRheyJFcnJvclRleHQifQoKICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9IlB1YmxpY1N1cnZleVZvdGUxJFFEYXRheyJRdWVzdGlvbklEIn1ZZXMiIG5hbWU9IlB1YmxpY1N1cnZleVZvdGUxWyRRRGF0YXsiUXVlc3Rpb25JRCJ9XSIgdmFsdWU9IlllcyIgJFFEYXRheyJZZXNTZWxlY3RlZCJ9IC8+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9IkFuc3dlciIgZm9yPSJQdWJsaWNTdXJ2ZXlWb3RlMSRRRGF0YXsiUXVlc3Rpb25JRCJ9WWVzIj4kVGV4dHsiWWVzIn08L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9IlB1YmxpY1N1cnZleVZvdGUxJFFEYXRheyJRdWVzdGlvbklEIn1ObyIgbmFtZT0iUHVibGljU3VydmV5Vm90ZTFbJFFEYXRheyJRdWVzdGlvbklEIn1dIiB2YWx1ZT0iTm8iICAkUURhdGF7Ik5vU2VsZWN0ZWQifSAvPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJBbnN3ZXIiIGZvcj0iUHVibGljU3VydmV5Vm90ZTEkUURhdGF7IlF1ZXN0aW9uSUQifU5vIj4kVGV4dHsiTm8ifTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlclllc05vIC0tPgoKPCEtLSBkdGw6YmxvY2s6UHVibGljQW5zd2VyUmFkaW8gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJRdWVzdGlvbiAkUURhdGF7IkNsYXNzIn0iPiAkUURhdGF7IlJlcXVpcmVkVGV4dCJ9JERhdGF7IlF1ZXN0aW9uIn0gPC9kaXY+CiAgICAgICAgICAgICAgICAkRGF0YXsiRXJyb3JUZXh0In0KPCEtLSBkdGw6YmxvY2s6UHVibGljQW5zd2VyUmFkaW9iIC0tPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBpZD0iUHVibGljU3VydmV5Vm90ZTIkUURhdGF7IlF1ZXN0aW9uSUQifSRRRGF0YXsiQW5zd2VySUQifSIgbmFtZT0iUHVibGljU3VydmV5Vm90ZTJbJFFEYXRheyJRdWVzdGlvbklEIn1dIiB2YWx1ZT0iJFFEYXRheyJBbnN3ZXJJRCJ9IiAkUURhdGF7IkFuc3dlclNlbGVjdGVkIn0vPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJBbnN3ZXIiIGZvcj0iUHVibGljU3VydmV5Vm90ZTIkUURhdGF7IlF1ZXN0aW9uSUQifSRRRGF0YXsiQW5zd2VySUQifSI+JFFEYXRheyJBbnN3ZXIifTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlclJhZGlvYiAtLT4KPCEtLSBkdGw6YmxvY2s6UHVibGljQW5zd2VyUmFkaW8gLS0+Cgo8IS0tIGR0bDpibG9jazpQdWJsaWNBbnN3ZXJDaGVja2JveCAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlF1ZXN0aW9uICRRRGF0YXsiQ2xhc3MifSI+ICRRRGF0YXsiUmVxdWlyZWRUZXh0In0kRGF0YXsiUXVlc3Rpb24ifSA8L2Rpdj4KICAgICAgICAgICAgICAgICREYXRheyJFcnJvclRleHQifQo8IS0tIGR0bDpibG9jazpQdWJsaWNBbnN3ZXJDaGVja2JveGIgLS0+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJQdWJsaWNTdXJ2ZXlWb3RlMyRRRGF0YXsiQW5zd2VySUQifSIgbmFtZT0iUHVibGljU3VydmV5Vm90ZTNbJFFEYXRheyJBbnN3ZXJJRCJ9XSIgdmFsdWU9IlllcyIgJFFEYXRheyJBbnN3ZXJTZWxlY3RlZCJ9Lz4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iQW5zd2VyIiBmb3I9IlB1YmxpY1N1cnZleVZvdGUzJFFEYXRheyJBbnN3ZXJJRCJ9Ij4kUURhdGF7IkFuc3dlciJ9PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPCEtLSBkdGw6YmxvY2s6UHVibGljQW5zd2VyQ2hlY2tib3hiIC0tPgo8IS0tIGR0bDpibG9jazpQdWJsaWNBbnN3ZXJDaGVja2JveCAtLT4KCjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlclRleHRhcmVhIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUXVlc3Rpb24gJFFEYXRheyJDbGFzcyJ9Ij4gJFFEYXRheyJSZXF1aXJlZFRleHQifSREYXRheyJRdWVzdGlvbiJ9IDwvZGl2PgogICAgICAgICAgICAgICAgJERhdGF7IkVycm9yVGV4dCJ9CjwhLS0gZHRsOmJsb2NrOlJpY2hUZXh0LS0+CiAgICAgICAgICAgICAgICAkSW5jbHVkZXsiQ3VzdG9tZXJSaWNoVGV4dEVkaXRvciJ9CjwhLS0gZHRsOmJsb2NrOlJpY2hUZXh0LS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEFuc3dlciRRRGF0YXsiQW5zd2VySUQifSI+CiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHRpdGxlPSIkRGF0YXsiUXVlc3Rpb24ifSIgaWQ9IlJpY2hUZXh0JFFEYXRheyJRdWVzdGlvbklEIn0iIG5hbWU9IlB1YmxpY1N1cnZleVZvdGU0WyRRRGF0YXsiUXVlc3Rpb25JRCJ9XSIgY2xhc3M9IlJpY2hUZXh0IERvbnRQcmludCIgcm93cz0iMTUiIGNvbHM9IiRDb25maWd7IlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSJ9Ij4kRGF0YXsiVmFsdWUifTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6UHVibGljQW5zd2VyVGV4dGFyZWEgLS0+CiAgICAgICAgICAgIDwvZGl2Pgo8IS0tIGR0bDpibG9jazpQdWJsaWNRdWVzdGlvbnMgLS0+CiAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8ZGl2IGNsYXNzPSJBY3Rpb25Sb3ciIGlkPSJCb3R0b21BY3Rpb25Sb3ciPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSIkVGV4dHsiRmluaXNoIn0iPiAkVGV4dHsiRmluaXNoIn0gPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICA8L2Zvcm0+CjwvZGl2Pgo8IS0tIGR0bDpibG9jazpQdWJsaWNTdXJ2ZXkgLS0+Cgo8IS0tIGR0bDpibG9jazpQdWJsaWNTdXJ2ZXlNZXNzYWdlIC0tPgo8ZGl2IGlkPSJNYWluQm94IiBjbGFzcz0iVGlja2V0Q29tcG9zZSBBUklBUm9sZU1haW4iPgogICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICA8aDI+ICRUZXh0eyIkRGF0YXsiTWVzc2FnZVR5cGUifSJ9IDwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgIDxoND4gJFRleHR7IiREYXRheyJNZXNzYWdlSGVhZGVyIn0ifSA8L2g0PgogICAgICAgICAgICA8cCBjbGFzcz0iU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAkVGV4dHsiJERhdGF7Ik1lc3NhZ2UifSJ9CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTaG93QW5zd2Vyc0J1dHRvbiAtLT4KICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IiRFbnZ7IkFjdGlvbiJ9IiAvPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU2hvd1ZvdGVEYXRhIiAvPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUHVibGljU3VydmV5S2V5IiB2YWx1ZT0iJFFEYXRheyJQdWJsaWNTdXJ2ZXlLZXkifSIgLz4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiA+JFRleHR7IlNob3cgbXkgYW5zd2VycyJ9PC9idXR0b24+CiAgICAgICAgICAgIDwvZm9ybT4KPCEtLSBkdGw6YmxvY2s6U2hvd0Fuc3dlcnNCdXR0b24gLS0+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY1N1cnZleU1lc3NhZ2UgLS0+Cgo8IS0tIGR0bDpibG9jazpQdWJsaWNTdXJ2ZXlWb3RlRGF0YSAtLT4KPGRpdiBjbGFzcz0iQ29udGVudCBBUklBUm9sZU1haW4iIGlkPSJNYWluQm94Ij4KICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgPGgyPiRUZXh0eyJUaGVzZSBhcmUgeW91ciBhbnN3ZXJzIn06PC9oMj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iU3VydmV5QmxvY2siPgogICAgICAgIDxkaXYgY2xhc3M9IlN1cnZleUJsb2NrSGVhZGVyIj4KICAgICAgICAgICAgJFRleHR7IlN1cnZleSBUaXRsZSJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgIDxoMj4kVGV4dHsiU3VydmV5In06ICRRRGF0YXsiVGl0bGUifTwvaDI+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJTdXJ2ZXlCbG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0iU3VydmV5QmxvY2tIZWFkZXIiPgogICAgICAgICAgICAkVGV4dHsiSW50cm9kdWN0aW9uIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgJERhdGF7IkludHJvZHVjdGlvbiJ9CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8ZmllbGRzZXQgY2xhc3M9IlN1cnZleSI+CiAgICAgICAgPGRpdiBjbGFzcz0iU3VydmV5QmxvY2tIZWFkZXIiPgogICAgICAgICAgICAkVGV4dHsiVGhlc2UgYXJlIHlvdXIgYW5zd2VycyJ9OgogICAgICAgIDwvZGl2PgoKPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5Vm90ZVF1ZXN0aW9uIC0tPgogICAgICAgIDxkaXYgY2xhc3M9IlF1ZXN0aW9uQ29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iUXVlc3Rpb24gJFFEYXRheyJDbGFzcyJ9Ij4gJFFEYXRheyJSZXF1aXJlZFRleHQifSRRRGF0YXsiUXVlc3Rpb24ifTo8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5Vm90ZUFuc3dlciAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQW5zd2VyIj4KICAgICAgICAgICAgICAgICRRRGF0YXsiQW5zd2VyIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5Vm90ZUFuc3dlciAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDwvZGl2Pgo8IS0tIGR0bDpibG9jazpQdWJsaWNTdXJ2ZXlWb3RlUXVlc3Rpb24gLS0+CiAgICA8L2ZpZWxkc2V0Pgo8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5Vm90ZURhdGEgLS0+Cg==
IyAtLQojIEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbC5kdGwgLSBodG1sIGZvciBjaGFuZ2Ugb3ZlcnZpZXcgdGFibGUKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMiBPVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvCiMgLS0KIyAkSWQ6IEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbC5kdGwsdiAxLjcgMjAxMi8xMS8yMCAxOToxMjoyNSBtaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICBDb3JlLlVJLkFjdGlvblJvdy5Jbml0KCk7Ci8vXV0+PC9zY3JpcHQ+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgoKPGRpdiBpZD0iT3ZlcnZpZXdCb2R5IiBjbGFzcz0iT3ZlcnZpZXcgRml4ZWRIZWFkZXIiPgo8IS0tIGR0bDpibG9jazpOb0RhdGFGb3VuZE1zZyAtLT4KICAgIDxkaXYgaWQ9IkVtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAkVGV4dHsiTm8gZGF0YSBmb3VuZC4ifQogICAgPC9kaXY+CjwhLS0gZHRsOmJsb2NrOk5vRGF0YUZvdW5kTXNnIC0tPgoKICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0ibWF0cml4Ij4KICAgICAgICA8dGFibGUgaWQ9IkZpeGVkVGFibGUiIGNsYXNzPSJUYWJsZVNtYWxsIj4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgo8IS0tIGR0bDpibG9jazpSZWNvcmROdW1iZXJIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJOdW1iZXIgJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U29ydEJ5PU51bWJlcjtPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7IiRDb25maWd7IlN1cnZleTo6SG9vayJ9In08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTnVtYmVySGVhZGVyIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRUaXRsZUhlYWRlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlRpdGxlICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1UaXRsZTtPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7IlRpdGxlIn08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkVGl0bGVIZWFkZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZEludHJvZHVjdGlvbkhlYWRlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkludHJvZHVjdGlvbiAkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTb3J0Qnk9SW50cm9kdWN0aW9uO09yZGVyQnk9JExRRGF0YXsiT3JkZXJCeSJ9Ij4kVGV4dHsiSW50cm9kdWN0aW9uIn08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkSW50cm9kdWN0aW9uSGVhZGVyIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmREZXNjcmlwdGlvbkhlYWRlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkRlc2NyaXB0aW9uICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1EZXNjcmlwdGlvbjtPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7IkRlc2NyaXB0aW9uIn08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkRGVzY3JpcHRpb25IZWFkZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvblNlbmRlckhlYWRlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9Ik5vdGlmaWNhdGlvblNlbmRlciAkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTb3J0Qnk9Tm90aWZpY2F0aW9uU2VuZGVyO09yZGVyQnk9JExRRGF0YXsiT3JkZXJCeSJ9Ij4kVGV4dHsiTm90aWZpY2F0aW9uIFNlbmRlciJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvblNlbmRlckhlYWRlciAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTm90aWZpY2F0aW9uU3ViamVjdEhlYWRlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9Ik5vdGlmaWNhdGlvblN1YmplY3QgJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U29ydEJ5PU5vdGlmaWNhdGlvblN1YmplY3Q7T3JkZXJCeT0kTFFEYXRheyJPcmRlckJ5In0iPiRUZXh0eyJOb3RpZmljYXRpb24gU3ViamVjdCJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvblN1YmplY3RIZWFkZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvbkJvZHlIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJOb3RpZmljYXRpb25Cb2R5ICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1Ob3RpZmljYXRpb25Cb2R5O09yZGVyQnk9JExRRGF0YXsiT3JkZXJCeSJ9Ij4kVGV4dHsiTm90aWZpY2F0aW9uIEJvZHkifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgo8IS0tIGR0bDpibG9jazpSZWNvcmROb3RpZmljYXRpb25Cb2R5SGVhZGVyIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRTdGF0dXNIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJTdGF0dXMgJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U29ydEJ5PVN0YXR1cztPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7IlN0YXR1cyJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZFN0YXR1c0hlYWRlciAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkQ3JlYXRlVGltZUhlYWRlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNyZWF0ZVRpbWUgJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U29ydEJ5PUNyZWF0ZVRpbWU7T3JkZXJCeT0kTFFEYXRheyJPcmRlckJ5In0iPiRUZXh0eyJDcmVhdGVkIn08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkQ3JlYXRlVGltZUhlYWRlciAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkQ3JlYXRlQnlIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDcmVhdGVCeSAkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTb3J0Qnk9Q3JlYXRlQnk7T3JkZXJCeT0kTFFEYXRheyJPcmRlckJ5In0iPiRUZXh0eyJDcmVhdGVkIGJ5In08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkQ3JlYXRlQnlIZWFkZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENoYW5nZVRpbWVIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDaGFuZ2VUaW1lICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1DaGFuZ2VUaW1lO09yZGVyQnk9JExRRGF0YXsiT3JkZXJCeSJ9Ij4kVGV4dHsiQ2hhbmdlZCJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENoYW5nZVRpbWVIZWFkZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENoYW5nZUJ5SGVhZGVyIC0tPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlQnkgJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U29ydEJ5PUNoYW5nZUJ5O09yZGVyQnk9JExRRGF0YXsiT3JkZXJCeSJ9Ij4kVGV4dHsiQ2hhbmdlZCBCeSJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENoYW5nZUJ5SGVhZGVyIC0tPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgPHRib2R5Pgo8IS0tIGR0bDpibG9jazpSZWNvcmQgLS0+CiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Ik1hc3RlckFjdGlvbiI+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE51bWJlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE51bWJlckxpbmtTdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj1BZ2VudFN1cnZleVpvb207U3VydmV5SUQ9JExRRGF0YXsiU3VydmV5SUQifSIgdGl0bGU9IiRMUURhdGF7IlN1cnZleU51bWJlciJ9IiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE51bWJlckxpbmtTdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRRRGF0YXsiU3VydmV5TnVtYmVyIn0KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTnVtYmVyTGlua0VuZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgo8IS0tIGR0bDpibG9jazpSZWNvcmROdW1iZXJMaW5rRW5kIC0tPgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE51bWJlciAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkVGl0bGUgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSIkUURhdGF7IlRpdGxlIn0iPiRRRGF0YXsiVGl0bGUiLCI0MCJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkVGl0bGUgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZEludHJvZHVjdGlvbiAtLT4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IiRRRGF0YXsiSW50cm9kdWN0aW9uIn0iPiRRRGF0YXsiSW50cm9kdWN0aW9uIiwiNDAifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZEludHJvZHVjdGlvbiAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkRGVzY3JpcHRpb24gLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSIkUURhdGF7IkRlc2NyaXB0aW9uIn0iPiRRRGF0YXsiRGVzY3JpcHRpb24iLCI0MCJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkRGVzY3JpcHRpb24gLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvblNlbmRlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+JFFEYXRheyJOb3RpZmljYXRpb25TZW5kZXIifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvblNlbmRlciAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTm90aWZpY2F0aW9uU3ViamVjdCAtLT4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IiRRRGF0YXsiTm90aWZpY2F0aW9uU3ViamVjdCJ9Ij4kUURhdGF7Ik5vdGlmaWNhdGlvblN1YmplY3QiLCI0MCJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTm90aWZpY2F0aW9uU3ViamVjdCAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTm90aWZpY2F0aW9uQm9keSAtLT4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IiRRRGF0YXsiTm90aWZpY2F0aW9uQm9keSJ9Ij4kUURhdGF7Ik5vdGlmaWNhdGlvbkJvZHkiLCI0MCJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTm90aWZpY2F0aW9uQm9keSAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkU3RhdHVzIC0tPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4kVGV4dHsiJERhdGF7IlN0YXR1cyJ9In08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpSZWNvcmRTdGF0dXMgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENyZWF0ZVRpbWUgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiRUaW1lTG9uZ3siJFFEYXRheyJDcmVhdGVUaW1lIn0ifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENyZWF0ZVRpbWUgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENyZWF0ZUJ5IC0tPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4kUURhdGF7IkNyZWF0ZVVzZXJGaXJzdG5hbWUifSAkUURhdGF7IkNyZWF0ZVVzZXJMYXN0bmFtZSJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkQ3JlYXRlQnkgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENoYW5nZVRpbWUgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiRUaW1lTG9uZ3siJFFEYXRheyJDaGFuZ2VUaW1lIn0ifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENoYW5nZVRpbWUgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENoYW5nZUJ5IC0tPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4kUURhdGF7IkNoYW5nZVVzZXJGaXJzdG5hbWUifSAkUURhdGF7IkNoYW5nZVVzZXJMYXN0bmFtZSJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkQ2hhbmdlQnkgLS0+CiAgICAgICAgICAgICAgICA8L3RyPgo8IS0tIGR0bDpibG9jazpSZWNvcmQgLS0+CiAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZm9ybT4KPC9kaXY+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgIENvcmUuVUkuSW5pdFRhYmxlSGVhZCgkKCcjRml4ZWRUYWJsZSB0aGVhZCcpLCAkKCcjRml4ZWRUYWJsZSB0Ym9keScpKTsKICAgIENvcmUuVUkuU3RhdGljVGFibGVDb250cm9sKCQoJyNPdmVydmlld0NvbnRyb2wnKS5hZGQoJCgnI092ZXJ2aWV3Qm9keScpKSk7CiAgICAkKCcuTWFzdGVyQWN0aW9uJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAkKHRoaXMpLmZpbmQoJy5NYXN0ZXJBY3Rpb25MaW5rJykuYXR0cignaHJlZicpOwogICAgfSk7CiAgICAkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCkgewogICAgICAgIENvcmUuVUkuQWRqdXN0VGFibGVIZWFkKCQoJyNPdmVydmlld0hlYWRlciB0aGVhZCcpLCAkKCcjT3ZlcnZpZXdCb2R5IHRib2R5JykpOwogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo=
IyAtLQojIEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIuZHRsIC0gaHRtbCBmb3IgY2hhbmdlIG92ZXJ2aWV3IHRhYmxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTEgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyLmR0bCx2IDEuMyAyMDExLzA0LzEzIDEwOjQ0OjE1IG1iIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyIC0tPgo8ZGl2IGNsYXNzPSJPdmVydmlld0JveCBBUklBUm9sZU1haW4gJFFEYXRheyJWaWV3In0iPgogICAgPGgxPiRRRGF0YXsiVGl0bGVOYW1lIn06ICRRRGF0YXsiVGl0bGVWYWx1ZSJ9PC9oMT4KCiAgICAkRGF0YXsiRGF0YUluVGhlTWlkZGxlIn0KCiAgICA8ZGl2IGNsYXNzPSJPdmVydmlld0NvbnRyb2wiIGlkPSJPdmVydmlld0NvbnRyb2wiPgogICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRyb2xSb3ciPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhckZpbHRlciAtLT4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iVGFicyI+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbSAtLT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJBY3RpdmUgJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07JERhdGF7IkZpbHRlckxpbmsifUZpbHRlcj0kTFFEYXRheyJGaWx0ZXIifSI+JFRleHR7IiREYXRheyJOYW1lIn0ifTxzcGFuPiRRRGF0YXsiQ291bnQifTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWQgLS0+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbVNlbGVjdGVkTm90IC0tPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07JERhdGF7IkZpbHRlckxpbmsifUZpbHRlcj0kTFFEYXRheyJGaWx0ZXIifSI+JFRleHR7IiREYXRheyJOYW1lIn0ifTxzcGFuPiRRRGF0YXsiQ291bnQifTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWROb3QgLS0+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbVNwbGl0IC0tPgogICAgICAgICAgICAgICAgICAgIC0KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU3BsaXQgLS0+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbSAtLT4KICAgICAgICAgICAgICAgIDwvdWw+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyRmlsdGVyIC0tPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhclBhZ2VCYWNrIC0tPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJUYWJzIj4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJTdXJ2ZXlTZWFyY2giIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07JERhdGF7IkxpbmtCYWNrIn0iPiRUZXh0eyJDaGFuZ2Ugc2VhcmNoIG9wdGlvbnMifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KPCEtLWR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZS0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgICQoJyNTdXJ2ZXlTZWFyY2gnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgIENvcmUuQWdlbnQuU2VhcmNoLk9wZW5TZWFyY2hEaWFsb2coICdBZ2VudFN1cnZleVNlYXJjaCcsICckUURhdGF7IlByb2ZpbGUifScgKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KPCEtLWR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZS0tPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhclBhZ2VCYWNrIC0tPgoKPCEtLSBkdGw6YmxvY2s6Q29udGV4dFNldHRpbmdzIC0tPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJDb250ZXh0RnVuY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkNvbnRleHRTZXR0aW5ncyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJTaG93Q29udGV4dFNldHRpbmdzRGlhbG9nIiB0aXRsZT0iJFRleHR7IkNvbnRleHQgU2V0dGluZ3MifSI+PHNwYW4+JFRleHR7IkNvbnRleHQgU2V0dGluZ3MifTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29udGV4dFNldHRpbmdzRGlhbG9nQ29udGFpbmVyIiBjbGFzcz0iSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiIGlkPSJDb250ZXh0U2V0dGluZ3NEaWFsb2ciPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJBZ2VudFByZWZlcmVuY2VzIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlVwZGF0ZSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJHcm91cCIgdmFsdWU9IiRRRGF0YXsiR3JvdXAifSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJSZWRpcmVjdFVSTCIgdmFsdWU9IiRRRGF0YXsiUmVxdWVzdGVkVVJMIn0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iJFFEYXRheyJQcmVmZXJlbmNlc0tleSJ9Ij4kVGV4dHsiTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRGF0YXsiUGFnZVNob3duU3RyaW5nIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDwvZGl2PgoKPCEtLSBkdGw6anNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgLy8gYmluZCB0aGUgQ29udGV4dFNldHRpbmdzRGlhbG9nQ29udGFpbmVyCiAgICAkKCcjU2hvd0NvbnRleHRTZXR0aW5nc0RpYWxvZycpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coJCgnI0NvbnRleHRTZXR0aW5nc0RpYWxvZ0NvbnRhaW5lcicpLCAnJEpTVGV4dHsiU2V0dGluZ3MifScsICcyMCUnLCAnQ2VudGVyJywgdHJ1ZSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiAnJEpTVGV4dHsiU3VibWl0In0nLAogICAgICAgICAgICAgICAgICAgIFR5cGU6ICdTdWJtaXQnLAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAnUHJpbWFyeScKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgICk7CiAgICAgICAgRXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICBFdmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KPCEtLSBkdGw6anNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+CjwhLS0gZHRsOmJsb2NrOkNvbnRleHRTZXR0aW5ncyAtLT4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJBY3Rpb25Sb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iT3ZlcnZpZXdBY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAkRGF0YXsiQWN0aW9uUm93In0KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Ik92ZXJ2aWV3Wm9vbSI+Cgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhclZpZXdNb2RlIC0tPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhclZpZXdNb2RlU2VsZWN0ZWQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iQWN0aXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSIkUURhdGF7Ik5hbWUifSIgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtGaWx0ZXI9JExRRGF0YXsiRmlsdGVyIn07Vmlldz0kTFFEYXRheyJWaWV3In07JERhdGF7IkxpbmtGaWx0ZXIifSIgdGl0bGU9IiRUZXh0eyIkRGF0YXsiTmFtZSJ9In0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJJbWFnZU1vZGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTmFtZVNob3J0Ij4kVGV4dHsiJERhdGF7Ik5hbWVTaG9ydCJ9In08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJOYW1lTG9uZyI+JFRleHR7IiREYXRheyJOYW1lIn0ifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyVmlld01vZGVTZWxlY3RlZCAtLT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJWaWV3TW9kZU5vdFNlbGVjdGVkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iJFFEYXRheyJOYW1lIn0iIG5hbWU9Ik92ZXJ2aWV3Q29udHJvbCIgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtGaWx0ZXI9JExRRGF0YXsiRmlsdGVyIn07Vmlldz0kTFFEYXRheyJWaWV3In07JERhdGF7IkxpbmtGaWx0ZXIifSIgdGl0bGU9IiRUZXh0eyIkRGF0YXsiTmFtZSJ9In0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJJbWFnZU1vZGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTmFtZVNob3J0Ij4kVGV4dHsiJERhdGF7Ik5hbWVTaG9ydCJ9In08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJOYW1lTG9uZyI+JFRleHR7IiREYXRheyJOYW1lIn0ifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyVmlld01vZGVOb3RTZWxlY3RlZCAtLT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJWaWV3TW9kZSAtLT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJQYWdpbmF0aW9uIj4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJQYWdlTmF2QmFyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YXsiUmVzdWx0TG9uZyJ9CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRheyJTaXRlTmF2QmFyTG9uZyJ9CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyUGFnZU5hdkJhciAtLT4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXJMZWZ0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgojIHNvcnQgb3JkZXIgYmFyIGlmIG5lZWRlZAogICAgICAgICAgICAgICAgJERhdGF7IlNvcnRPcmRlckJhciJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhciAtLT4K
Ly8gLS0KLy8gU3VydmV5LkFnZW50LlN1cnZleVpvb20uanMgLSBwcm92aWRlcyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBTdXJ2ZXlab29tCi8vIENvcHlyaWdodCAoQykgMjAwMS0yMDExIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy9cbiI7Ci8vIC0tCi8vICRJZDogU3VydmV5LkFnZW50LlN1cnZleVpvb20uanMsdiAxLjMgMjAxMS8wMi8wMyAyMjo0NjoxNSBkeiBFeHAgJAovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgU3VydmV5ID0gU3VydmV5IHx8IHt9OwpTdXJ2ZXkuQWdlbnQgPSBTdXJ2ZXkuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBTdXJ2ZXkuQWdlbnQuU3VydmV5Wm9vbQogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBTdXJ2ZXlab29tLgogKi8KU3VydmV5LkFnZW50LlN1cnZleVpvb20gPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CiAgICAvKioKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9ICRJZnJhbWUgVGhlIGlmcmFtZSB3aGljaCBzaG91bGQgYmUgYXV0by1oZWlnaHRlZAogICAgICogQHJldHVybiBub3RoaW5nCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucwogICAgICovCiAgICBUYXJnZXROUy5JZnJhbWVBdXRvSGVpZ2h0ID0gZnVuY3Rpb24gKCRJZnJhbWUpIHsKICAgICAgICBpZiAoaXNKUXVlcnlPYmplY3QoJElmcmFtZSkpIHsKICAgICAgICAgICAgdmFyIE5ld0hlaWdodCA9ICRJZnJhbWUuY29udGVudHMoKS5oZWlnaHQoKTsKICAgICAgICAgICAgaWYgKCFOZXdIZWlnaHQgfHwgaXNOYU4oTmV3SGVpZ2h0KSkgewogICAgICAgICAgICAgICAgTmV3SGVpZ2h0ID0gQ29yZS5Db25maWcuR2V0KCdTdXJ2ZXkuSFRNTFJpY2hUZXh0SGVpZ2h0RGVmYXVsdCcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKE5ld0hlaWdodCA+IENvcmUuQ29uZmlnLkdldCgnU3VydmV5LkhUTUxSaWNoVGV4dEhlaWdodE1heCcpKSB7CiAgICAgICAgICAgICAgICAgICAgTmV3SGVpZ2h0ID0gQ29yZS5Db25maWcuR2V0KCdTdXJ2ZXkuSFRNTFJpY2hUZXh0SGVpZ2h0TWF4Jyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJElmcmFtZS5oZWlnaHQoTmV3SGVpZ2h0ICsgJ3B4Jyk7CiAgICAgICAgfQogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oU3VydmV5LkFnZW50LlN1cnZleVpvb20gfHwge30pKTsK
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEB2ZXJzaW9uICAgICAkUmV2aXNpb246IDEuOCAkCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRGVmYXVsdCBTZXR0aW5ncwogKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7CgovKioKICogQHN1YnNlY3Rpb24gU3VydmV5IEdyYXBoCiAqLwoKZmllbGRzZXQuU3VydmV5R3JhcGhzIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKfQoKZmllbGRzZXQuU3VydmV5R3JhcGhzIC5RdWVzdGlvbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgd2lkdGg6IDI1JTsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKfQoKZmllbGRzZXQuU3VydmV5R3JhcGhzIC5BbnN3ZXIgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBsaW5lLWhlaWdodDogMS4zZW07CiAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNGQUZBRkE7CiAgICB3aWR0aDogMjUlOwogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgpkaXYuU3VydmV5R3JhcGggewogICAgZmxvYXQ6IGxlZnQ7CiAgICB3aWR0aDogNTAlOwogICAgaGVpZ2h0OiAyMnB4OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogM3B4Owp9CgpkaXYuU3VydmV5R3JhcGhDb250YWluZXIgewogICAgd2lkdGg6IDk1JTsKICAgIGhlaWdodDogMjJweDsKfQoKZGl2LlN1cnZleUdyYXBoQmFyIHsKICAgIGhlaWdodDogMjJweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGMkIxM0U7Cn0KCnAuU3VydmV5R3JhcGhMZXllbmQgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBsaW5lLWhlaWdodDogMS4zZW07CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI0ZBRkFGQTsKICAgIHdpZHRoOiAxMCU7CiAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICBoZWlnaHQ6IDIycHg7Cn0KCi5TdWJMYWJlbCB7CiAgICB3aWR0aDogMzUlOwogICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICBmbG9hdDogbGVmdDsKICAgIGRpc3BsYXk6IGJsb2NrOwp9CgouU3ViRmllbGQgewogICAgbWFyZ2luLWxlZnQ6IDM1JTsKICAgIGRpc3BsYXk6IGJsb2NrOwp9CgphLkFycm93VXAsCmEuQXJyb3dVcERpc2FibGVkLAphLkFycm93RG93biwKYS5BcnJvd0Rvd25EaXNhYmxlZCB7CiAgICBoZWlnaHQ6IDE2cHg7CiAgICB3aWR0aDogMTZweDsKICAgIHBhZGRpbmc6IDFweDsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAxcHg7CiAgICBib3JkZXItc3R5bGU6IG5vbmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgphLkFycm93VXA6YWN0aXZlLAphLkFycm93RG93bjphY3RpdmUgewogICAgbWFyZ2luLXRvcDogMXB4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKYS5BcnJvd1VwRGlzYWJsZWQ6YWN0aXZlLAphLkFycm93RG93bkRpc2FibGVkOmFjdGl2ZSB7CiAgICBtYXJnaW4tdG9wOiAwcHg7CiAgICBtYXJnaW4tYm90dG9tOiAxcHg7Cn0KCmEuQXJyb3dVcCB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ljb25zL3N1cnZleV9hcnJvd191cC5wbmcpOwp9CgphLkFycm93VXBEaXNhYmxlZCB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ljb25zL3N1cnZleV9hcnJvd191cF9kaXNhYmxlZC5wbmcpOwogICAgY3Vyc29yOiBkZWZhdWx0Owp9CgphLkFycm93RG93biB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ljb25zL3N1cnZleV9hcnJvd19kb3duLnBuZykgbm8tcmVwZWF0IDAgMDsKfQoKYS5BcnJvd0Rvd25EaXNhYmxlZCB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ljb25zL3N1cnZleV9hcnJvd19kb3duX2Rpc2FibGVkLnBuZyk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7Cn0KCmEuQXJyb3dVcCBzcGFuLAphLkFycm93VXBEaXNhYmxlZCBzcGFuLAphLkFycm93RG93biBzcGFuLAphLkFycm93RG93bkRpc2FibGVkIHNwYW4sCmEuU2VlRGV0YWlscyBzcGFuIHsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBkaXNwbGF5OiBub25lOwp9CgphLlNlZURldGFpbHMgewogICAgaGVpZ2h0OiAxNXB4OwogICAgd2lkdGg6IDE1cHg7CiAgICBwYWRkaW5nOiAxcHg7CiAgICBtYXJnaW4tdG9wOiAwOwogICAgbWFyZ2luLWJvdHRvbTogMXB4OwogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvaWNvbnMvc3VydmV5X3NlZV9kZXRhaWxzLnBuZyk7Cn0KCmxhYmVsLlRleHRhcmVhLApkaXYuVGV4dGFyZWEgewogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIG1hcmdpbi10b3A6IDEwcHg7Cn0KCi5GaWVsZCB1bCBsaXsKICAgIG1hcmdpbi1sZWZ0OiAzMHB4OwogICAgbGlzdC1zdHlsZTogZGlzYzsKfQoKLkZpZWxkIG9sIGxpewogICAgbWFyZ2luLWxlZnQ6IDMwcHg7CiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsOwp9Cn0=
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEB2ZXJzaW9uICAgICAkUmV2aXNpb246IDEuMSAkCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqIEBjc3MtZm9yICAgICBJRTcKICovCgovKioKICogQHBhY2thZ2UgICAgIFNraW4gIkRlZmF1bHQiCiAqIEBzZWN0aW9uICAgICBBZ2VudAogKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7Cgpmb3JtLkFjdGlvbkZvcm0gewogICAgbWFyZ2luLXRvcDogNHB4Owp9CgpkaXYuRmllbGQgewogICBtYXJnaW4tdG9wOiA0cHg7Cn0KCn0gLyogZW5kIEBtZWRpYSAqLw==
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEN1c3RvbWVyIEZyb250ZW5kCiAqIEB2ZXJzaW9uICAgICAkUmV2aXNpb246IDEuNyAkCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTdXJ2ZXkgLSBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgQ3VzdG9tZXIKICovCgpkaXYuU3VydmV5QmxvY2sgewogICAgbWFyZ2luOiA4cHggMCAxM3B4OwogICAgcGFkZGluZy1ib3R0b206IDVweDsKICAgIGJhY2tncm91bmQ6ICNGOEY5Rjk7CiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgI0ZGRiwgI0Y4RjlGOSk7CiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKCNGRkYpLCB0bygjRjhGOUY5KSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjRUFFRUVFOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgIHdpZHRoOiA3MzhweDsKfQoKLlN1cnZleUJsb2NrSGVhZGVyIHsKICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjRjlGOUY5LCAjRUNFRUVFKSByZXBlYXQgc2Nyb2xsIDAgMCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDOwogICAgY29sb3I6ICMzMzMzMzM7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiA0cHggOXB4IDNweCA5cHg7CiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjRkZGRkZGOwp9CgpmaWVsZHNldC5TdXJ2ZXkgewogICAgd2lkdGg6IDczOHB4Owp9CgpkaXYuQWN0aW9uUm93IHsKICAgIHdpZHRoOiA3MjBweDsKfQoKZGl2LkludHJvIC5Db250ZW50ewogICAgYm9yZGVyLXRvcDogMDsKfQoKZGl2LlF1ZXN0aW9uewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDOUM5Qzk7CiAgICBjb2xvcjogIzkyOTI5MjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIG1hcmdpbi1sZWZ0OiA0MHB4OwogICAgbWFyZ2luLXRvcDogMTVweDsKICAgIHdpZHRoOiA1MjBweDsKICAgIHBhZGRpbmc6IDRweCA5cHggM3B4IDlweDsKICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNFQ0VFRUU7CiAgICBmb250LXdlaWdodDogYm9sZDsKICAgIGRpc3BsYXk6IGJsb2NrOwp9CmRpdi5NYW5kYXRvcnkgewogICAgY29sb3I6IGJsYWNrOwp9CgoKZGl2LkVycm9yIHsKICAgIGNvbG9yOiAjZmY1MDVlICFpbXBvcnRhbnQ7Cn0KCmRpdi5Ub29sdGlwRXJyb3J7CiAgICBtYXJnaW46IC0xMHB4IDAgMHB4IDc1cHg7Cn0KZGl2LlRvb2x0aXBFcnJvciBkaXY6Zmlyc3QtY2hpbGQgewogICAgYm9yZGVyLXRvcDogMHB4ICFpbXBvcnRhbnQ7Cn0KZGl2LlRvbmd1ZSB7CiAgICBib3JkZXI6IDBweDsKICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50Owp9CgpsYWJlbC5BbnN3ZXIgewogICAgYmFja2dyb3VuZDpub25lOwogICAgYm9yZGVyOiBub25lOwogICAgd2lkdGg6IDM2NXB4OwogICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgIG1hcmdpbi10b3A6IDNweDsKICAgIHRleHQtYWxpZ246bGVmdDsKfQoKZmllbGRzZXQgaW5wdXQsCmRpdi5BbnN3ZXIgewogICAgZmxvYXQ6bGVmdDsKfQoKZmllbGRzZXQgaW5wdXQsCmZpZWxkc2V0IHRleHRhcmVhLApkaXYuQW5zd2VyIHsKICAgIG1hcmdpbjogN3B4IDAgN3B4IDc1cHg7Cn0KCi5SaWNoVGV4dEFuc3dlciB7CiAgICBtYXJnaW46IDdweCAwIDdweCA3NXB4Owp9CgpkaXYuQW5zd2VyIHsKICAgIHBhZGRpbmc6MHB4Owp9CgouU3VydmV5QnV0dG9uIHsKICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjVweDsKICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo1cHg7CiAgICAtbW96LWJveC1zaGFkb3c6MCAwIDNweCAjRjZGOUY5OwogICAgYm9yZGVyLWNvbG9yOi1tb3otdXNlLXRleHQtY29sb3IgI0Q2RDZENiAjRDZENkQ2OwogICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjRDZENkQ2OwogICAgYm9yZGVyLXN0eWxlOm5vbmUgc29saWQgc29saWQ7CiAgICBib3JkZXItd2lkdGg6bWVkaXVtIDFweCAxcHg7CiAgICBib3R0b206LTIycHg7CiAgICBjb2xvcjojOTk5OTk5OwogICAgZGlzcGxheTpub25lOwogICAgaGVpZ2h0OjEwcHg7CiAgICBtYXJnaW46MCAxM3B4OwogICAgcGFkZGluZzo0cHggOHB4IDdweCAyNHB4OwogICAgcG9zaXRpb246YWJzb2x1dGU7Cn0K
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEN1c3RvbWVyIEZyb250ZW5kCiAqIEB2ZXJzaW9uICAgICAkUmV2aXNpb246IDEuMSAkCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTdXJ2ZXkgLSBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgQ3VzdG9tZXIKICovCgpsYWJlbC5BbnN3ZXIgewogICAgcGFkZGluZy10b3A6IDVweDsKfQoKZGl2LlF1ZXN0aW9uQ29udGFpbmVyIHsKICAgIG1hcmdpbi1sZWZ0OiA0MHB4Owp9Cg==
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
IyAtLQojIFN1cnZleS5wbSAtIGNvZGUgdG8gZXhjZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTIgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBTdXJ2ZXkucG0sdiAxLjQgMjAxMi8xMS8yMSAxMDo1OTo1NCBqaCBFeHAgJAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSB2YXI6OnBhY2thZ2VzZXR1cDo6U3VydmV5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHZhcnMgcXcoQElTQSAkVkVSU0lPTik7CiRWRVJTSU9OID0gcXcoJFJldmlzaW9uOiAxLjQgJCkgWzFdOwoKPWhlYWQxIE5BTUUKClN1cnZleS5wbSAtIGNvZGUgdG8gZXhjZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBmdW5jdGlvbnMKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpYTUw7CiAgICB1c2UgdmFyOjpwYWNrYWdlc2V0dXA6OlN1cnZleTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ICAgID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRNYWluT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06Ok1haW4tPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkVGltZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJERCT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkRCLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRYTUxPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6WE1MLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICApOwogICAgbXkgJENvZGVPYmplY3QgPSB2YXI6OnBhY2thZ2VzZXR1cDo6U3VydmV5LT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIFRpbWVPYmplY3QgICA9PiAkVGltZU9iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIFhNTE9iamVjdCAgICA9PiAkWE1MT2JqZWN0LAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKAogICAgICAgIHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgRW5jb2RlT2JqZWN0IE1haW5PYmplY3QgVGltZU9iamVjdCBEQk9iamVjdCBYTUxPYmplY3QpCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlUmVpbnN0YWxsKCkKCnJ1biB0aGUgY29kZSByZWluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVJlaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVSZWluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVW5pbnN0YWxsKCkKCnJ1biB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMF85MigpCgpUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgaWYgdGhlIGluc3RhbGxlZCBtb2R1bGUgdmVyc2lvbiBpcyBzbWFsbGVyIHRoYW4gMi4wLjkyLgoKbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fMl8wXzkyKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMF85MiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgU0VMRUNUIGFsbCBmdW5jdGlvbmFsaXR5IHZhbHVlcwogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIHNlbmRfdGltZSBGUk9NIHN1cnZleV9yZXF1ZXN0JywKICAgICk7CgogICAgbXkgQExpc3Q7CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG5leHQgUk9XIGlmICEkUm93WzFdOwoKICAgICAgICBwdXNoIEBMaXN0LCBcQFJvdzsKICAgIH0KCiAgICAjIHNhdmUgZW50cmllcyBpbiBuZXcgdGFibGUKICAgIGZvciBteSAkRW50cnkgKEBMaXN0KSB7CiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgICAgICBTUUwgPT4KICAgICAgICAgICAgICAgICdVUERBVEUgc3VydmV5X3JlcXVlc3QgU0VUIGNyZWF0ZV90aW1lID0gPyBXSEVSRSAgaWQgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkRW50cnktPlsxXSwgXCRFbnRyeS0+WzBdIF0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMV81KCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiAyLjEuNS4KCm15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMV81KCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMV81IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBzZXQgYWxsIHN1cnZleV9xdWVzdGlvbiByZWNvcmRzCiAgICAjIHRoYXQgZG9uJ3QgaGF2ZSBhbnN3ZXJfcmVxdWlyZWQgc2V0IHRvIHNvbWV0aGluZwogICAgIyB0byAwCiAgICAkU2VsZi0+X1ByZWZpbGxfQW5zd2VyUmVxdWlyZWRGcm9tU3VydmV5UXVlc3Rpb25fMl8xXzUoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX1ByZWZpbGxfQW5zd2VyUmVxdWlyZWRGcm9tU3VydmV5UXVlc3Rpb25fMl8xXzUoKQoKSW5zZXJ0cyAwIGludG8gYWxsIGFuc3dlcl9yZXF1aXJlZCByZWNvcmRzIG9mIHRhYmxlIHN1dmV5X3F1ZXN0aW9uCndoZXJlIHRoZXJlIGlzIG5vIGVudHJ5IHByZXNlbnQuCgogICAgbXkgJFN1Y2Nlc3MgPSAkUGFja2FnZVNldHVwLT5fUHJlZmlsbF9BbnN3ZXJSZXF1aXJlZEZyb21TdXJ2ZXlRdWVzdGlvbl8yXzFfNSgpOwoKPWN1dAoKc3ViIF9QcmVmaWxsX0Fuc3dlclJlcXVpcmVkRnJvbVN1cnZleVF1ZXN0aW9uXzJfMV81IHsKICAgIG15ICgkU2VsZikgPSBAXzsKCiAgICByZXR1cm4gaWYgISRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkLCBhbnN3ZXJfcmVxdWlyZWQgJwogICAgICAgICAgICAuICdGUk9NIHN1cnZleV9xdWVzdGlvbicsCiAgICAgICAgTGltaXQgPT4gMCwKICAgICk7CiAgICBteSBASWRzVG9VcGRhdGU7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICAjIGlmIHdlIGhhZCBhbiBpZAogICAgICAgICMgYnV0IG5vIGFuc3dlcl9yZXF1aXJlZCBvciBhbnN3ZXJfcmVxdWlyZWQgaXNuJ3QgMCBvciAxCiAgICAgICAgIyBjb2xsZWN0IHRoZSBJRCBpbiBASWRzVG9VcGRhdGUKICAgICAgICBpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFJvd1swXQogICAgICAgICAgICAmJiBsZW5ndGggJFJvd1swXQogICAgICAgICAgICAmJiAoCiAgICAgICAgICAgICAgICAhZGVmaW5lZCAkUm93WzFdCiAgICAgICAgICAgICAgICB8fCAoICRSb3dbMV0gbmUgJzAnICYmICRSb3dbMV0gbmUgJzEnICkKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBwdXNoIEBJZHNUb1VwZGF0ZSwgJFJvd1swXTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRRdWVzdGlvbklEIChASWRzVG9VcGRhdGUpIHsKICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgIFNRTCA9PgogICAgICAgICAgICAgICAgJ1VQREFURSBzdXJ2ZXlfcXVlc3Rpb24gU0VUIGFuc3dlcl9yZXF1aXJlZCA9IDAgV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgICAgICBcJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIF0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBTb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC50eHQuCgo9Y3V0Cgo9aGVhZDEgVkVSU0lPTgoKJFJldmlzaW9uOiAxLjQgJCAkRGF0ZTogMjAxMi8xMS8yMSAxMDo1OTo1NCAkCgo9Y3V0Cg==
IyAtLQojIGNyb24vc3VydmV5X3RyaWdnZXJfc2VuZF9yZXF1ZXN0cyAtIHNlbmQgZGVsYXllZCBzdXJ2ZXkgcmVxdWVzdHMKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMSBPVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvCiMgLS0KIyAkSWQ6IHN1cnZleV90cmlnZ2VyX3NlbmRfcmVxdWVzdHMuZGlzdCx2IDEuMiAyMDExLzEyLzE1IDE2OjMwOjExIGpoIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgojIC0tCgojIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB3aXRoIHRoZSBleHRlbnN0aW9uICcuZGlzdCcuCiMgUGxlYXNlIHJlbW92ZSB0aGUgZXh0ZW5zaW9uIGFuZCB1bmNvbW1lbnQgdGhlIGxhc3QgbGluZSBmb3IgcHJvZHVjdGlvbi4KCiMgZXZlcnkgMjAgbWluCiMqLzIwICogKiAqICogJEhPTUUvYmluL290cnMuU3VydmV5VHJpZ2dlclNlbmRSZXF1ZXN0cy5wbCAtZSA+PiAvZGV2L251bGw=
IyEvdXNyL2Jpbi9wZXJsIC13CiMgLS0KIyBiaW4vb3Rycy5TdXJ2ZXlUcmlnZ2VyU2VuZFJlcXVlc3RzLnBsIC0gdHJpZ2dlciBzZW5kaW5nIGRlbGF5ZWQgc3VydmV5IHJlcXVlc3RzCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwojIC0tCiMgJElkOiBvdHJzLlN1cnZleVRyaWdnZXJTZW5kUmVxdWVzdHMucGwsdiAxLjUgMjAxMy8wNi8yNSAxMTo0Mzo0MCBqaCBFeHAgJAojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBRkZFUk8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgojIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIwojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxIFVTQQojIG9yIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgdXNlIC4uLyBhcyBsaWIgbG9jYXRpb24KdXNlIEZpbGU6OkJhc2VuYW1lOwp1c2UgRmluZEJpbiBxdygkUmVhbEJpbik7CnVzZSBsaWIgZGlybmFtZSgkUmVhbEJpbik7CnVzZSBsaWIgZGlybmFtZSgkUmVhbEJpbikgLiAiL0tlcm5lbC9jcGFuLWxpYiI7Cgp1c2UgdmFycyBxdygkVkVSU0lPTik7CiRWRVJTSU9OID0gcXcoJFJldmlzaW9uOiAxLjUgJCkgWzFdOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaW1lOwp1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpNYWluOwp1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN0YXRlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVc2VyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN1cnZleTsKdXNlIEdldG9wdDo6U3RkOwoKbXkgJW9wdHM7CmdldG9wdHMoICdhZmhkZXYnLCBcJW9wdHMgKTsKCm15ICRPcHRzQ291bnQgPSBzY2FsYXIoIGtleXMgJW9wdHMgKTsKCmlmICgKICAgICRvcHRze2h9CiAgICB8fCAoICRPcHRzQ291bnQgPCAxICkKICAgIHx8ICggJG9wdHN7dn0gJiYgJE9wdHNDb3VudCAhPSAyICkKICAgICkKewogICAgcHJpbnQgU1RERVJSICJVc2FnZTogYmluLyQwIFstaF0gWy1kXSBbLWVdXG4iOwogICAgcHJpbnQgU1RERVJSICIkMCA8UmV2aXNpb24gJFZFUlNJT04+XG4iOwogICAgcHJpbnQgU1RERVJSICJUcmlnZ2VyIHNlbmRpbmcgZGVsYXllZCBzdXJ2ZXkgcmVxdWVzdHMuXG4iOwogICAgcHJpbnQgU1RERVJSICJVc2FnZTogJDAgLWggKERpc3BsYXkgdGhpcyBoZWxwIHRleHQpXG4iOwogICAgcHJpbnQgU1RERVJSICJVc2FnZTogJDAgLWQgKERvIGEgZHJ5IHJ1biwgaW1wbGllcyAtdilcbiI7CiAgICBwcmludCBTVERFUlIgIlVzYWdlOiAkMCAtZSAoRG8gYSByZWFsIHJ1bilcbiI7CiAgICBwcmludCBTVERFUlIgIlVzYWdlOiAkMCAtdiAoQmUgbW9yZSB2ZXJib3NlKVxuIjsKICAgIHByaW50IFNUREVSUiAiQ29uZmlndXJhdGlvbiBpcyBkb25lIHVzaW5nIFN5c0NvbmZpZyAoU3VydmV5LT5Db3JlKVxuIjsKICAgIHByaW50IFNUREVSUiAiU2hvcnQgZXhwbGFuYXRpb246XG4iOwogICAgcHJpbnQgU1RERVJSICIxLiBHbyB0byB5b3VyIFN5c0NvbmZpZyBhbmRcbiI7CiAgICBwcmludCBTVERFUlIgIiAgIC0gY29uZmlndXJlLCBTdXJ2ZXk6OlNlbmRJbkhvdXJzQWZ0ZXJDbG9zZSB0byBhIGhpZ2hlciB2YWx1ZSB0aGFuIDBcbiI7CiAgICBwcmludCBTVERFUlIgIjIuIENyZWF0ZSBhIHN1cnZleSwgbWFrZSBpdCBtYXN0ZXJcbiI7CiAgICBwcmludCBTVERFUlIgIjMuIENyZWF0ZSBhIHRpY2tldCwgY2xvc2UgaXRcbiI7CiAgICBwcmludCBTVERFUlIgIjQuIFdhaXQgdGhlIG5lY2Vzc2FyeSBhbW91bnQgb2YgaG91cnMgeW91J3ZlIGNvbmZpZ3VyZWRcbiI7CiAgICBwcmludCBTVERFUlIgIjUuIFlvdSBjYW4gZG8gYSBkcnkgcnVuIHRvIGdldCBhIGxpc3Qgb2Ygc3VydmV5cyB0aGF0IHdvdWxkIGJlIHNlbnQgKC1kKVxuIjsKICAgIHByaW50IFNUREVSUiAiNi4gSWYgeW91J3JlIGZpbmUgd2l0aCBpdCwgYWN0aXZhdGUgdmFyL2Nyb24vZ2VuZXJpY19hZ2VudF9zdXJ2ZXkuZGlzdFxuIjsKICAgIHByaW50IFNUREVSUiAiQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tL1xuIjsKICAgIGV4aXQ7Cn0KCiMgYSBkcnkgcnVuIGltcGxpZXMgdmVyYm9zaXR5CmlmICggJG9wdHN7ZH0gKSB7CiAgICAkb3B0c3t2fSA9IDE7Cn0KCiMgY29tbW9uIG9iamVjdHMKbXkgJUNvbW1vbk9iamVjdCA9ICgpOwokQ29tbW9uT2JqZWN0e0NvbmZpZ09iamVjdH0gPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiRDb21tb25PYmplY3R7RW5jb2RlT2JqZWN0fSA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldyglQ29tbW9uT2JqZWN0KTsKJENvbW1vbk9iamVjdHtMb2dPYmplY3R9ICAgID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgTG9nUHJlZml4ID0+ICdPVFJTLW90cnMuU3VydmV5VHJpZ2dlclNlbmRSZXF1ZXN0JywKICAgICVDb21tb25PYmplY3QsCik7CiRDb21tb25PYmplY3R7VGltZU9iamVjdH0gICAgICA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoJUNvbW1vbk9iamVjdCk7CiRDb21tb25PYmplY3R7TWFpbk9iamVjdH0gICAgICA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoJUNvbW1vbk9iamVjdCk7CiRDb21tb25PYmplY3R7REJPYmplY3R9ICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpEQi0+bmV3KCVDb21tb25PYmplY3QpOwokQ29tbW9uT2JqZWN0e1N5c0NvbmZpZ09iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnLT5uZXcoJUNvbW1vbk9iamVjdCk7CiRDb21tb25PYmplY3R7VGlja2V0T2JqZWN0fSAgICA9IEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQtPm5ldyglQ29tbW9uT2JqZWN0KTsKJENvbW1vbk9iamVjdHtVc2VyT2JqZWN0fSAgICAgID0gS2VybmVsOjpTeXN0ZW06OlVzZXItPm5ldyglQ29tbW9uT2JqZWN0KTsKJENvbW1vbk9iamVjdHtTdGF0ZU9iamVjdH0gICAgID0gS2VybmVsOjpTeXN0ZW06OlN0YXRlLT5uZXcoJUNvbW1vbk9iamVjdCk7CiRDb21tb25PYmplY3R7U3VydmV5T2JqZWN0fSAgICA9IEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXktPm5ldyglQ29tbW9uT2JqZWN0KTsKCm15ICRTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UgPSAkQ29tbW9uT2JqZWN0e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UnKTsKaWYgKCAhJFNlbmRJbkhvdXJzQWZ0ZXJDbG9zZSApIHsKICAgIGlmICggJG9wdHN7dn0gKSB7CiAgICAgICAgcHJpbnQgIk5vIGRheXMgY29uZmlndXJlZCBpbiBTdXJ2ZXk6OlNlbmRJbkhvdXJzQWZ0ZXJDbG9zZS5cbiI7CiAgICB9CiAgICBleGl0IDE7Cn0KCiMgRmluZCBzdXJ2ZXlfcmVxdWVzdHMgdGhhdCBoYXZlbid0IGJlZW4gc2VudCB5ZXQKJENvbW1vbk9iamVjdHtEQk9iamVjdH0tPlByZXBhcmUoCiAgICBTUUwgPT4gIlNFTEVDVCBpZCwgdGlja2V0X2lkLCBjcmVhdGVfdGltZSwgcHVibGljX3N1cnZleV9rZXkgRlJPTSBzdXJ2ZXlfcmVxdWVzdCBXSEVSRSAiCiAgICAgICAgLiAic2VuZF90aW1lIElTIE5VTEwgT1JERVIgQlkgY3JlYXRlX3RpbWUgREVTQyIsCik7CgojIGZldGNoIHRoZSByZXN1bHQKbXkgQFJvd3M7CndoaWxlICggbXkgQFJvdyA9ICRDb21tb25PYmplY3R7REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICBwdXNoIEBSb3dzLCB7CiAgICAgICAgSUQgICAgICAgICAgICAgID0+ICRSb3dbMF0sCiAgICAgICAgVGlja2V0SUQgICAgICAgID0+ICRSb3dbMV0sCiAgICAgICAgQ3JlYXRlVGltZSAgICAgID0+ICRSb3dbMl0sCiAgICAgICAgUHVibGljU3VydmV5S2V5ID0+ICRSb3dbM10sCiAgICB9Owp9CgojIEdldCBTeXN0ZW1UaW1lIGluIFVuaXhUaW1lCm15ICROb3cgPSAkQ29tbW9uT2JqZWN0e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCk7CgpTVVJWRVlSRVFVRVNUOgpmb3IgbXkgJExpbmUgKEBSb3dzKSB7CiAgICBmb3IgbXkgJFZhbCAocXcoSUQgVGlja2V0SUQgQ3JlYXRlVGltZSkpIHsKICAgICAgICBpZiAoICEkTGluZS0+eyRWYWx9ICkgewogICAgICAgICAgICBpZiAoICRvcHRze3Z9ICkgewogICAgICAgICAgICAgICAgcHJpbnQgIiRWYWwgbWlzc2luZyBpbiBzZXJ2aWNlX3JlcXVlc3Qgcm93LlxuIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXh0IFNVUlZFWVJFUVVFU1Q7CiAgICAgICAgfQogICAgfQoKICAgICMgQ29udmVydCBjcmVhdGVfdGltZSB0byB1bml4dGltZQogICAgbXkgJENyZWF0ZVRpbWUKICAgICAgICA9ICRDb21tb25PYmplY3R7VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJExpbmUtPntDcmVhdGVUaW1lfSApOwoKICAgICMgZG9uJ3Qgc2VuZCBmb3Igc3VydmV5X3JlcXVlc3RzIHRoYXQgYXJlIHlvdW5nZXIgdGhhbiBDcmVhdGVUaW1lICsgJFNlbmRJTkhvdXJzQWZ0ZXJDbG9zZQogICAgaWYgKCAkU2VuZEluSG91cnNBZnRlckNsb3NlICogMzYwMCArICRDcmVhdGVUaW1lID4gJE5vdyApIHsKICAgICAgICBpZiAoICRvcHRze3Z9ICkgewogICAgICAgICAgICBwcmludAogICAgICAgICAgICAgICAgIkRpZCBub3Qgc2VuZCBmb3Igc3VydmV5X3JlcXVlc3Qgd2l0aCBpZCAkTGluZS0+e0lEfSBiZWNhdWUgc2VuZCB0aW1lIHdhcyd0IHJlYWNoZWQgeWV0LlxuIjsKICAgICAgICB9CiAgICAgICAgbmV4dCBTVVJWRVlSRVFVRVNUOwogICAgfQoKICAgIGlmICggJG9wdHN7dn0gKSB7CiAgICAgICAgcHJpbnQKICAgICAgICAgICAgIlNlbmRpbmcgc3VydmV5IGZvciBzdXJ2ZXlfcmVxdWVzdCB3aXRoIGlkICRMaW5lLT57SUR9IHRoYXQgYmVsb25ncyB0byBUaWNrZXRJRCAkTGluZS0+e1RpY2tldElEfS5cbiI7CiAgICB9CiAgICBpZiAoICEkb3B0c3tkfSAmJiAkTGluZS0+e0lEfSAmJiAkTGluZS0+e1RpY2tldElEfSApIHsKICAgICAgICAkQ29tbW9uT2JqZWN0e1N1cnZleU9iamVjdH0tPlJlcXVlc3RTZW5kKAogICAgICAgICAgICBUcmlnZ2VyU2VuZFJlcXVlc3RzID0+IDEsCiAgICAgICAgICAgIFN1cnZleVJlcXVlc3RJRCAgICAgPT4gJExpbmUtPntJRH0sCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgPT4gJExpbmUtPntUaWNrZXRJRH0sCiAgICAgICAgICAgIFB1YmxpY1N1cnZleUtleSAgICAgPT4gJExpbmUtPntQdWJsaWNTdXJ2ZXlLZXl9LAogICAgICAgICk7CiAgICB9Cn0KCmV4aXQgMTsKCjE7Cg==
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovUHJvZHVjZXIgKEFwYWNoZSBGT1AgVmVyc2lvbiAwLjk1KQovQ3JlYXRpb25EYXRlIChEOjIwMTMwNjI3MTc1NDIzKzAyJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndUU9kWh8+9N71QkhCKlNBraFICSA29SJEuKjEJEErAkAAiNkRUcERRkaYIMijggKNDkbEiioUBUbHrBBlE1HFwFBuWSWStGd+8ee/Nm98f935rn73P3Wfvfda6AJD8gwXCTFgJgAyhWBTh58WIjYtnYAcBDPAAA2wA4HCzs0IW+EYCmQJ82IxsmRP4F726DiD5+yrTP4zBAP+flLlZIjEAUJiM5/L42VwZF8k4PVecJbdPyZi2NE3OMErOIlmCMlaTc/IsW3z2mWUPOfMyhDwZy3PO4mXw5Nwn4405Er6MkWAZF+cI+LkyviZjg3RJhkDGb+SxGXxONgAoktwu5nNTZGwtY5IoMoIt43kA4EjJX/DSL1jMzxPLD8XOzFouEiSniBkmXFOGjZMTi+HPz03ni8XMMA43jSPiMdiZGVkc4XIAZs/8WRR5bRmyIjvYODk4MG0tbb4o1H9d/JuS93aWXoR/7hlEH/jD9ld+mQ0AsKZltdn6h21pFQBd6wFQu/2HzWAvAIqyvnUOfXEeunxeUsTiLGcrq9zcXEsBn2spL+jv+p8Of0NffM9Svt3v5WF485M4knQxQ143bmZ6pkTEyM7icPkM5p+H+B8H/nUeFhH8JL6IL5RFRMumTCBMlrVbyBOIBZlChkD4n5r4D8P+pNm5lona+BHQllgCpSEaQH4eACgqESAJe2Qr0O99C8ZHA/nNi9GZmJ37z4L+fVe4TP7IFiR/jmNHRDK4ElHO7Jr8WgI0IABFQAPqQBvoAxPABLbAEbgAD+ADAkEoiARxYDHgghSQAUQgFxSAtaAYlIKtYCeoBnWgETSDNnAYdIFj4DQ4By6By2AE3AFSMA6egCnwCsxAEISFyBAVUod0IEPIHLKFWJAb5AMFQxFQHJQIJUNCSAIVQOugUqgcqobqoWboW+godBq6AA1Dt6BRaBL6FXoHIzAJpsFa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zOTZd794/DIwFTs1/lz0/NOvm1+ov9j/0u5l73TY9P1XGa9mXpe8UX9z4C3rbf+7mHcTM7nvse8rP5h+6PkY9PHup4xPn34D94Tz+wplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKWy9JQ0NCYXNlZCA1IDAgUl0KZW5kb2JqCjcgMCBvYmoKPDwKICAvVHlwZSAvTWV0YWRhdGEKICAvU3VidHlwZSAvWE1MCiAgL0xlbmd0aCAxMyAwIFIKPj4Kc3RyZWFtCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+CjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiByZGY6YWJvdXQ9IiI+CjxkYzpsYW5ndWFnZT4KPHJkZjpCYWc+CjxyZGY6bGk+ZW48L3JkZjpsaT4KPC9yZGY6QmFnPgo8L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4KPHJkZjpTZXE+CjxyZGY6bGk+MjAxMy0wNi0yN1QxNzo1NDoyMyswMjowMDwvcmRmOmxpPgo8L3JkZjpTZXE+CjwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAwLjk1PC9wZGY6UHJvZHVjZXI+CjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgcmRmOmFib3V0PSIiPgo8eG1wOkNyZWF0ZURhdGU+MjAxMy0wNi0yN1QxNzo1NDoyMyswMjowMDwv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XQovQSA2OCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDkyIDY2Ny42MjkgNTM5Ljg1MiA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjU1LjYyOSAxOTkuNjA4IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ5MzA0IDY1NS42MjkgNTM5Ljg1MyA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0My42MjkgMTczLjI5NyA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA2NDMuNjI5IDUzOS45MTkgNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzEuNjI5IDE2NC42MzEgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNjMxLjYyOSA1MzkuOTE5IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjE5LjYyOSAyMDkuMzMyIDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ4NTk2IDYxOS42MjkgNTM5Ljg0NiA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwNy42MjkgMjIxLjQ2NSA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40MDkgNjA3LjYyOSA1MzkuNzY5IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1OTUuNjI5IDE0OS4yODUgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NiAwIFIKL0ggL0kKCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYzOTYgNTk1LjYyOSA1MzkuOTI0IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTgzLjYyOSAxOTguNzg1IDU5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ4NSA1ODMuNjI5IDUzOS44NDUgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzEuNjI5IDE5NC40MTkgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MiAwIFIKL0ggL0kKCj4+CmVuZG9iago5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg0IDU3MS42MjkgNTM5Ljg0NCA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTU5LjYyOSAxNjEuNjc5IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2Mzk2IDU1OS42MjkgNTM5LjkyNCA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU0Ny42MjkgMjMxLjU0OCA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNTQ3LjYyOSA1MzkuOTE5IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUzNS42MjkgMjE0Ljg3NCA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDUzNS42MjkgNTM5LjkyIDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjMuNjI5IDI1MS4xNDEgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA1MjMuNjI5IDUzOS45MTkgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxMS42MjkgMzAzLjYyNSA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDUxMS42MjkgNTM5LjkyIDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0OTkuNjI5IDI1My4wNTQgNTA5LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDQ5OS42MjkgNTM5LjkyMSA1MDkuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0ODcuNjI5IDI0MC45ODEgNDk3LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDQ4Ny42MjkgNTM5LjkxOSA0OTcuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NzUuNjI5IDI2OS4zOSA0ODUuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgNDc1LjYyOSA1MzkuOTIxIDQ4NS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ2My42MjkgMzY4LjYyOSA0NzMuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNDYzLjYyOSA1MzkuOTE5IDQ3My42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDUxLjYyOSAxMjUuMTk1IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTY2MDQgNDUxLjYyOSA1MzkuOTI2IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzkuNjI5IDIxNC45NzIgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40MTAwMyA0MzkuNjI5IDUzOS43NyA0NDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDI3LjYyOSAxOTEuNDkyIDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg1IDQyNy42MjkgNTM5Ljg0NSA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDE1LjYyOSAyNzEuNTQ2MDIgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTMzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy4zMzQ5NiA0MTUuNjI5IDUzOS42OTUgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQwMy42MjkgMjI3LjY2MiA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQxMDAzIDQwMy42MjkgNTM5Ljc3IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzOTEuNjI5IDE4Mi40NjMgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40ODQgMzkxLjYyOSA1MzkuODQ0IDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzkuNjI5IDIwNS40NDIgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40ODUgMzc5LjYyOSA1MzkuODQ1IDM4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDM2Ny42MjkgMjYxLjQ2ODAyIDM3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDIyIDM2Ny42MjkgNTM5Ljc4MiAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzNTUuNjI5IDEyNS40NTM5OTUgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjYwNCAzNTUuNjI5IDUzOS45MjYgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgMzQzLjYyOSAxMTguOTc4IDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI5IDM0My42MjkgNTM5Ljk0OSAzNTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzMxLjYyOSAxNjUuODM3IDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDMzMS42MjkgNTM5Ljk0NiAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzE5LjYyOSAxNTMuNjQ1IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDMxOS42MjkgNTM5Ljk0NiAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzMDcuNjI5IDE1MC4wODIgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjcgMzA3LjYyOSA1MzkuOTQ2OTYgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgMjk1LjYyOSAxNDQuNDMzIDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI3IDI5NS42MjkgNTM5Ljk0Njk2IDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyODMuNjI5IDE2NC4xMzcgMjkzLjYxOSBdCi9D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PaW7SKfAyW2Bk6QTZ4GTNfKkhnS69T/+/2+l8sTvCmVuZHN0cmVhbQplbmRvYmoKMTc3IDAgb2JqCjw8IC9MZW5ndGggMTkxIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJz7Zv3/7//f/9/o////h2EUUB00AADkRQq8CmVuZHN0cmVhbQplbmRvYmoKMTc4IDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnQKICAvU3VidHlwZSAvVHlwZTAKICAvQmFzZUZvbnQgL0VBQUFBQStEZWphVnVTYW5zCiAgL0VuY29kaW5nIC9JZGVudGl0eS1ICiAgL1RvVW5pY29kZSAxODAgMCBSCiAgL0Rlc2NlbmRhbnRGb250cyBbMTc5IDAgUl0KPj4KCmVuZG9iagoxNzkgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9FQUFBQUErRGVqYVZ1U2FucyAKL0NJRFRvR0lETWFwIC9JZGVudGl0eSAKL1N1YnR5cGUgL0NJREZvbnRUeXBlMgovQ0lEU3lzdGVtSW5mbyA8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKFVDUykgL1N1cHBsZW1lbnQgMCA+PgovRm9udERlc2NyaXB0b3IgMTc1IDAgUgovRFcgMAovVyBbIDAgWzYwMCAwIDMzMyAzMTcgMzYwIDY4NiA2MzMgMjc3IDI3NyA2MzQgNzcwIDYxMiAzOTIgNjE1IDMzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA3NzQgNzQ4IDczMSA2ODQgNTc1IDYzMSA2OTQgNzg3IDU1NyA2MDMgMjk0IDY5OCA2MzQgNjg0IDQxMSA1MjAgNjExIDYzMyAzMTcgNTkxIDk3NCA2MzQgNjEwIDYzMyA4MTcgNTc5IDU0OSA2MzQgNTkxIDYzNCAzMTcgNjM2IDc1MSAzNTIgODYyIDYzNCA2MzYgMjc3IDU5MSA2MzYgODM3IDc4NyA2MzYgNTg5IDUyNCAzOTAgMzkwIDMzNiA1MzAgODM3IDk4OCA0NTkgNjEwIDI3NCA1MDAgNjU1IDY4NSA4MzcgMTAwMCA4MzcgODM3IF0gXSAKPj4KZW5kb2JqCjE4MCAwIG9iago8PCAvTGVuZ3RoIDE5MiAwIFIgL0ZpbHRl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34lz331Hk8RKMZOupbPpHLpWzPzNf2b63/6anJsKZW5kc3RyZWFtCmVuZG9iagoxODMgMCBvYmoKPDwgL0xlbmd0aCAxOTQgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nPvE8P8P/8v/B/j///+hAAA9wAjKCmVuZHN0cmVhbQplbmRvYmoKMTg0IDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnQKICAvU3VidHlwZSAvVHlwZTAKICAvQmFzZUZvbnQgL0VBQUFBQitEZWphVnVTYW5zLUJvbGQKICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAvVG9Vbmljb2RlIDE4NiAwIFIKICAvRGVzY2VuZGFudEZvbnRzIFsxODUgMCBSXQo+PgoKZW5kb2JqCjE4NSAwIG9iago8PCAvVHlwZSAvRm9udAovQmFzZUZvbnQgL0VBQUFBQitEZWphVnVTYW5zLUJvbGQgCi9DSURUb0dJRE1hcCAvSWRlbnRpdHkgCi9TdWJ0eXBlIC9DSURGb250VHlwZTIKL0NJRFN5c3RlbUluZm8gPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4KL0ZvbnREZXNjcmlwdG9yIDE4MSAwIFIKL0RXIDAKL1cgWyAwIFs2MDAgMCAzMzMgMzQ4IDQxNSA4MzAgNjg3IDU5MiA3MTEgMTA0MSA2NzggNzExIDQ3OCA2NzQgMzQyIDcyMCA0OTMgNjUxIDY1MSA3NzMgNTk1IDM0MiAzNzkgNzczIDY5NSA2ODMgNzE1IDY4MiA3MTUgNDM1IDczMyA3MzIgNzExIDcxNSA2OTUgNjgzIDYzNyAzNDggNzcwIDcxNSA5MjMgNjY1IDcxNSA2OTUgODUwIDY5NSAzNzIgMzk5IDgzNiA3NjIgNjk1IDM0MiA2OTUgNjk1IDY0NSA2OTUgODM3IDgxMiA4NTAgODIwIDk5NSA2OTUgMzY1IDY5NSBdIF0gCj4+CmVuZG9iagoxODYgMCBvYmoKPDwgL0xlbmd0aCAxOTUgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nF2Uy46bMBRA9/kKL6eLEfgBTKRRpCpVpSz6UNN+AGCTIjWACFnk72t87lBNkfI4tu/lHoxvdjx9Og39orLv89iew6K6fvBzuI33uQ2qCZd+2GmjfN8uQum7vdbTLovB58dtCdfT0I3KssrfJ1mpVPYj/rkt80M9ffRjEz4oH7p1/Nvsw9wPF/X063jeRs/3afoTrmFYVJ7GwuDTb3b8Uk9f62tQWcrzfPJxUb88nmP4vxU/H1NQJrGmhnb04TbVbZjr4RJ2r3m8Dur1c7wOa/b/5sucsKZrf9fztryL1yGRfkfmHdlIcSyHHOShIpFzUJmolLgKstBLoqqA9sxJlhqSuQYKUEuc3MEzp6EA7aEuUcH9dE6cgTRUQgYiTuPnyKnxqyQLfmUL4WeoTONXSE78rNwPP4eRFj8cNH6FEH6lxImf5MTPSS3ixz4Y/MoXSPxkDj+LkRE/chr8HEYGv1ri8CuoxeBXSRbZvwqS/Wsg8ZM5/CxVG/wc74TBz+JuxI99MPjZOpHFz/GsLX6Oyqz48XQtfqXE4VDxXCwOVggHQ2UWh0Ky4FBga3FwGFlx4G214rBPB01OlHk7X9t5tO6tSEVZaRBji2o0JgVB67Fd28/WE9r7PMd2kLpP6gNrB+iHsLWxaZzWqPT5C40iMsoKZW5kc3RyZWFtCmVuZG9iagoxODcgMCBvYmoKNTUyMQplbmRvYmoKMTg4IDAgb2JqCjIwCmVuZG9iagoxODkgMCBvYmoKMzg2CmVuZG9iagoxOTAgMCBvYmoKMTIwMjIKZW5kb2JqCjE5MSAwIG9iagoyNwplbmRvYmoKMTkyIDAgb2JqCjU4MAplbmRvYmoKMTkzIDAgb2JqCjk4NTkKZW5kb2JqCjE5NCAwIG9iagoyMgplbmRvYmoKMTk1IDAgb2JqCjQ5OAplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0NvdW50IDE1Ci9LaWRzIFs4IDAgUiAxOCAwIFIgMTkgMCBSIDI2IDAgUiAyOSAwIFIgMzIgMCBSIDM3IDAgUiA0MCAwIFIgNDMgMCBSIDQ2IDAgUiA0OSAwIFIgNTIgMCBSIDU1IDAgUiA1OCAwIFIgNjEgMCBSIF0gPj4KZW5kb2JqCjIgMCBvYmoKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAxIDAgUgogIC9MYW5nIChlbikKICAvTWV0YWRhdGEgNyAwIFIKICAvUGFnZUxhYmVscyA5IDAgUgo+PgoKZW5kb2JqCjMgMCBvYmoKPDwKL0ZvbnQgPDwKICAvRjE3IDE3MiAwIFIKICAvRjE1IDE3OCAwIFIKICAvRjE2IDE4NCAwIFIKPj4KL1Byb2NTZXQgWyAvUERGIC9JbWFnZUIgL0ltYWdlQyAvVGV4dCBdCi9YT2JqZWN0IDw8CiAgL0ltMyAyMCAwIFIKICAvSW0xIDEwIDAgUgogIC9JbTQgMjEgMCBSCiAgL0ltMiAxMSAwIFIKPj4KL0NvbG9yU3BhY2UgPDwKICAvRGVmYXVsdFJHQiA2IDAgUgo+Pgo+PgplbmRvYmoKOSAwIG9iago8PCAvTnVtcyBbMCA8PCAvUCAoMSkgPj4KIDEgPDwgL1AgKGlpKSA+PgogMiA8PCAvUCAoaWlpKSA+PgogMyA8PCAvUCAoMSkgPj4KIDQgPDwgL1AgKDIpID4+CiA1IDw8IC9QICgzKSA+PgogNiA8PCAvUCAoNCkgPj4KIDcgPDwgL1AgKDUpID4+CiA4IDw8IC9QICg2KSA+PgogOSA8PCAvUCAoNykgPj4KIDEwIDw8IC9QICg4KSA+PgogMTEgPDwgL1AgKDkpID4+CiAxMiA8PCAvUCAoMTApID4+CiAxMyA8PCAvUCAoMTEpID4+CiAxNCA8PCAvUCAoMTIpID4+Cl0gPj4KCmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsxOSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago3MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOSAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago3NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOSAwIFIgL1hZWiA3Mi4wIDYyNi40IG51bGxdCj4+CmVuZG9iago4MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOSAwIFIgL1hZWiA3Mi4wIDU1OC4wIG51bGxdCj4+CmVuZG9iago4MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOSAwIFIgL1hZWiA3Mi4wIDQ4OS42IG51bGxdCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago4OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMiAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMiAwIFIgL1hZWiA3Mi4wIDYwMi40IG51bGxdCj4+CmVuZG9iago5NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago5OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA2MTQuNCBudWxsXQo+PgplbmRvYmoKMTA0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNTI2LjAgbnVsbF0KPj4KZW5kb2JqCjEwNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDQ2MS42IG51bGxdCj4+CmVuZG9iagoxMTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCAzOTcuMiBudWxsXQo+PgplbmRvYmoKMTEzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgMzMyLjggbnVsbF0KPj4KZW5kb2JqCjExNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDI2OC40IG51bGxdCj4+CmVuZG9iagoxMTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCAyMDQuMCBudWxsXQo+PgplbmRvYmoKMTIyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEyNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iagoxMjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA1NzUuNTY3IG51bGxdCj4+CmVuZG9iagoxMzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAyNDIuODI1MDEgbnVsbF0KPj4KZW5kb2JqCjEzNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA0NDguMTU3IG51bGxdCj4+CmVuZG9iagoxNDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzMTYuMSBudWxsXQo+PgplbmRvYmoKMTQzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE0NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxNDkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTUyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU1IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjE1NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NSAwIFIgL1hZWiA3Mi4wIDYyNC40IG51bGxdCj4+CmVuZG9iagoxNTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTggMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTYxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzYxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE2NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs2MSAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagp4cmVmCjAgMTk2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDIwNDk2MyAwMDAwMCBuIAowMDAwMjA1MTIwIDAwMDAwIG4gCjAwMDAyMDUyMjUgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTEyIDAwMDAwIG4gCjAwMDAwMDI3OTQgMDAwMDAgbiAKMDAwMDAwMjgyNyAwMDAwMCBuIAowMDAwMTA2Mjk4IDAwMDAwIG4gCjAwMDAyMDU0NTIgMDAwMDAgbiAKMDAwMDAwMzY5NiAwMDAwMCBuIAowMDAwMDUyMjIzIDAwMDAwIG4gCjAwMDAxMDU0ODUgMDAwMDAgbiAKMDAwMDEwNTUwNiAwMDAwMCBuIAowMDAwMTA1NTI2IDAwMDAwIG4gCjAwMDAxMDU1NDggMDAwMDAgbiAKMDAwMDEwNTU3MCAwMDAwMCBuIAowMDAwMTA2NDY1IDAwMDAwIG4gCjAwMDAxNzIxODIgMDAwMDAgbiAKMDAwMDEyMDUwOCAwMDAwMCBuIAowMDAwMTA2NDg1IDAwMDAwIG4gCjAwMDAxMTI2NTYgMDAwMDAgbiAKMDAwMDExOTgzNiAwMDAwMCBuIAowMDAwMTE5ODU3IDAwMDAwIG4gCjAwMDAxMTk4NzggMDAwMDAgbiAKMDAwMDEyMDY3NiAwMDAwMCBuIAowMDAwMTIxNDY3IDAwMDAwIG4gCjAwMDAxMjA2OTYgMDAwMDAgbiAKMDAwMDEyMTYzNSAwMDAwMCBuIAowMDAwMTIyNTAzIDAwMDAwIG4gCjAwMDAxMjE2NTUgMDAwMDAgbiAKMDAwMDEyMjY3MSAwMDAwMCBuIAowMDAwMTI0MTgwIDAwMDAwIG4gCjAwMDAxMjI2OTEgMDAwMDAgbiAKMDAwMDEyNDE1MyAwMDAwMCBuIAowMDAwMTIyOTAxIDAwMDAwIG4gCjAwMDAxMjQzNjUgMDAwMDAgbiAKMDAwMDEyNjAzOSAwMDAwMCBuIAowMDAwMTI0Mzg2IDAwMDAwIG4gCjAwMDAxMjYyMDcgMDAwMDAgbiAKMDAwMDEyODc4MCAwMDAwMCBuIAowMDAwMTI2MjI4IDAwMDAwIG4gCjAwMDAxMjg5NDggMDAwMDAgbiAKMDAwMDEzMjEzOCAwMDAwMCBuIAowMDAwMTI4OTY5IDAwMDAwIG4gCjAwMDAxMzIzMDYgMDAwMDAgbiAKMDAwMDEzMzQyMSAwMDAwMCBuIAowMDAwMTMyMzI3IDAwMDAwIG4gCjAwMDAxMzM1ODkgMDAwMDAgbiAKMDAwMDEzNDg3NiAwMDAwMCBuIAowMDAwMTMzNjEwIDAwMDAwIG4gCjAwMDAxMzUwNDQgMDAwMDAgbiAKMDAwMDEzNjEwMyAwMDAwMCBuIAowMDAwMTM1MDY1IDAwMDAwIG4gCjAwMDAxMzYyNzEgMDAwMDAgbiAKMDAwMDEzODAwOSAwMDAwMCBuIAowMDAwMTM2MjkxIDAwMDAwIG4gCjAwMDAxMzgxNzcgMDAwMDAgbiAKMDAwMDEzODkzOSAwMDAwMCBuIAowMDAwMTM4MTk4IDAwMDAwIG4gCjAwMDAxMzkxMDcgMDAwMDAgbiAKMDAwMDEzOTgyOCAwMDAwMCBuIAowMDAwMTM5MTI3IDAwMDAwIG4gCjAwMDAxMzk5OTYgMDAwMDAgbiAKMDAwMDIwNTczMyAwMDAwMCBuIAowMDAwMTQwMDE2IDAwMDAwIG4gCjAwMDAxNzE2NDEgMDAwMDAgbiAKMDAwMDE0MDE1MiAwMDAwMCBuIAowMDAwMjA1ODExIDAwMDAwIG4gCjAwMDAxNDAyOTIgMDAwMDAgbiAKMDAwMDE0MDQyOSAwMDAwMCBuIAowMDAwMjA1ODg5IDAwMDAwIG4gCjAwMDAxNDA1NjkgMDAwMDAgbiAKMDAwMDE0MDcwNiAwMDAwMCBuIAowMDAwMjA1OTY3IDAwMDAwIG4gCjAwMDAxNDA4NDggMDAwMDAgbiAKMDAwMDE0MDk4NiAwMDAwMCBuIAowMDAwMjA2MDQ1IDAwMDAwIG4gCjAwMDAxNDExMjggMDAwMDAgbiAKMDAwMDE0MTI2NiAwMDAwMCBuIAowMDAwMjA2MTIzIDAwMDAwIG4gCjAwMDAxNDE0MDggMDAwMDAgbiAKMDAwMDE0MTU0NiAwMDAwMCBuIAowMDAwMjA2MjAxIDAwMDAwIG4gCjAwMDAxNDE2ODggMDAwMDAgbiAKMDAwMDE0MTgyNiAwMDAwMCBuIAowMDAwMjA2Mjc5IDAwMDAwIG4gCjAwMDAxNDE5NjYgMDAwMDAgbiAKMDAwMDE0MjEwMyAwMDAwMCBuIAowMDAwMjA2MzU3IDAwMDAwIG4gCjAwMDAxNDIyNDUgMDAwMDAgbiAKMDAwMDE0MjM4MyAwMDAwMCBuIAowMDAwMjA2NDM1IDAwMDAwIG4gCjAwMDAxNDI1MjMgMDAwMDAgbiAKMDAwMDE0MjY2MSAwMDAwMCBuIAowMDAwMjA2NTEzIDAwMDAwIG4gCjAwMDAxNDI4MDEgMDAwMDAgbiAKMDAwMDE0MjkzOCAwMDAwMCBuIAowMDAwMjA2NTkxIDAwMDAwIG4gCjAwMDAxNDMwODAgMDAwMDAgbiAKMDAwMDE0MzIxOCAwMDAwMCBuIAowMDAwMjA2NjY5IDAwMDAwIG4gCjAwMDAxNDMzNjEgMDAwMDAgbiAKMDAwMDE0MzUwMSAwMDAwMCBuIAowMDAwMjA2NzQ4IDAwMDAwIG4gCjAwMDAxNDM2NDEgMDAwMDAgbiAKMDAwMDE0Mzc4MSAwMDAwMCBuIAowMDAwMjA2ODI3IDAwMDAwIG4gCjAwMDAxNDM5MjUgMDAwMDAgbiAKMDAwMDE0NDA2NSAwMDAwMCBuIAowMDAwMjA2OTA2IDAwMDAwIG4gCjAwMDAxNDQyMDUgMDAwMDAgbiAKMDAwMDE0NDM0NyAwMDAwMCBuIAowMDAwMjA2OTg1IDAwMDAwIG4gCjAwMDAxNDQ0OTMgMDAwMDAgbiAKMDAwMDE0NDYzNSAwMDAwMCBuIAowMDAwMjA3MDY0IDAwMDAwIG4gCjAwMDAxNDQ3ODEgMDAwMDAgbiAKMDAwMDE0NDkyMiAwMDAwMCBuIAowMDAwMjA3MTQzIDAwMDAwIG4gCjAwMDAxNDUwNjggMDAwMDAgbiAKMDAwMDE0NTIxMCAwMDAwMCBuIAowMDAwMjA3MjIyIDAwMDAwIG4gCjAwMDAxNDUzNTYgMDAwMDAgbiAKMDAwMDE0NTQ5NSAwMDAwMCBuIAowMDAwMjA3MzAxIDAwMDAwIG4gCjAwMDAxNDU2MzkgMDAwMDAgbiAKMDAwMDE0NTc3OSAwMDAwMCBuIAowMDAwMjA3MzgwIDAwMDAwIG4gCjAwMDAxNDU5MjIgMDAwMDAgbiAKMDAwMDE0NjA2MiAwMDAwMCBuIAowMDAwMjA3NDYxIDAwMDAwIG4gCjAwMDAxNDYyMDQgMDAwMDAgbiAKMDAwMDE0NjM0NiAwMDAwMCBuIAowMDAwMjA3NTQ0IDAwMDAwIG4gCjAwMDAxNDY0OTAgMDAwMDAgbiAKMDAwMDE0NjYzMCAwMDAwMCBuIAowMDAwMjA3NjIzIDAwMDAwIG4gCjAwMDAxNDY3NzMgMDAwMDAgbiAKMDAwMDE0NjkxMyAwMDAwMCBuIAowMDAwMjA3NzA0IDAwMDAwIG4gCjAwMDAxNDcwNTUgMDAwMDAgbiAKMDAwMDE0NzE5NSAwMDAwMCBuIAowMDAwMjA3NzgzIDAwMDAwIG4gCjAwMDAxNDczMzcgMDAwMDAgbiAKMDAwMDE0NzQ3OCAwMDAwMCBuIAowMDAwMjA3ODYyIDAwMDAwIG4gCjAwMDAxNDc2MjAgMDAwMDAgbiAKMDAwMDE0Nzc2MiAwMDAwMCBuIAowMDAwMjA3OTQxIDAwMDAwIG4gCjAwMDAxNDc5MDYgMDAwMDAgbiAKMDAwMDE0ODA0NSAwMDAwMCBuIAowMDAwMjA4MDIwIDAwMDAwIG4gCjAwMDAxNDgxODcgMDAwMDAgbiAKMDAwMDE0ODMyNyAwMDAwMCBuIAowMDAwMjA4MDk5IDAwMDAwIG4gCjAwMDAxNDg0NjkgMDAwMDAgbiAKMDAwMDE0ODYwOSAwMDAwMCBuIAowMDAwMjA4MTc4IDAwMDAwIG4gCjAwMDAxNDg3NTEgMDAwMDAgbiAKMDAwMDE0ODg5MCAwMDAwMCBuIAowMDAwMjA4MjU3IDAwMDAwIG4gCjAwMDAxNDkwMzQgMDAwMDAgbiAKMDAwMDE0OTE3MyAwMDAwMCBuIAowMDAwMjA4MzM2IDAwMDAwIG4gCjAwMDAxNDkzMTcgMDAwMDAgbiAKMDAwMDE0OTQ1NyAwMDAwMCBuIAowMDAwMTQ5NTk5IDAwMDAwIG4gCjAwMDAxNzIzNjggMDAwMDAgbiAKMDAwMDE3MjM5MSAwMDAwMCBuIAowMDAwMTcyNjU0IDAwMDAwIG4gCjAwMDAxNzgyNzMgMDAwMDAgbiAKMDAwMDE3ODM3MSAwMDAwMCBuIAowMDAwMTc4NTM2IDAwMDAwIG4gCjAwMDAxNzg5MDIgMDAwMDAgbiAKMDAwMDE3OTM2NiAwMDAwMCBuIAowMDAwMTc5NjI3IDAwMDAwIG4gCjAwMDAxOTE3NDggMDAwMDAgbiAKMDAwMDE5MTg1MyAwMDAwMCBuIAowMDAwMTkyMDE0IDAwMDAwIG4gCjAwMDAxOTI1NjUgMDAwMDAgbiAKMDAwMDE5MzIyMyAwMDAwMCBuIAowMDAwMTkzNDg5IDAwMDAwIG4gCjAwMDAyMDM0NDcgMDAwMDAgbiAKMDAwMDIwMzU0NyAwMDAwMCBuIAowMDAwMjAzNzEzIDAwMDAwIG4gCjAwMDAyMDQxOTcgMDAwMDAgbiAKMDAwMDIwNDc3MyAwMDAwMCBuIAowMDAwMjA0Nzk1IDAwMDAwIG4gCjAwMDAyMDQ4MTUgMDAwMDAgbiAKMDAwMDIwNDgzNiAwMDAwMCBuIAowMDAwMjA0ODU5IDAwMDAwIG4gCjAwMDAyMDQ4NzkgMDAwMDAgbiAKMDAwMDIwNDkwMCAwMDAwMCBuIAowMDAwMjA0OTIyIDAwMDAwIG4gCjAwMDAyMDQ5NDIgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxOTYKL1Jvb3QgMiAwIFIKL0luZm8gNCAwIFIKL0lEIFs8QUI4NDhENUFCQTQ3NEFGQkE5NkE2ODU5QUI0QURERjA+IDxBQjg0OEQ1QUJBNDc0QUZCQTk2QTY4NTlBQjRBRERGMD5dCj4+CnN0YXJ0eHJlZgoyMDg0MTUKJSVFT0YK